2017-09-02 2 views
0

Ich muss eine Nachricht an IBM Warteschlange senden. Ich habe eine normale Produzent Klasse geschrieben, um die Nachricht zu drücken, da die Warteschlange: -Wie wird eine IBM MQ-Nachricht zuverlässig gesendet, wenn das Ziel nicht erreichbar ist?

 Session session = queueConnection.createSession(true, 
      QueueSession.AUTO_ACKNOWLEDGE); 
     Destination destination = 
      session.createQueue("test.queue"); 
     MessageProducer producer = session.createProducer(destination); 

      TextMessage message = session.createTextMessage("test"); 
      producer.send(message); 

     // Close the session 
     session.close(); 

Nun nehmen wir aus irgendeinem Grund Queue, die innerhalb Queuemanager vorhanden ist, oder IBM MQ-Broker ist oder es ist ein Netzwerkproblem was zum Senden von Nachrichtenfehlern führt.

Gibt es einen Mechanismus in JMS/IBM MQ, der automatisch versuchen kann, die Nachricht zu senden (im Grunde Wiederholungsmechanismus) und eine bestimmte Anzahl von Versuchen erneut auszuführen, bevor er schließlich die Nachricht an den IBM MQ-Broker sendet?

Antwort

1

IBM MQ JMS-Client (auch andere IBM MQ-Clients) verfügen über eine Funktion, bei der der Client versucht, eine Verbindung mit dem Warteschlangenmanager bis zu einem bestimmten Zeitraum herzustellen, wenn IBM MQ Queue Manager aus irgendeinem Grund bricht. Siehe hier: https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q032520_.htm. Sie müssen die Verbindungsfactory so konfigurieren, dass eine erneute Verbindung möglich ist.

Wenn beispielsweise die Verbindung zum Warteschlangenmanager bei der Ausführung der Methode producer.send unterbrochen wird, versucht der IBM MQ JMS-Client automatisch, die Verbindung zum Warteschlangenmanager wiederherzustellen und die Nachricht zu senden.

In IBM MQ kann eine Warteschlange nicht nach unten gehen, es aber in zugänglich werden kann, zum Beispiel, wenn Warteschlange voll ist oder setzen/auf Warteschlange erhalten hat

+0

Dank für den Hinweis auf den Link usw. deaktiviert. Aber mein Anwendungsfall ist, dass die Anwendung im TOMEE-Container ausgeführt wird. Wenn die Warteschlange aus irgendeinem Grund nicht verfügbar ist, kann die Anwendung innerhalb von TOMEE ausgeführt werden, um eine automatische Verbindung mit setClientReconnectOptions herzustellen? – Neer1009

+0

Ja, der MQ-JMS-Client versucht, die Verbindung wiederherzustellen, wenn Sie die Verbindungsoptionen aktiviert haben und eine Verbindung unterbrochen wird. – Shashi

Verwandte Themen