2009-05-08 5 views
4

Ich muss die Verarbeitung der erneuten Zustellung von JMS-Nachrichten in der Anwendung implementieren, die in der von IBM unterstützten Umgebung bereitgestellt wird. Daher ist der JMS-Provider eigenständig MQ V6.0.Legt IBM MQ V6.0 die JMSXDeliveryCount-Eigenschaft fest?

Wissen Sie, ob die JMSXDeliveryCount-Eigenschaft richtig eingestellt ist und ich mich auf die Werte dieser Eigenschaft verlassen kann?

Antwort

4

Ich habe gerade die Antwort auf meine Frage :)

Die IBM WebSphere MQ setzt die folgenden JMSX * header Objekte gefunden:

JMSXUserId wird durch WMQ JMS eingestellt werden, wenn Sie die Nachricht senden - Es sieht die Benutzer-ID, die die Anwendung ausführt, und legt JMSXUserId entsprechend fest.

JMSXAppId wird auch durch WMQ JMS eingestellt werden, wenn Sie die Nachricht senden - so etwas wie "WebSphere MQ-Client für Java". Es gibt eine Debatte über , wie die JMS-Spezifikation auf diesem zu interpretieren ist - einige JMS-Anbieter erlauben eine -Anwendung, um es zu setzen, andere nicht. Zurzeit ist die Implementierung von WebSphere MQ nicht verfügbar.

JMSXDeliveryCount wird durch WMQ JMS gesetzt werden, wenn die Nachricht an eine Empfangsanwendung gesendet wird - es sagt, dass die Anwendung empfängt, wie oft WebSphere MQ hat versucht, die Nachricht zu diesen oder anderen Anwendungen zu liefern. Normalerweise sollten Nachrichten nur einmal zugestellt werden, aber im Fall von Fehlern oder explizitem Rollback von Transaktionen usw. kann die Anzahl der Nachrichten höher werden, und Anwendungen oder JMS-Provider können diese Informationen verwenden, um Fehler zu erkennen und vielleicht etwas anderes wie die Nachricht in eine Warteschlange für unzustellbare Nachrichten verschieben oder sogar die Nachricht je nach Art der Nachricht, der Anwendung und des Kontexts verwerfen.