共享的预订

WebSphere® Application Server V 9.0 支持共享持久预订和非持久预订。 在 JMS 2.0 规范中引入的共享预订用于在多个使用者之间共享单个预订,其中只有一个使用者在任何时间点接收发布内容。 共享预订基本上用于在多个使用者之间共享负载,并由名称和客户机标识标识。

有关共享非持久预订和持久预订的更多信息,请参阅 JMS 2.0 规范文档中的 8.3.2 和 8.3.4 部分。
对于转换用户: 共享持久预订功能在较早版本的 WebSphere Application Server中可用,并且在 WebSphere Application Server V 9.0中引入了共享非持久预订功能。

以下示例显示了创建共享持久预订和共享非持久预订的代码样本:

创建共享持久预订

ConnectionFactory connectionFactory;
Connection connection;
Session session;
MessageConsumer consumer;
Topic topic;
String sharedDurableSubName;
...
connection = connectionFactory.createConnection();


// Note: client ID is not mandatory for shared durable subscriptions
connection.setClientID("myClient"); 
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
topic = session.createTopic("sharedTopic");
consumer = ((ImaSubscription)session).createSharedDurableConsumer(topic, sharedDurableSubName);

创建共享非持久预订

ConnectionFactory connectionFactory;
Connection connection;
Session session;
MessageConsumer consumer;
Topic topic;
String sharedSubName;
...
connection = connectionFactory.createConnection();

connection.setClientID("myClient"); 
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
topic = session.createTopic("sharedTopic");
consumer = ((ImaSubscription)session).createSharedConsumer(topic, sharedSubName);
可以使用以下选择标准来创建共享持久预订和共享非持久预订:
consumer = session.createSharedConsumer(topic, sharedSubName, selector);
consumer = session.createSharedDurableConsumer(topic, sharedDurableSubName, selector);