WebSphere MQ Acknowledgment和Reply-To Queue

时间:2012-02-29 17:24:06

标签: java jms ibm-mq

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

我在reply-to queuemessage acknowledgement 上的WebSphere v7.1信息中心找到了几个资源,但它们对我没有帮助。

到目前为止,我尝试使用回复队列方式。我在QM.OCC上创建了一个传输队列QM_MCT。我发送到CLIENT.DATA队列的每条消息都使用setJMSReplyTo()方法指定了reply-queue。但是我确信不是这样,我想念的更多。

MQ对象摘要:

  

QM_MINE:CLIENT_DATA(remoteQ),QM_CLIENT(transmitQ),CLIENT_DATA_ACK(localQ)

     

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

注意:

当前我没有任何MDP或MDB来侦听和使用QM_CLIENT中CLIENT_DATA队列的消息。我只是从QM_MINE发送它,它被MQ移动到QM_CLIENT。我是否需要使用消息才能使其正常工作?

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

1 个答案:

答案 0 :(得分:3)

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