2136 (0858) (RC2136): MQRC_MULTIPLE_REASONS

Мы пытаемся удалить одну или несколько очередей из ранее настроенного канала MQ. Удаление прошло успешно. Когда мы запустили код приложения, мы получили следующий код / ​​описание ошибки: -

2136 (0858) (RC2136): MQRC_MULTIPLE_REASONS Объяснение Был отправлен вызов MQOPEN, MQPUT или MQPUT1 для открытия списка рассылки или помещения сообщения в список рассылки, но результат вызова не был одинаковым для всех пунктов назначения в список. Применяется одно из следующего: • Вызов был успешным для некоторых пунктов назначения, но не для других. В этом случае код завершения - MQCC_WARNING. • Вызов завершился неудачно для всех пунктов назначения, но по разным причинам. В этом случае код завершения - MQCC_FAILED. Этот код причины встречается в следующих средах: AIX®, HP-UX, i5 / OS ™, Solaris, Windows, а также клиенты WebSphere® MQ, подключенные к этим системам. Код завершения MQCC_WARNING или MQCC_FAILED

Ответ программиста Изучите записи ответов MQRR, чтобы определить места назначения, для которых произошел сбой вызова, и причину сбоя. Убедитесь, что приложение предоставляет при вызове достаточное количество записей ответов, чтобы можно было определить ошибку (и). Для вызова MQPUT1 записи ответа должны быть указаны с использованием структуры MQOD, а не структуры MQPMO.

https://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.amqzao.doc/fm13300_.htm

http://www.mqseries.net/phpBB/viewtopic.php?p=6475&sid=eb310522e0959bb828917836dfa550ea

Как решить эту проблему?


person Parag Ahire    schedule 16.05.2014    source источник


Ответы (2)


Этот код причины предполагает, что ваше приложение выполняет MQPUT сразу для нескольких очередей, предоставляя их имена в структуре MQOR, подвешенной к структуре MQOD.

Вы говорите, что удалили несколько очередей, а затем после этого удаления ваше приложение начало сообщать об этой ошибке. Это говорит о том, что вы удалили по крайней мере одну из очередей, на которые ваше приложение ранее ссылалось, но не все очереди, которые оно использовало. Таким образом, некоторые коды причин были MQRC_NONE, а некоторые коды причин были MQRC_OBJECT_NOT_FOUND, потому что вы удалили их, следовательно, MQRC_MULTIPLE_REASONS. Как указывает ваш текст в вашем вопросе, чтобы увидеть все индивидуальные коды причин, вам необходимо просмотреть структуру MQRR, возвращаемую вашему приложению.

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

person Morag Hughson    schedule 17.09.2014

Решение состоит в том, чтобы не только удалить очередь, но и удалить ее из списка рассылки.

person Parag Ahire    schedule 19.09.2014