我们通过远程队列定义 CLIENT.DATA(传输队列、发送/接收通道等)从队列管理器 QM_MINE 队列管理器 QM_CLIENT 和队列 CLIENT.DATA 发送 XML 文本消息。消息到达目的地(客户端的 CLIENT.DATA 队列)。当前的问题是,一旦消息到达 QM_CLIENT 中的 CLIENT.DATA,就能够在 QM_MINE 中的本地队列 CLIENT.DATA.ACK 上接收确认消息(所发送消息的精确副本)自动地.
我在 WebSphere v7.1 信息中心找到了一些资源回复队列 http://publib.boulder.ibm.com/infocenter/wmqv7/v7r1/index.jsp?topic=/com.ibm.mq.doc/ic10950_.htm and 然而它们对我并没有真正的帮助。
到目前为止我尝试使用回复队列方式。我在 QM.OCC 上创建了一个传输队列 QM_MCT。我发送到 CLIENT.DATA 队列的每条消息都使用 setJMSReplyTo() 方法指定回复队列。但我确信不是这样,我还缺少更多。
MQ 对象摘要:
QM_MINE:CLIENT_DATA(远程Q)、QM_CLIENT(传输Q)、CLIENT_DATA_ACK(本地Q)
QM_CLIENT:CLIENT_DATA(localQ),QM_MINE(transmitQ),
并且,两端都有发送器/接收器通道。
源代码片段:
客户数据发送者(交易下):
public class ClientServiceImpl extends JmsGatewaySupport implements ClientService {
@Override
public void sendClientData(String dataXML) {
getJmsTemplate().convertAndSend(dataXML);
}
}
消息转换器:
public Message toMessage(Object o, Session session) throws JMSException, MessageConversionException {
String dataXML = (String) o;
TextMessage message = session.createTextMessage();
message.setJMSReplyTo(replyToQueue);
message.setText(dataXML);
return message;
}
Note:
目前我没有任何 MDP 或 MDB 来侦听和使用 QM_CLIENT 中的 CLIENT_DATA 队列中的消息。我只是从 QM_MINE 发送它,然后它被 MQ 移动到 QM_CLIENT。我需要消耗这些消息才能使其正常工作吗?
我在 Linux 上使用 java、JMS、Spring 和 WebShere MQ v7.1。任何更多信息将根据要求提供。