WebSphere MQ确认和回复队列



我们通过远程队列定义CLIENT.DATA(传输队列、发送/接收通道等)从队列管理器QM_MINE队列管理器QM_CLIENT和队列CLIENT.DATA发送XML文本消息。消息到达目的地(客户端的CLIENT.DTA队列)。当前的问题是,一旦消息自动到达QM_CLIENT中的CLIENT.DATA,就能够在QM_MINE中的本地队列CLIENT.DATA.ACK上接收确认消息(发送消息的精确副本)。

我在WebSpherev7.1信息中心找到了一些关于回复队列和消息确认的资源,但它们对我并没有真正的帮助

到目前为止,我尝试使用回复排队的方式。我在QM.OCC上创建了一个传输队列QM_MCT。每次发送到CLIENT.DATA队列的消息,我都会使用setJMSReplyTo()方法指定回复队列。然而,我确信事实并非如此,我还缺少更多。

MQ对象摘要:

QM_MINE:CLIENT_DATA(远程Q)、QM_CLIENT(传输Q)、CLIENT_DATA_ACK(本地Q)

QM_CLIENT:CLIENT_DATA(本地Q)、QM_MINE(传输Q)、

以及两端的发送器/接收器通道。

源代码碎片:

客户端数据发送器(交易中):

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;
}

注:

当前,我没有任何MDP或MDB来侦听和使用QM_CLIENT中CLIENT_DATA队列中的消息。我只是从QM_MINE发送它,然后它被MQ移动到QM_CLIENT。我需要使用这些消息吗?

我在Linux上使用java、JMS、Spring和WebShere MQ v7.1。我们将根据要求提供更多信息。

请参阅关于MQMD.Report字段的部分。是的,您确实需要设置回复字段,以便确认可以返回给您。但是,您还需要告诉WMQ您希望它生成报告消息。根据需要,将字段设置为MQRO_COA_WITH_FULL_DATA

最新更新