Definitionstabelle für Clientkanäle mit IBM MQ classes for JMS verwenden
Eine IBM® MQ classes for JMS -Anwendung kann Clientverbindungskanaldefinitionen verwenden, die in einer Definitionstabelle für Clientkanäle (CCDT) gespeichert sind. Sie konfigurieren ein ConnectionFactory-Objekt, um die CCDT zu verwenden. Für die Verwendung gelten einige Einschränkungen.
Als Alternative zum Erstellen einer Clientverbindungskanaldefinition durch Festlegen bestimmter Eigenschaften eines ConnectionFactory -Objekts kann eine IBM MQ classes for JMS -Anwendung Clientverbindungskanaldefinitionen verwenden, die in einer Clientkanaldefinitionstabelle gespeichert sind. Diese Definitionen werden von MQSC-Befehlen ( IBM MQ Script) oder PCF-Befehlen ( IBM MQ Programmable Command Format) erstellt. Wenn die Anwendung ein Verbindungsobjekt erstellt, durchsucht IBM MQ classes for JMS die Definitionstabelle für Clientkanäle nach einer geeigneten Clientverbindungskanaldefinition und verwendet die Kanaldefinition zum Starten eines MQI-Kanals. Weitere Informationen zu Definitionstabellen für Clientkanäle und zum Erstellen einer solchen Tabelle finden Sie unter Definitionstabelle für Clientkanal.
Um eine Client-Kanal-Definitionstabelle zu verwenden, muss die CCDTURL Eigenschaft eines ConnectionFactory Objekts auf ein URL Objekt gesetzt werden. IBM MQ classes for JMS Lesen Sie die Informationen über den CCDT nicht aus der IBM MQ MQI client Konfigurationsdatei, obwohl einige andere Werte von dort verwendet werden (siehe Die IBMMQ Klassen für die JMS/Jakarta Messaging-Konfigurationsdatei, für die dieser Wert gilt). Das URL-Objekt bindet eine URL ein, die den Namen und die Position der Datei angibt, die die Definitionstabelle des Clientkanals enthält und die festlegt, wie auf die Datei zugegriffen werden kann. Sie können die CCDTURL Eigenschaft mithilfe des IBM MQJMS Verwaltungstools festlegen, oder eine Anwendung kann die Eigenschaft festlegen, indem sie ein URL Objekt setCCDTURL( erstellt und die Methode des ConnectionFactory Objekts aufruft.
java.net.URL chanTab1 = new URL("file:///home/admdata/ccdt1.tab");
factory.setCCDTURL(chanTab1);
java.net.URL chanTab2 = new URL("ftp://ftp.server/admdata/ccdt2.tab");
factory.setCCDTURL(chanTab2);
- Der Name eines Warteschlangenmanagers
- Ein Stern (*), gefolgt vom Namen einer Warteschlangenmanagergruppe
Wenn eine Anwendung dann ein Connection-Objekt aus dem ConnectionFactory Objekt erstellt, IBM MQ classes for JMS auf die durch die CCDTURL Eigenschaft identifizierte Client-Kanal-Definitionstabelle zugreift, die QMANAGER Eigenschaft verwendet, um die Tabelle nach einer geeigneten Client-Verbindungskanal-Definition zu durchsuchen, und dann die Kanal-Definition verwendet, um einen MQI-Kanal zu einem Queue-Manager zu starten.
Wenn eine geeignete IBM MQ classes for JMS Client-Verbindungskanaldefinition in der Client-Kanaldefinitionstabelle findet, verwendet es nur die aus der Client-Kanaldefinitionstabelle extrahierten Informationen, um einen MQI-Kanal zu starten. Alle kanalbezogenen Eigenschaften des ConnectionFactory-Objekts werden ignoriert.
- Ein MQI-Kanal verwendet TLS nur, wenn die aus der Definitionstabelle für Clientkanäle extrahierte Kanaldefinition den Namen einer von IBM MQ classes for JMSunterstützten CipherSpec angibt.
- Eine Definitionstabelle für Clientkanäle enthält außerdem Informationen zur Position der LDAP-Server (LDAP = Lightweight Directory Access Protocol), auf denen die Zertifikatswiderrufslisten (CRLs) gespeichert sind. IBM MQ classes for JMS verwendet nur diese Informationen für den Zugriff auf LDAP-Server, die CRLs enthalten.
- Eine Definitionstabelle für den Clientkanal kann auch die Position eines OCSP-Responders enthalten. IBM MQ classes for JMS kann die OCSP-Informationen in einer Clientkanaldefinitionstabellendatei nicht verwenden. Sie können OCSP jedoch wie im Abschnitt Online Certificate Status Protocol (OCSP) in Java und JMS -Clientanwendungenbeschrieben konfigurieren.
- Ein MQI-Kanal verwendet nur die Kanalexits und die zugehörigen Benutzerdaten, die durch die Kanaldefinition angegeben werden, die aus der Definitionstabelle für Clientkanäle extrahiert wurde.
- Eine Kanaldefinition, die aus einer Definitionstabelle für Clientkanäle extrahiert wird, kann Kanalexits angeben, die in Java geschrieben wurden. Das bedeutet beispielsweise, dass der Parameter SCYEXIT im DEFINE CHANNEL Befehl zum Erstellen einer Client-Verbindungskanaldefinition den Namen einer Klasse angeben kann, die die WMQSecurityExit Schnittstelle implementiert. Ebenso kann der SENDEXIT Parameter den Namen einer Klasse angeben, die die WMQSendExit Schnittstelle implementiert, und der Parameter RCVEXIT kann den Namen einer Klasse angeben, die die WMQReceiveExit Schnittstelle implementiert. Weitere Informationen zum Schreiben eines Channel-Exits in Javafinden Sie unter Schreiben von Channel-Exits in Java für IBMMQ Klassen für JMS.
Die Verwendung von Kanalexits, die in einer anderen Sprache als Java geschrieben wurden, wird ebenfalls unterstützt. Informationen zum Festlegen der SCYEXITParameter RCVEXIT , SENDEXITund im Befehl DEFINE CHANNEL für Kanalausgänge, die in einer anderen Sprache geschrieben sind, finden Sie unter DEFINE CHANNEL.
Hinweis: Ab können Sie Ihre benutzerdefinierten Einstellungen IBM MQ 9.4.5 für „ SSLSocketFactory “ mit der WMQ_CCDT_SSL_SOCKET_FACTORY Eigenschaft hinzufügen, sodass Anwendungen die Verbindungssicherheit und Zertifikatsvalidierung von „ HTTPS “ über ihre eigene Implementierung verwalten können. Wenn eine Client-Anwendung die WMQ_CCDT_SSL_SOCKET_FACTORY Eigenschaft bereitstellt, wird die CCDTURL Eigenschaft obligatorisch, und wenn sie fehlt, wird eine Fehlermeldung an die Client-Anwendung zurückgegeben. Weitere Informationen finden Sie unter Bereitstellen eines benutzerdefinierten SSLSocketFactory in IBM MQ classes for JMS/Jakarta Messaging.