JMSCMQ0001:WebSphere MQ调用失败,包含compcode' 2' (' MQCC_FAILED')原因' 2016' (' MQRC_GET_INHIBITED')

时间:2018-05-15 10:17:52

标签: ibm-mq

我在日志文件中收到以下错误:

2018-04-19 11:42:17,564 ERROR QueueContainer  - Error com.ibm.msg.client.jms.DetailedIllegalStateException: JMSWMQ2002: Failed to get a message from destination. WebSphere MQ classes for JMS attempted to perform an MQGET; however WebSphere MQ reported an error. Use the linked exception to determine the cause of this error.
    at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:496)
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:236)
    at com.ibm.msg.client.wmq.internal.WMQMessageConsumer.checkJmqiCallSuccess(WMQMessageConsumer.java:130)
    at com.ibm.msg.client.wmq.internal.WMQConsumerShadow.getMsg(WMQConsumerShadow.java:1431)
    at com.ibm.msg.client.wmq.internal.WMQSyncConsumerShadow.receiveInternal(WMQSyncConsumerShadow.java:239)
    at com.ibm.msg.client.wmq.internal.WMQConsumerShadow.receive(WMQConsumerShadow.java:1135)
    at com.ibm.msg.client.wmq.internal.WMQMessageConsumer.receive(WMQMessageConsumer.java:469)
    at com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl.receiveInboundMessage(JmsMessageConsumerImpl.java:883)
    at com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl.receive(JmsMessageConsumerImpl.java:546)
    at com.ibm.mq.jms.MQMessageConsumer.receive(MQMessageConsumer.java:258)
    at com.damco.tools.proxy.mq.jms.JMSQueueReader.readNextMessage(JMSQueueReader.java:44)
    at com.damco.tools.proxy.QueueContainer.runMessageLoop(QueueContainer.java:122)
    at com.damco.tools.proxy.QueueContainer.run(QueueContainer.java:107)
    at java.lang.Thread.run(Thread.java:767)
Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2016' ('MQRC_GET_INHIBITED').
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:223)
    ... 12 more

这可能是什么原因和解决方法?

2 个答案:

答案 0 :(得分:1)

正如之前的人所说,您想要获取消息的队列已禁止GET。 但是在QLOCAL级别上显示为:

DIS QL(“QUEUE.A”)GET(DISABLED)

因此您需要询问MQ管理员,或者您是否有权启用它。

ALTER QL(QUEUE.A)GET(ENABLED)

然后尝试它会起到魅力的作用!

答案 1 :(得分:0)

这是IBM MQ documentation关于MQRC_GET_INHIBITED所说的内容:

  

当前对队列或此队列解析的队列禁止MQGET调用。

因此,您必须向队列管理员管理员询问为何当前未启用从此队列接收消息。