Publish/Subscribe-IVT für IBM MQ classes for JMS

Ein Publish/Subscribe-Installationsprüftest (IVT) wird mit IBM® MQ classes for JMSbereitgestellt. Das Programm verbindet sich entweder im Bindungs- oder im Clientmodus mit einem Warteschlangenmanager, subskribiert ein Thema, veröffentlicht eine Nachricht im Thema und ruft dann die soeben von ihm veröffentlichte Nachricht ab. Das Programm kann alle Objekte, die es benötigt, dynamisch während der Laufzeit erstellen und konfigurieren oder mithilfe von JNDI verwaltete Objekte aus einem Verzeichnisservice abrufen.

Führen Sie zuerst den Installationsprüftest ohne Verwendung von JNDI aus, da der Test eigenständig ist und keine Verwendung eines Verzeichnisservice erfordert. Eine Beschreibung der verwalteten Objekte finden Sie unter JMS -Objekte mit dem Verwaltungstool konfigurieren.

Publish/Subscribe-Installationsprüftest ohne Verwendung von JNDI

Bei diesem Test erstellt und konfiguriert das Programm des Installationsprüftests alle von ihm benötigten Objekte dynamisch zur Laufzeit und verwendet kein JNDI.

Für die Ausführung des Programms des Installationsprüftests wird ein Script zur Verfügung gestellt. Das Script wird auf AIX® and Linux®-Systemen als PSIVTRun und unter Windows als PSIVTRun.bat bezeichnet und befindet sich im Unterverzeichnis bin des IBM MQ classes for JMS-Installationsverzeichnisses.

Geben Sie folgenden Befehl ein, um den Test im Bindungsmodus auszuführen:
PSIVTRun -nojndi [-m qmgr ] [-bqm brokerQmgr ] [-v providerVersion ] [-t]
Um den Test im Client-Modus auszuführen, richten Sie zunächst den Warteschlangenmanager ein, wie in Konfigurieren eines Warteschlangenmanagers für die Annahme von Client-Verbindungen auf Multiplattformen beschrieben. Beachten Sie dabei, dass der zu verwendende Kanal standardmäßig SYSTEM.DEF.SVRCONN ist, und geben Sie dann den folgenden Befehl ein:
PSIVTRun -nojndi -client -m qmgr -host hostname [-port port ] [-channel channel ]
[-bqm brokerQmgr ] [-v providerVersion ] [-ccsid ccsid ] [-t]
Die Parameter in den Befehlen haben folgende Bedeutungen:
-m Warteschlangenmanager
Der Name des Warteschlangenmanagers, zu dem das Programm des Installationsprüftests eine Verbindung herstellt. Wenn Sie den Test im Bindungsmodus ausführen und diesen Parameter übergehen, verbindet sich das Programm des Installationsprüftests mit dem Standardwarteschlangenmanager.
-host Hostname
Der Hostname oder die IP-Adresse des Systems, auf dem der Warteschlangenmanager ausgeführt wird.
-port Port
Die Nummer des Ports, an dem der Listener des Warteschlangenmanagers empfangsbereit ist. Der Standardwert ist 1414.
-channel Kanal
Der Name des MQI-Kanals, den das Programm des Installationsprüftests verwendet, um sich mit dem Warteschlangenmanager zu verbinden. Der Standardwert ist SYSTEM.DEF.SVRCONN.
-bqm Broker-Warteschlangenmanager
Der Namen des Warteschlangenmanagers, für den der Broker aktiv ist. Der Standardwert ist der Name des Warteschlangenmanagers, zu dem das Programm des Installationsprüftests eine Verbindung herstellt.

Dieser Parameter ist für Warteschlangenmanager mit der Versionsnummer v 7 oder höher nicht relevant.

-v providerVersion
Der Release-Level des Warteschlangenmanagers, zu dem das Programm des Installationsprüftests erwartungsgemäß eine Verbindung herstellt.

Mit diesem Parameter wird die Eigenschaft PROVIDERVERSION eines MQTopicConnectionFactory-Objekts festgelegt. Er weist dieselben gültigen Werte wie die Eigenschaft PROVIDERVERSION auf. Weitere Informationen zu diesem Parameter, einschließlich seiner gültigen Werte, finden Sie in der Beschreibung der Eigenschaft PROVIDERVERSION unter Eigenschaften von IBM MQ classes for JMS -Objekten.

Der Standardwert ist unspecified.

-ccsid ccsid
Die ID (CCSID) des codierten Zeichensatzes oder der Codepage, der bzw. die von der Verbindung verwendet werden soll. Der Standardwert ist 819.
-t
Die Traceerstellung ist aktiviert. Standardmäßig ist die Traceerstellung inaktiviert.
Ein erfolgreicher Test erstellt eine Ausgabe, die der folgenden Beispielausgabe ähnelt:
5724-H72, 5655-R36, 5724-L26, 5655-L82 (c) Copyright IBM Corp. 2008, 2026. All Rights Reserved.
IBM MQ classes for Java Message Service 7.0
Publish/Subscribe Installation Verification Test

