JMSCMQ0001: сбой вызова WebSphere MQ с кодом 2 '(' MQCC_FAILED ') причины' 2016 '(' MQRC_GET_INHIBITED ') - PullRequest
0 голосов
/ 15 мая 2018

В моем файле журнала появляется следующая ошибка:

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 голосов
/ 17 мая 2018

Как сказал предыдущий человек, очередь, из которой вы хотите получить сообщение, имеет запрещенную функцию GET. Однако на уровне QLOCAL это отображается как:

DIS QL ("QUEUE.A") ПОЛУЧИТЬ (ОТКЛЮЧЕНО)

так что вам нужно спросить администратора MQ или если у вас есть доступ, чтобы включить его.

ALTER QL (QUEUE.A) GET (ENABLED)

тогда попробуй и это будет работать как шарм!

0 голосов
/ 15 мая 2018

Это то, что документация IBM MQ говорит о MQRC_GET_INHIBITED:

В настоящее время вызовы MQGET запрещены для очереди или для очереди, в которую разрешается эта очередь.

Поэтому вам нужно спросить администратора Queue Manager, почему в настоящее время прием сообщений из этой очереди не разрешен.

...