Il est généralement déconseillé d'utiliser l'ID de message renvoyé par le fournisseur JMS comme identifiant de corrélation avec lequel un message est publié dans une file d'attente. Comment les utilisateurs ont-ils généré leurs identifiants de corrélation pour une architecture de demande/réponse?Création d'un ID de corrélation JMS
Répondre
Les clients peuvent utiliser un standard d'ID unique comme UUID
pour générer un nouvel ID. Here est un bon tutoriel pour vous.
Vous pouvez renvoyer l'ID de corrélation du fournisseur JMS en utilisant le code suivant.
message.setJMSCorrelationID(UUID.randomUUID().toString());
producer.send(message);
LOG.info("jms-client sent:" + message.getJMSCorrelationID());
Cheers.
génération de corrélation côté serveur ID souffre de deux problèmes cependant:
protocoles à sens unique (comme JMS) ont aucun moyen direct de retourner l'ID de corrélation au client. Un autre canal pourrait être utilisé mais qui complique les choses.
Des problèmes inattendus peuvent empêcher le client de recevoir l'ID généré même si la demande a été acceptée et traitée sur le serveur. C'est pourquoi la génération d'ID client doit être prise en compte.
ID de corrélation générées par les clients
Les clients peuvent utiliser une norme d'identification unique comme UUID pour générer un nouvel ID
message.setJMSCorrelationID(UUID.randomUUID().toString());
Ref: http://blogs.mulesoft.com/dev/anypoint-platform-dev/total-traceability/
Il est? La spécification mentionne spécifiquement l'utilisation de l'ID du message comme ID de corrélation. Il dit alors que "dans certains cas" une application peut avoir besoin de rouler votre propre ID de corrélation. –
vérifiez ce lien. http://www.theserverside.com/discussions/thread.tss?thread_id=44779 – onejigtwojig
Ah - vous avez donc affaire à des cas de non-conformité. La spécification impose la possibilité de définir ce champ, donc si vous déplacez MsgID vers CorrelID et que la valeur change, elle n'est pas conforme. Dans un fournisseur compatible, cela fonctionnerait comme prévu, car le MsgID serait unique, même à travers les moteurs de message, et vous pourriez définir de manière fiable le CorrelID. Oui, vous avez probablement besoin de rouler le vôtre. –