Creating a TopicConnectionFactory
Creating a Connection
Creating a Session
Creating a Topic
Creating a TopicPublisher
Creating a TopicSubscriber
Creating a TextMessage
Adding text
Publishing the message to topic://MQJMS/PSIVT/Information
Waiting for a message to arrive [5 secs max]...

Got message:
JMSMessage class: jms_text
JMSType:     null
JMSDeliveryMode: 2
JMSExpiration:  0
JMSPriority:   4
JMSMessageID:   ID:414d5120514d5f6d627720202020202001edb14620006706
JMSTimestamp:   1187182520203
JMSCorrelationID: ID:414d5120514d5f6d627720202020202001edb14620006704
JMSDestination:  topic://MQJMS/PSIVT/Information
JMSReplyTo:    null
JMSRedelivered:  false
JMSXUserID: mwhite
JMS_IBM_Encoding: 273
JMS_IBM_PutApplType: 26
JMSXAppID: QM_mbw
JMSXDeliveryCount: 1
JMS_IBM_PutDate: 20070815
JMS_IBM_ConnectionID: 414D5143514D5F6D627720202020202001EDB14620006601
JMS_IBM_PutTime: 12552020
JMS_IBM_Format: MQSTR
JMS_IBM_MsgType: 8
A simple text message from the MQJMSPSIVT program
Reply string equals original string
Closing TopicSubscriber
Closing TopicPublisher
Closing Session
Closing Connection
PSIVT finished

Publish/Subscribe-Installationsprüftest unter Verwendung von JNDI

Bei diesem Test verwendet das Programm des Installationsprüftests JNDI für den Abruf von verwalteten Objekten aus einem Verzeichnisservice.

Damit Sie den Test ausführen können, müssen Sie zuerst einen Verzeichnisservice konfigurieren, der auf einem LDAP-Server (LDAP = Lightweight Directory Access Protocol) oder auf dem lokalen Dateisystem basiert. Außerdem müssen Sie das IBM MQ JMS -Verwaltungstool so konfigurieren, dass es den Verzeichnisservice zum Speichern verwalteter Objekte verwenden kann. Weitere Informationen zu diesen Voraussetzungen finden Sie unter Voraussetzungen für IBM MQ für JMS. Informationen zum Konfigurieren des IBM MQ-JMS-Verwaltungstools finden Sie im Abschnitt JMS-Verwaltungstool konfigurieren.

Das Programm des Installationsprüftests muss in der Lage sein, JNDI für den Abruf eines MQTopicConnectionFactory-Objekts und eines MQTopic-Objekts aus dem Verzeichnisservice abzurufen. Es wird ein Script bereitgestellt, das diese verwalteten Objekte für Sie erstellt. Das Script heißt IVTSetup auf AIX and Linux-Systemen und IVTSetup.bat auf Windows und befindet sich im Unterverzeichnis bin des IBM MQ classes for JMS-Installationsverzeichnisses. Geben Sie folgenden Befehl ein, um das Script auszuführen:
IVTSetup
Das Script ruft das IBM MQ JMS -Verwaltungstool auf, um die verwalteten Objekte zu erstellen.

Das MQTopicConnectionFactory-Objekt wird mit dem Namen 'ivtTCF' gebunden und mit den Standardwerten für alle seine Eigenschaften erstellt. Dies bedeutet, dass das Programm des Installationsprüftests im Bindungsmodus ausgeführt wird, sich mit dem Standardwarteschlangenmanager verbindet und die eingebettete Publish/Subscribe-Funktion verwendet. Wenn Sie möchten, dass das IVT-Programm im Client-Modus läuft, eine Verbindung zu einem anderen als dem Standard-Warteschlangenmanager herstellt oder IBM Integration Bus anstelle der eingebetteten Veröffentlichungs-/Abonnementfunktion verwendet, müssen Sie das Verwaltungstool IBM MQ JMS oder IBM MQ Explorer verwenden, um die entsprechenden Eigenschaften des Objekts MQTopicConnectionFactory zu ändern. Informationen zur Verwendung des IBM MQ JMS -Verwaltungstools finden Sie unter JMS -Objekte mit dem Verwaltungstool konfigurieren. Informationen zur Verwendung von IBM MQ Explorer finden Sie in der mit IBM MQ Explorer bereitgestellten Hilfe.

Das MQTopic-Objekt wird mit dem Namen 'ivtT' gebunden und mit den Standardwerten für alle seine Eigenschaften erstellt. Ausgenommen hiervon ist die Eigenschaft TOPIC, die den Wert MQJMS/PSIVT/Information hat.

