使用持久预订
为发布/预订消息传递使用持久预订。订户未活动时,可以使用持久预订来保留在主题上发布的消息。
关于此任务
如果持久预订没有活动订户,那么 JMS 会保留预订消息,直到订户接收到它们或它们到期或删除了持久预订。这可使订户应用程序在从 JMS 提供程序断开连接一段时间时仍可以运行,然后可再重新连接到提供程序并处理在缺少订户应用程序期间已发布的消息。
每个 JMS 持久预订由预订名称 (subName) 进行标识,此名称是在创建持久预订时定义的。JMS 连接还具有一个关联的客户机标识 (clientID),用来将连接及其对象与 JMS 提供程序为客户机维护消息列表(位于持久预订上)相关联。分配给持久预订的 subName 在给定的客户机标识中必须唯一。
如果订户处于非活动状态时应用程序需要接收主题上发布的消息,那么它会使用持久订户。
在常规操作中,每次最多只有一个活动的(已连接)订户可以持久预订。但是,在应用程序服务器内部运行时,可以克隆应用程序服务器以进行故障转移和负载均衡。在此情况下,已克隆的持久预订可能同时具有多个使用者。
有关持久预订的信息,请参阅 JMS 1.1 规范(例如,第 9.3.3 节“Using Durable Subscriptions”)。
持久预订的以下操作是常规 JMS 操作的补充(例如首先查找连接工厂和 JMS 目标),用于创建连接和会话。
以下是使用持久预订的主要操作:
- 创建新持久预订
- 重新连接到现有持久预订
- 取消预订(删除)持久预订