11
votes

Comment envoyer un message au récepteur particulier à l'aide de la file d'attente JMS

est-il possible d'envoyer un message au récepteur particulier à l'aide de la file d'attente JMS (Hornetq)?

Parmi tant de récepteurs, je veux que certains messages soient reçus par récepteur qui fonctionnent sur Linux OS.

Chaque suggestion est évaluée.

merci.


0 commentaires

4 Réponses :


4
votes

Vous pouvez définir les propriétés du message JMS: http: // download.oracle.com/javaee/1.4/api/javax/jms/textMessage.html et filtrer les messages au côté du client. Par exemple, message.setstringProperty ("cible_os", "Linux") - chez l'expéditeur http://www.mkyong.com/java/ Comment-détecter-détecter-os-in-java-systemgetpropertyosname / - détecter le système d'exploitation aux récepteurs et les messages de filtrage avec une propriété cible_OS correcte


2 commentaires

Merci pour votre réponse, pouvez-vous s'il vous plaît élaborer à ce sujet ?, Maintenant, je suis capable d'envoyer un message avec correctement mais comment puis-je le recevoir? Ou où j'ai besoin de définir la propriété pour un côté récepteur?


Vous pouvez vérifier la propriété auprès du destinataire et ignorer les messages si le récepteur n'est pas intéressé. Ou vous pouvez utiliser le sélecteur JMS: télécharger.oracle.com/javae/1.4 /Tutorial/doc/jms4.html Si votre implémentation de JMS l'appuie.



0
votes

Je ne manque pas de choses que vous manquez quelque chose, vous pouvez garder les choses simples en ayant plusieurs files d'attente, spécifiques à chaque plate-forme, les consommateurs à base de Linux peuvent écouter la file d'attente spécifique Linux. Maintenant, votre défi consistera probablement à acheminer les messages vers la file d'attente appropriée du côté du producteur, qui devrait être assez facile si le routage est basé sur un attribut du message?


1 commentaires

Merci de répondre, mais en fait, je ne suis pas censé créer une nouvelle file d'attente pour cela selon la condition requise.



1
votes

Vous pouvez utiliser des sélecteurs JMS sur le côté consommateur pour rechercher des messages qui correspondent à des critères spécifiques.


0 commentaires

20
votes

Vous pouvez définir une propriété de message à l'aide de message.setobjectProperty (chaîne, objet) puis que vos consommateurs sélectionnent les messages qu'ils souhaitent utiliser Session.CreatConsumer(Destination, chaîne)

Extérieur de l'expéditeur: P >

MessageConsumer consumer = session.createConsumer(destination, "OS = 'LINUX'");
//Use consumer to receive messages.


2 commentaires

Comment ce qui précède résout le problème? Je suis confronté à la question après avoir changé ce qui précède?


Même si cela ne résout pas le problème, c'est une très bonne idée de la création de consommateurs JMS. Merci d'avoir partagé!