当服务器端出错时,WebSphere API是否始终提供MQ原因代码?

时间:2016-02-19 10:04:39

标签: java ibm-mq

尝试从队列中提取邮件时,我收到以下错误,

Original thrown object message: com.ibm.msg.client.wmq.v6.jms.internal.ConfigEnvironment$1: MQJMS2002: failed to get message from MQ queue.
Stack trace:com.ibm.msg.client.wmq.v6.jms.internal.ConfigEnvironment$1: MQJMS2002: failed to get message from MQ queue.
        at com.ibm.msg.client.wmq.v6.jms.internal.ConfigEnvironment.newException(ConfigEnvironment.java:379)
        at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.getMessage(MQMessageConsumer.java:3082)
        at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.receiveInternal(MQMessageConsumer.java:4544)
        at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.receive(MQMessageConsumer.java:4032)
        at com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl.receiveInboundMessage(JmsMessageConsumerImpl.java:787)
        at com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl.receive(JmsMessageConsumerImpl.java:487)
        at com.ibm.mq.jms.MQMessageConsumer.receive(MQMessageConsumer.java:217)
        at com.myproject.mqqueue.JMSMQTest.extractMessages(JMSMQTest.java:220)

我可以看到连接已经正确建立并在我尝试提取消息时受到攻击。目前的深度也是20,我无法提取相同的。

有人可以告诉我,如果我做错了或需要进行一些配置。

此外,如果它是像MQRC zzzz这样的服务器端问题,是否必须拥有Mq原因代码?

添加了有关跟踪的更多信息:

Caused by: java.lang.NullPointerException
        at com.ibm.msg.client.wmq.v6.jms.internal.JMSMessage._parseMcdFolder(JMSMessage.java:3486) 
        at com.ibm.msg.client.wmq.v6.jms.internal.JMSMessage._parseMcdFolderUtf8(JMSMessage.java:3627) 
        at com.ibm.msg.client.wmq.v6.jms.internal.MQJMSMessage.createJMSMessage(MQJMSMessage.java:607) 
        at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.isMessageSelected(MQMessageConsumer.java:3712) 
        at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.getMessage(MQMessageConsumer.java:2745) 

关于代码,我不做任何不同的事情,下面是几个部分

        QueueReceiver qReceiver;
        Message message;

        message=qReceiver.receive(3000); //Having problem while calling over here

1 个答案:

答案 0 :(得分:1)

我会说队列中的消息不是MQRFH2消息。

同时转储LinkedException是一个非常好的主意。即。

{{1}}

LinkedException将包含MQ原因代码。