JMS -Verbindungsfactorys
Eine Verbindungsfactory ist ein Objekt, das ein JMS- -Client (ein JMS- -Programm, das die API JMS- verwendet) verwendet, um eine Verbindung zu einem JNDI- -Provider (einem Messaging-Provider wie IBM® MQ) herzustellen.
Sie können IBM MQ Explorer verwenden, um Verbindungsfactorys zu erstellen und die Verbindungsparameter zu definieren, die die Verbindungsfactory zum Erstellen von Verbindungen verwendet.
Verbindungsfactorys wie Ziele sind verwaltete Objekte und werden in einem JNDI -Namensbereich gespeichert, der eine definierte Position im Namens-und Verzeichnisservice ist. Der Ausgangskontext definiert das Stammverzeichnis des JNDI -Namensbereichs. In IBM MQ Explorerwerden alle Verbindungsfactorys in Ordnern für Verbindungsfactorys im entsprechenden Kontext und Subkontexten gespeichert, wie in der folgenden Abbildung dargestellt.
In der Abbildung ist die Verbindungsfactory namens Connection Factory 1
im Ordner für Verbindungsfactorys des Ausgangskontextes mit dem Namen File System Initial Context
gespeichert.
Wenn Sie eine Verbindungsfactory definieren, wählen Sie den Messaging-Provider aus, der als JMS -Provider verwendet wird (z. B. IBM MQ oder Echtzeit). Eine Verbindungsfactory kann nur Verbindungen zu diesem Messaging-Provider herstellen. Damit der JMS -Client Verbindungen zu einem anderen Messaging-Provider erstellt, müssen Sie eine neue Verbindungsfactory erstellen und den Messaging-Provider angeben. Echtzeittransport ist in IBM MQ 8.0nicht verfügbar. Wenn Sie IBM MQ 8.0 verwenden, können Sie den Echtzeittransport definieren, aber er schlägt fehl, wenn versucht wird, eine Verbindung herzustellen.
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. Ab JNDIkönnen Sie auch domänenunabhängige Verbindungsfactorys erstellen, die für Punkt-zu-Punkt-und Publish/Subscribe-Messaging (über die Schnittstelle "ConnectionFactory") verwendet werden können. Weitere Informationen finden Sie unter Verbindungsfactory erstellen.
Wenn die JMS -Anwendung nur Punkt-zu-Punkt-Messaging oder nur Publish/Subscribe-Messaging verwenden soll, können Sie die jeweilige Messaging-Domäne auswählen, wenn Sie die Verbindungsfactory erstellen und eine domänenspezifische Verbindungsfactory erstellt wird.
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. Beispiel: Sie möchten, dass eine JMS-Anwendung ein Topic subskribiert (Publish/Subscribe-Messaging), und wenn die JMS-Anwendung eine bestimmte Nachricht empfängt, sendet sie eine weitere Nachricht an eine Warteschlange (Punkt-zu-Punkt-Messaging). 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 veröffentlichte Nachricht empfängt, kann die nächste Nachricht unter der Transaktion derselben Sitzung an die Warteschlange gesendet werden. Beide Operationen können dann als einzelne Arbeitseinheit festgeschrieben oder zurückgesetzt werden.
Weitere Informationen finden Sie unter IBM MQ Classes for JMS verwenden in der Dokumentation zuIBM.