2010-06-15 1 views
5

Ich muss den C++ - Code ändern, um eine Verbindung mit WebSphere MQ über die Client-Channel-Definitionstabelle herzustellen. Es gibt über 5000 MQ-Clients und 10 MQ-Server unter Windows 2003 mit v6.0. Bitte helfen Sie mir, wenn jemand C++ mit CCDT verwendet.C++ - Client, der eine Verbindung mit IBM MQ über SSL herstellt

+0

XML-Datei enthält Verbindungsinformationen zu MQ-Servern wie Hostname, Name des Warteschlangenmanagers, Kanal und Port. Der Client versucht zunächst, eine Verbindung zum ersten Warteschlangenmanager in der XML-Datei herzustellen. Wenn die Verbindung nicht hergestellt werden kann, wird der zweite Warteschlangenmanager verwendet. Clientverbindungen werden nicht Lastenausgleich und alle Server befinden sich in Cluster. Ich bin sicher, Clients verbinden sich mit MQCONN und bestätigen dies auch mit den Entwicklern. Ich habe neue Funktionen in Version 7.0 zur automatischen Wiederverbindung und Clients, die die Warteschlangenmanager nach dem Zufallsprinzip aus der Definitionstabelle des Client-Channels auswählen, gelesen. –

+0

Großer Unterschied zwischen MQCONN und MQCONNX. Wenn die XML-Datei Host, Kanal und Port enthält, verwenden die Anwendungen MQCONNX, mit dem Sie alle Verbindungsdetails angeben können. In diesem Fall müssen Sie die SSL CipherSpec den Verbindungsoptionen hinzufügen, wie hier beschrieben: http://bit.ly/aMLFnO Natürlich müssen Sie der Anwendung immer noch mitteilen, wo die KDB-Datei zu finden ist, und das ist die SSLKEYR Umgebungsvariable wie zuvor beschrieben. –

+0

Um herauszufinden, ob eine Anwendung, die MQCONN oder MQCONNX verwendet, hilft der folgende Befehl zum Verfolgen der MQ-API-Aufrufe? strmqtrc -x all -t api (unter Windows) strmqtrc -t api – Nikhil

Antwort

2

Setzen Sie die Umgebungsvariablen MQCHLLIB und MQCHLTAB so, dass sie auf die Kanaltabelle verweisen, wie in "Using WebSphere MQ environment variables" beschrieben. Als nächstes setzen Sie SSLKEYR wie im selben Abschnitt des Handbuchs beschrieben. Dadurch kann die App die CCDT- und die KDB-Dateien finden. Stellen Sie sicher, dass das CCDT Kanaldefinitionen enthält, die die richtige SSLCIPH angeben und verbinden Sie dann wie gewohnt. Es sollten keine Codeänderungen erforderlich sein.

Ein Ratschlag, verwenden Sie den WMQ v7-Client, obwohl der Server auf v6 ist. Der Client ist abwärtskompatibel, solange Sie nicht versuchen, die v7-Funktionen wie die automatische Wiederverbindung zu verwenden. V6 ist jedoch im nächsten Jahr nicht mehr verfügbar. Wenn Sie das erneute Testen und erneute Deployment vermeiden oder eine nicht unterstützte Version ausführen möchten, stellen Sie so viel wie möglich auf v7-Komponenten bereit.

+0

Hallo Rob, Danke für Ihre schnelle Antwort. Ich bin MQ Admin und keiner aus dem Anwendungsteam hat Erfahrung mit C++ Code, da sie dasselbe verwenden, das 8 Jahre zurück entwickelt wurde. Und der Code übernimmt die MQ-Verbindungsparameter aus der .xml-Datei. Wenn im Code nichts geändert werden muss, stellt der Client standardmäßig eine Verbindung zu Warteschlangenmanagern mithilfe der XML-Datei her. Bitte korrigieren Sie mich, wenn ich falsch liege. – Nikhil

+0

Hängt davon ab, was in der XML-Datei enthalten ist und wie die App eine Verbindung herstellt. Wenn die App MQCONNX verwendet und die SSL-Parameter derzeit nicht eingibt, muss sie wirklich geändert werden. Wenn die App dagegen den CCDT verwendet, kann sie durch Hinzufügen der Umgebungsvariable SSLKEYR die KDB-Datei finden und durch Erstellen eines neuen CCDT mit dem eingeschlossenen SSL-Kanal parms wird die Konvertierung abgeschlossen. Es hängt also wirklich davon ab, wie die App codiert ist, um zu wissen, welche davon die richtige Maßnahme ist. –