2009-05-08 8 views
4

J'ai besoin d'implémenter la gestion de la relivraison des messages JMS dans l'application qui est déployée sur l'environnement soutenu par IBM, donc le fournisseur JMS est autonome MQ V6.0. Savez-vous si la propriété JMSXDeliveryCount est définie correctement et si je peux me fier aux valeurs de cette propriété?IBM MQ V6.0 définit-il la propriété JMSXDeliveryCount?

Répondre

4

Je viens de trouver la réponse à ma question :)

IBM WebSphere MQ définit les propriétés d'en-tête JMSX * suivantes:

JMSXUserID sera réglé par JMS WMQ lorsque vous envoyez le message - il regarde l'ID utilisateur exécutant l'application et définit JMSXUserId en conséquence.

JMSXAppId sera également fixé par JMS WMQ lorsque vous envoyez le message - à quelque chose comme "WebSphere MQ Client pour Java". Il ya un débat sur comment interpréter les spécifications JMS sur celui-ci - certains fournisseurs JMS permettent une application pour le définir, d'autres pas. Actuellement, l'implémentation WebSphere MQ ne le fait pas.

JMSXDeliveryCount sera fixé par JMS WMQ lorsque le message est envoyé à une demande réception - il indique que la réception demande combien de fois WebSphere MQ a essayé de livrer le message à ce ou d'autres applications. Normalement, les messages ne doivent être délivrés qu'une seule fois, mais en cas d'échecs ou de retour en arrière explicite des transactions etc., le nombre de livraisons peut augmenter et les applications ou les fournisseurs JMS peuvent utiliser cette information en cas de problème. et peut-être faire quelque chose de différent comme déplacer le message dans une file d'attente de lettres mortes, ou même ignorer le message, en fonction de la nature du message, l'application et le contexte.