Ich versuche, den Nachrichtenkanal auf IBM MQ v8 einzurichten.

Ich verwende IBM MQ Server 8.x unter Ubuntu Linux.

Ich habe 2 Warteschlangenmanager QM1 und QM2.

Auf QM1 habe ich einen Senderkanal erstellt und auf QM2 habe ich einen Empfängerkanal erstellt.

Auf QM1:

Remote-Warteschlangendefinition

DEFINE QREMOTE(RMQ1) DESCR('Remote queue for QM2') REPLACE +
PUT(ENABLED) XMITQ(QM2)  RNAME(Q_ON_QM2) RQMNAME(QM2)

Definition der Übertragungswarteschlange

DEFINE QLOCAL(QM2) DESCR('Transmission queue to QM2') REPLACE +
USAGE(XMITQ) PUT(ENABLED) GET(ENABLED) TRIGGER TRIGTYPE(FIRST) +
TRIGDATA(QM1.TO.QM2) INITQ(SYSTEM.CHANNEL.INITQ)

Definition des Absenderkanals für eine TCP / IP-Verbindung:

DEFINE CHANNEL(QM1.TO.QM2) CHLTYPE(SDR) TRPTYPE(TCP) +
REPLACE DESCR('Sender channel to QM2') XMITQ(QM2) +
CONNAME('127.0.0.1(**1491**)') //-- QM2's listener is on 1490

Am 2. Warteschlangenmanager (QM2)

Definition der lokalen Warteschlange

DEFINE QLOCAL(Q_ON_QM2) REPLACE PUT(ENABLED) GET(ENABLED) +
DESCR('Local queue ')

Empfängerkanaldefinition

Für eine TCP / IP-Verbindung:

DEFINE CHANNEL(QM1.TO.QM2) CHLTYPE(RCVR) TRPTYPE(TCP) +
REPLACE DESCR('Receiver channel from QM1')

Am Ende der Konfiguration bleibt mein Senderkanal im Status "Wiederholen" und der Empfängerkanal im Status "Inaktiv".

Wie bringe ich diesen Kanal zum Laufen?

0
Venkat Teki 4 Jän. 2016 im 15:33

2 Antworten

Beste Antwort

Auf den ersten Blick scheint das Problem bei Ihrem Port zu liegen. Der Conname für die Verbindung sollte den Port angeben, an dem der Listener tatsächlich ausgeführt wird. Ist es 1491 oder 1490?

CONNAME ('127.0.0.1 ( 1491 )') // - Der Listener von QM2 ist auf 1490 eingestellt

Stellen Sie sicher, dass der Listener für das empfangende qmgr ausgeführt wird, und geben Sie diesen Port in Ihrem Conname an.

1
ValerieLampkin 4 Jän. 2016 im 13:27

Es kann viele Gründe dafür geben, dass ein Senderkanal erneut versucht wird.

1. Falsche Parameter.

Überprüfen Sie den Verbindungsnamen, wie von Valerie vorgeschlagen. Stellen Sie sicher, dass IP-Adresse und Portnummer auf den Empfängerwarteschlangenmanager zeigen.

2. Übertragungswarteschlange nicht verfügbar.

Stellen Sie sicher, dass die Übertragungswarteschlange verfügbar ist. Hinweis: Manchmal ist die Übertragungswarteschlange verfügbar, aber ist möglicherweise deaktiviert. In diesem Fall wird auch der Senderkanal erneut versucht. Der Senderkanal öffnet die Übertragungswarteschlange im exklusiven Modus. Wenn die Übertragungswarteschlange von einer anderen Anwendung (z. B. RFHUTIL) geöffnet wird, kann der Senderkanal nicht auf die Übertragungswarteschlange zugreifen, und der Kanal wird daher erneut versucht. Stellen Sie daher sicher, dass die Übertragungswarteschlange nicht von einer anderen Anwendung geöffnet wird.

3. Empfängerkanal nicht verfügbar.

Dies kann der Fall sein, wenn der Warteschlangenmanager des Empfängers nicht verfügbar ist. Stellen Sie außerdem sicher, dass der Name des Empfängerkanals mit dem Senderkanal übereinstimmt (was in Ihrem Fall korrekt erscheint).

4. Empfängerkanal und Senderkanal sind nicht in der richtigen Reihenfolge

Der Empfängerkanal und der Senderkanal verwalten eine Sequenznummer für die Nachrichtenübertragung. Aufgrund von Umgebungsproblemen wie Netzwerkstörungen kann die Sequenznummer zwischen Sender- und Empfängerkanal inkonsistent werden.

RESET Ihrer Sender- und Empfängerkanäle, um dieses Problem zu beheben.

0
nitgeek 5 Jän. 2016 im 07:52