我在日志文件中收到以下错误:
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
这可能是什么原因和解决方法?
答案 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调用。
因此,您必须向队列管理员管理员询问为何当前未启用从此队列接收消息。