【发布时间】:2012-04-15 13:29:48
【问题描述】:
我使用 Websphere MQ 作为代理应用程序流中的输入和输出。该流程中还包含 Websphere Transformation Extender Maps。
我想使用 java 在输入队列上发送带有唯一标识符的消息,并在输出队列上接收回复。我应该能够使用该唯一标识符从输出队列中选择消息。
我该怎么做?
【问题讨论】:
我使用 Websphere MQ 作为代理应用程序流中的输入和输出。该流程中还包含 Websphere Transformation Extender Maps。
我想使用 java 在输入队列上发送带有唯一标识符的消息,并在输出队列上接收回复。我应该能够使用该唯一标识符从输出队列中选择消息。
我该怎么做?
【问题讨论】:
执行此操作的简单方法是使用 CorrelationID。
正在处理请求的应用程序在响应时需要将 MessageID 复制到回复消息的 CorrelationID。请求者应用程序在接收消息时将 CorrelationID 指定为消息选择器,并提供请求消息的 MessageID 作为选择器的值。
如果您打算使用 JMS,那么它会简单得多。使用 JMSMessageID 和 JMSCorrelationID 属性并使用 JMSCorrelationID 作为选择器创建消费者
队列接收器队列接收器 = session.createReceiver(destination, "JMSCorrelationID='+ requestMsg.JMSMessageID +"'");
【讨论】: