Gemeinsam genutzte Subskriptionen
WebSphere Application Server Version 9.0 unterstützt die gemeinsame Nutzung von permanenten und nicht permanenten Subskriptionen. Die gemeinsam genutzte Subskription, die in der JMS 2.0-Spezifikation eingeführt wurde, wird verwendet, damit eine einzige Subskription von mehreren Konsumenten gemeinsam genutzt werden kann, wobei zu jedem Zeitpunkt nur ein einziger der Konsumenten eine Veröffentlichung empfängt. Gemeinsam genutzte Subskriptionen werden im Grunde verwendet, um die Last auf mehrere Konsumenten aufzuteilen, die anhand des Namens und der Client-ID identifiziert werden.
Weitere Informationen zu gemeinsam genutzten nicht permanenten und permanenten Subskriptionen finden Sie in den Abschnitten
"8.3.2" und "8.3.4" im JMS 2.0-Spezifikationsdokument.
Anmerkung: Das Feature für gemeinsam genutzte permanente Subskription wurde in früheren Versionen von
WebSphere Application Server eingeführt und
das Feature für gemeinsam genutzte nicht permanente Subskription wurde in WebSphere Application Server Version
9.0 eingeführt.
Das folgende Beispiel zeigt das Codebeispiel für die Erstellung einer gemeinsam genutzten permanenten und einer gemeinsam genutzten nicht permanenten Subskription:
Gemeinsam genutzte permanente Subskription erstellen
ConnectionFactory connectionFactory;
Connection connection;
Session session;
MessageConsumer consumer;
Topic topic;
String sharedDurableSubName;
...
connection = connectionFactory.createConnection();
// Anmerkung: Die Client-ID ist für gemeinsam genutzte permanente Subskriptionen nicht verbindlich
connection.setClientID("myClient");
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
topic = session.createTopic("sharedTopic");
consumer = ((ImaSubscription)session).createSharedDurableConsumer(topic, sharedDurableSubName);
Gemeinsam genutzte nicht permanente Subskription erstellen
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);
Anmerkung: Gemeinsam genutzte permanente und gemeinsam genutzte nicht permanente Subskriptionen können mit den folgenden Auswahlkriterien erstellt werden:
consumer = session.createSharedConsumer(topic, sharedSubName, selector);
consumer = session.createSharedDurableConsumer(topic, sharedDurableSubName, selector);