2013-10-01 36 views
0

我正在运行2个应用程序的群集(节点1 &节点2)。应用程序A和应用程序B.是否可以附加节点ID与JMS消息?

  1. 应用A将消息发送到JMS队列Q(这将跨越节点1 & 2被分配)。
  2. 应用程序B将侦听队列,处理并发送消息回Q(这也将被分发)。

所以我想应用B发送消息给同一个节点,在它receives.How才能实现这一目标?

代码/配置。怎么样 ?

在此先感谢。

回答

1

您可以在消息上设置字符串属性,具体取决于您要将其传送到的节点。

 TextMessage textmsg1 = qs.createTextMessage(); 
     textmsg1.setStringProperty("SentToNode","Node1"); 

(如果传送每一封邮件到两个节点,那么你可以简单地appB的消息发送给两个节点,这使得没有任何意义,从而忽略这种情况下)。

现在在接收端(您的应用程序B)正在监听此队列,您可以检索此属性并采取适当的操作。

@Override 
public void onMessage(Message message) { 
    try { 
     count++; 
     TextMessage msg = (TextMessage) message; 
     System.out.println("Message Received " + msg.getText()); 
     System.out.println("Message received from " + msg.getStringProperty("SentToNode")); 
     //now you can send the message to that node 

    } catch (JMSException e) { 
     e.printStackTrace(); 
    } 
} 
+0

而且也看到了这个消息监听器容器CONFIGS:http://stackoverflow.com/questions/12820306/how-to-inject-a-message-selector-to-message-listener-bean-在-JMS-弹簧INTEGRAT – united

相关问题