Sobald Sie die verwalteten Objekte erstellt haben, können Sie das Programm des Installationsprüftests ausführen. Geben Sie folgenden Befehl ein, um den Test unter Verwendung von JNDI auszuführen:
PSIVTRun -url "providerURL" [-icf initCtxFact ] [-t]
Die Parameter in dem Befehl haben folgende Bedeutungen:
-url " Provider-URL "
Die URL (Uniform Resource Locator) des Verzeichnisservice. Die URL kann eines der folgenden Formate aufweisen:
  • ldap://hostname/contextName für einen Verzeichnisservice, der auf einem LDAP-Server basiert
  • file:/directoryPath für einen Verzeichnisservice, der auf dem lokalen Dateisystem basiert
Beachten Sie, dass Sie die URL in Anführungszeichen (") einschließen müssen.
-icf Ausgangskontextfactory
Der Klassenname der Ausgangskontextfactory, der einen der folgenden Werte aufweisen muss:
  • com.sun.jndi.ldap.LdapCtxFactory für einen Verzeichnisservice, der auf einem LDAP-Server basiert. Dies ist der Standardwert.
  • com.sun.jndi.fscontext.RefFSContextFactory für einen Verzeichnisservice, der auf dem lokalen Dateisystem basiert
-t
Die Traceerstellung ist aktiviert. Standardmäßig ist die Traceerstellung inaktiviert.

Ein erfolgreicher Test erstellt eine Ausgabe, die derjenigen eines erfolgreichen Tests ohne Verwendung von JNDI ähnelt. Der Hauptunterschied besteht darin, dass die Ausgabe anzeigt, dass der Test JNDI für den Abruf eines MQTopicConnectionFactory-Objekts und eines MQTopic-Objekts verwendet.

Es ist zwar nicht unbedingt erforderlich, wird jedoch empfohlen, nach dem Test eine Bereinigung durchzuführen. Löschen Sie hierfür die verwalteten Objekte, die vom IVTSetup-Script erstellt wurden. Zu diesem Zweck wird ein Script bereitgestellt. Das Script heißt IVTTidy auf AIX and Linux-Systemen und IVTTidy.bat unter Windows und befindet sich im Unterverzeichnis bin des IBM MQ classes for JMS-Installationsverzeichnisses.

Problembestimmung beim Publish/Subscribe-Installationsprüftest

Der Installationsprüftest kann aus folgenden Gründen fehlschlagen:
  • Wenn das IVT-Programm eine Meldung schreibt, dass es eine Klasse nicht finden kann, überprüfen Sie, ob Ihr Klassenpfad korrekt gesetzt ist, wie in Setzen von Umgebungsvariablen für IBM MQ für JMS/Jakarta Messaging beschrieben.
  • Der Test kann mit der folgenden Nachricht fehlschlagen:
    Failed to connect to queue manager ' qmgr ' with
    connection mode ' connMode ' and host name ' hostname '
    
    Außerdem ist dieser Nachricht der Ursachencode 2059 zugeordnet. Die Variablen in der Nachricht haben folgende Bedeutungen:
    qmgr
    Der Name des Warteschlangenmanagers, zu dem das Programm des Installationsprüftests versucht, eine Verbindung herzustellen. Diese Nachrichteneinfügung ist leer, wenn das Programm des Installationsprüftests versucht, sich im Bindungsmodus mit dem Standardwarteschlangenmanager zu verbinden.
    connMode
    Der Verbindungsmodus, entweder Bindings oder Client.
    Hostname
    Der Hostname oder die IP-Adresse des Systems, auf dem der Warteschlangenmanager ausgeführt wird.
    Diese Nachricht bedeutet, dass der Warteschlangenmanager, zu dem das Programm des Installationsprüftests gerade eine Verbindung herstellen möchte, nicht verfügbar ist. Prüfen Sie, ob der Warteschlangenmanager aktiv ist, und falls das Programm des Installationsprüftests versucht, sich mit dem Standardwarteschlangenmanager zu verbinden, stellen Sie sicher, dass der Warteschlangenmanager als Standardwarteschlangenmanager für Ihr System definiert ist.
  • Der Test kann mit der folgenden Nachricht fehlschlagen:
    Unable to bind to object
    
    Diese Nachricht bedeutet, dass eine Verbindung mit dem LDAP-Server besteht, allerdings ist der LDAP-Server nicht ordnungsgemäß konfiguriert. Der LDAP-Server ist entweder nicht für das Speichern von Java-Objekten konfiguriert oder die Berechtigungen für die Objekte oder das Suffix sind nicht korrekt. Falls Sie in dieser Situation weitere Hilfe benötigen, lesen Sie die Dokumentation Ihres LDAP-Servers.
  • Der Test kann mit der folgenden Nachricht fehlschlagen:
    The security authentication was not valid that was supplied for
    QueueManager 'qmgr' with connection mode 'Client' and host name 'hostname'
    
    Diese Nachricht bedeutet, dass der Warteschlangenmanager nicht ordnungsgemäß eingerichtet ist, um eine Clientverbindung von Ihrem System zu akzeptieren. Weitere Informationen finden Sie unter Konfigurieren eines Warteschlangenmanagers zur Annahme von Client-Verbindungen auf Multiplattformen.