JMS-Verbindungsfactorys
Ein Verbindungsfactory-Objekt ist ein Objekt, das ein JMS-Client (ein JMS-Programm, das die JMS-API verwendet) zum Erstellen von Verbindungen zum JNDI-Provider (ein Messaging-Provider wie z. B. IBM® MQ) verwendet.
Sie können IBM MQ Explorer verwenden, um Verbindungsfactorys zu erstellen und die Verbindungsparameter festzulegen, die die Verbindungsfactory verwendet, um Verbindungen zu erstellen.
Verbindungsfactorys wie auch Ziele sind verwaltete Objekte und werden in einem JNDI-Namensbereich gespeichert, einem definierten Standort innerhalb des Namens- und Verzeichnisservice. Der Ausgangskontext definiert das Root-Element des JNDI-Namensbereichs. In IBM MQ Explorer werden alle Verbindungsfactorys in zugehörigen Ordnern im betreffenden Kontext bzw. in den Subkontexten gespeichert, wie in der folgenden Abbildung dargestellt.
In der Abbildung wird die Verbindungsfactory namens Verbindungsfactory 1
im Ordner für Verbindungsfactorys des Ausgangskontexts namens Dateisystem-Ausgangskontext
gespeichert.
Wenn Sie eine Verbindungsfactory definieren, wählen Sie den Messaging-Provider aus, der als JMS-Provider verwendet wird (beispielsweise IBM MQ oder Echtzeit). Eine Verbindungsfactory kann nur Verbindungen zu diesem Messaging-Provider herstellen. Damit der JMS-Client Verbindungen zu einem anderen Messaging-Provider herstellt, müssen Sie eine neue Verbindungsfactory erstellen und den Messaging-Provider angeben. Der Echtzeit-Transport steht in IBM MQ 8.0 nicht zur Verfügung. Wenn Sie mit IBM MQ 8.0 arbeiten, können Sie den Echtzeit-Transport zwar definieren, aber er schlägt beim Versuch, eine Verbindung herzustellen, fehl..
Domänenunabhängige Verbindungsfactorys
Es gibt zwei Nachrichtendomänen: die Punkt-zu-Punkt-Nachrichtendomäne und die Publish/Subscribe-Nachrichtendomäne. Sie können eine Verbindungsfactory erstellen, um Verbindungen speziell für Punkt-zu-Punkt-Nachrichten (unter Verwendung der QueueConnectionFactory-Schnittstelle) bzw. für Publish/Subscribe-Nachrichten (unter Verwendung der TopicConnectionFactory-Schnittstelle) zu erstellen. In JNDI können Sie auch Verbindungsfactorys erstellen, die domänenunabhängig sind und daher sowohl für Punkt-zu-Punkt- als auch für Publish/Subscribe-Nachrichten verwendet werden können (unter Verwendung der ConnectionFactory-Schnittstelle). Weitere Informationen finden Sie unter Eine Verbindungsfactory erstellen.
Falls die JMS-Anwendung ausschließlich für Punkt-zu-Punkt- oder Publish/Subscribe-Nachrichten verwendet werden soll, können Sie eine bestimmte Nachrichtendomäne auswählen, wenn Sie die Verbindungsfactory erstellen. Es wird dann eine domänenspezifische Verbindungsfactory angelegt.
Falls Sie aber sowohl Punkt-zu-Punkt- als auch Publish/Subscribe-Vorgänge mit der gleichen Transaktion durchführen wollen, können Sie eine domänenunabhängige Verbindungsfactory erstellen. Falls beispielsweise eine JMS-Anwendung ein Thema subskribieren soll (Publish/Subscribe-Nachrichten), sendet die JMS-Anwendung bei Erhalt einer bestimmten Nachricht automatisch eine andere Nachricht an eine Warteschlange (Punkt-zu-Punkt-Nachrichten). Es ist schwierig, zuverlässig sowohl Punkt-zu-Punkt- als auch Publish/Subscribe-Vorgänge mit der gleichen Transaktion durchzuführen, falls Sie domänenspezifische Verbindungsfactorys verwenden: Sie müssen eine eigene Verbindungsfactory für jede Nachrichtendomäne erstellen. Dies bedeutet, dass einerseits die Punkt-zu-Punkt-Vorgänge mit einer Transaktion durchgeführt werden, die durch die QueueSession-Sitzung gesteuert wird. Andererseits müssen die Publish/Subscribe-Vorgänge mit einer Transaktion durchgeführt werden, die durch die TopicSession-Sitzung gesteuert wird. Es ist schwierig, sicherzustellen, dass die Sende- und Empfangsvorgänge entweder beide durchgeführt oder beide zurückgestellt wurden.
Anstatt eine domänenspezifische Verbindungsfactory für Punkt-zu-Punkt-Vorgänge und eine domänenspezifische Verbindungsfactory für Publish/Subscribe-Vorgänge zu erstellen, können Sie eine einzelne, domänenunabhängige Verbindungsfactory für beide zusammen erstellen. Dies bedeutet, dass die Verbindungsfactory eine Verbindung erstellt, wodurch eine Sitzung angelegt wird. Die Sitzung erstellt ein MessageConsumer-Objekt von einem Thema und ein MessageProducer-Objekt für eine Warteschlange. Wenn die JMS-Anwendung die publizierte Nachricht erhält, kann die nächste Nachricht an die Warteschlange mit der gleichen Transaktion gesendet werden. Beide Vorgänge können so in einer Arbeitseinheit festgeschrieben oder rückgängig gemacht werden.
Weitere Informationen finden Sie unter IBM MQ Classes for JMS verwenden in der IBM Knowledge Center.