Troubleshooting
Problem
MQ connection is terminating with error code 2009.
Cause
The connection may be broken for a number of different reasons. The 2009 return code indicates that something prevented a successful connection to the Queue Manager. The most common causes for this are the following are:
1. A firewall that is terminating the connection
2. An IOException that causes the socket to be closed
3. An explicit action to cause the socket to be closed by one end
4. The queue manager is offline
5. The maximum number of channels allowed by the queue manager are open
6. A configuration problem in the Queue Connection Factory (QCF)
Resolving The Problem
1. Preventing the firewall from terminating connections:
Configure the Connection Pool and Session Pool settings for the QCF that is configured in IBM WebSphere Application Server so that WebSphere can remove connections from the pool before they are dropped by the firewall. Change the value of Min Connections to 0 and set the Unused Timeout to half the number of seconds as the firewall timeout. For example, if the firewall times out connection after 15 minutes (900 seconds), set the Unused Timeout to 450 seconds.
2. Configuring to minimize the possibility of an IOException:
On a UNIX® system, configure the TCP stanza of the qm.ini for the queue manager to contain this entry:
KeepAlive=YES
This setting causes TCP/IP to check periodically that the other end of the connection is still available. If it is not, the channel is closed.
Also follow the instructions for Tuning Operating Systems in the WebSphere Application Server Information Center. These will enable the user to set the operating system configuration for TCP/IP to prevent sockets that are in use from being closed unexpectedly. For example, on Solaris, user sets the TCP_KEEPALIVE_INTERVAL setting on the WebSphere MQ machine. This should be set to be less than the firewall timeout value. If TCP_KEEPALIVE_INTERVAL is not set to be lower than the firewall timeout, then the keepalive packets will not be frequent enough to keep the connection open between WebSphere Application Server and MQ.
NOTE: Check that the firewall is configured to allow keepalive packets to pass through. A connection broken error could be caused by the firewall not letting the keepalive packets through.
3. An explicit action can cause this:
An action such as stopping the queue manager or restarting the queue manager would also cause Reason Code 2009. There are also some MQ defects that could result in unexpected 2009 errors. When this document was written, APARs that addressed these defects included IY59675, IC42636, PQ87316, and PQ93130. It is a good idea to install the latest available Fix Pack for WebSphere MQ or Interim Fix for embedded messaging.
4. The maximum number of channels has been reached:
This could be due to the number of channels for the JMS provider not being large enough, or there could be some errors occurring that are causing channels to not close, so that they cannot be reused. For additional information, refer to these technotes:
MQ Manager Stops Responding To JMS Requests
Refer to technote Resolving JMSException due to com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2009
[{«Product»:{«code»:»SSFKSJ»,»label»:»WebSphere MQ»},»Business Unit»:{«code»:»BU053″,»label»:»Cloud & Data Platform»},»Component»:»Configuration»,»Platform»:[{«code»:»PF035″,»label»:»z/OS»}],»Version»:»8.0;7.5;7.1″,»Edition»:»»,»Line of Business»:{«code»:»LOB45″,»label»:»Automation»}},{«Product»:{«code»:»SSGR73″,»label»:»IBM Cast Iron Cloud Integration»},»Business Unit»:{«code»:»BU053″,»label»:»Cloud & Data Platform»},»Component»:» «,»Platform»:[{«code»:»»,»label»:»»}],»Version»:»»,»Edition»:»»,»Line of Business»:{«code»:»LOB45″,»label»:»Automation»}}]
Product Synonym
WebSphere MQ WMQ
Problem
BP fails to send some XML files to WebSphere server. Some files send successfully and others fail at the commit step with the same BP, same destination server, and same Queue.
Symptom
Error messages in WebSphereMQSuite.log:
[2008-08-21 08:13:43.32] ERROR 000000000000 GLOBAL_SCOPE <WSMQSession-svgt99:-7cf9f8c3:11bd762db93:-3b7a-28820343> MQException during MQCMIT: CC=2 RC=2009 CONNECTION_BROKEN
com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2009
at com.ibm.mq.MQQueueManager.commit(MQQueueManager.java:2266)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQSession.commit(WSMQSession.java:332)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQImpl.commit(WSMQImpl.java:227)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQImpl.processData(WSMQImpl.java:81)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.invokeService(ActivityEngineHelper.java:1671)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.nextMainLogic(ActivityEngineHelper.java:559)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.next(ActivityEngineHelper.java:339)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.doWork(WorkFlowQueueListener.java:321)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.run(WorkFlowQueueListener.java:202)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:163)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:149)
at com.sterlingcommerce.woodstock.workflow.queue.wfTransporter.run(wfTransporter.java:331)
at com.sterlingcommerce.woodstock.workflow.queue.BasicExecutor$Worker.run(BasicExecutor.java:496)
at java.lang.Thread.run(Thread.java:595)
[2008-08-21 08:13:43.352] ERROR 000000000000 GLOBAL_SCOPE <WSMQSession-svgt99:-7cf9f8c3:11bd762db93:-3b7a-28820343> MQException during MQCLOSE: CC=2 RC=2019
com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2019
at com.ibm.mq.MQManagedObject.close(MQManagedObject.java:400)
at com.ibm.mq.MQQueue.close(MQQueue.java:1720)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQSession.closeAllQueues(WSMQSession.java:310)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQSession.closeSession(WSMQSession.java:115)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQImpl.closeSession(WSMQImpl.java:142)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQImpl.processData(WSMQImpl.java:80)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.invokeService(ActivityEngineHelper.java:1671)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.nextMainLogic(ActivityEngineHelper.java:559)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.next(ActivityEngineHelper.java:339)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.doWork(WorkFlowQueueListener.java:323)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.run(WorkFlowQueueListener.java:202)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:163)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:149)
at com.sterlingcommerce.woodstock.workflow.queue.wfTransporter.run(wfTransporter.java:331)
at com.sterlingcommerce.woodstock.workflow.queue.BasicExecutor$Worker.run(BasicExecutor.java:496)
at java.lang.Thread.run(Thread.java:595)
[2008-08-21 08:13:43.352] ALL 000000000000 GLOBAL_SCOPE <WSMQSession-svgt99:-7cf9f8c3:11bd762db93:-3b7a-28820343> ##[DEBUG]## Closed Session
Cause
The 2009 and 2019 Connect Broken error messages are returned from the WebSphere MQ Server and are not generated in Sterling B2B Integrator. The connection may be broken for a number of reasons and the 2009 return code indicates that something prevented a successful connection to the Queue Manager.
Resolving The Problem
The following message board gives more details about the issue and recommendations for firewall and WebSphere MQ Server settings to help resolve the 2009 Connection Broken error message:http://www.mqseries.net/phpBB2/viewtopic.php?p=228149&sid=86f0e6dcf33a3654de2c6c39e711115d
[{«Product»:{«code»:»SS3JSW»,»label»:»IBM Sterling B2B Integrator»},»Business Unit»:{«code»:»BU059″,»label»:»IBM Software w/o TPS»},»Component»:»Extensions»,»Platform»:[{«code»:»PF002″,»label»:»AIX»},{«code»:»PF010″,»label»:»HP-UX»},{«code»:»PF012″,»label»:»IBM i»},{«code»:»PF016″,»label»:»Linux»},{«code»:»PF027″,»label»:»Solaris»},{«code»:»PF033″,»label»:»Windows»}],»Version»:»5.2.6;5.2.5;5.2.4;5.2.3;5.2.2;5.2.1;5.2″,»Edition»:»»,»Line of Business»:{«code»:»LOB59″,»label»:»Sustainability Software»}}]
Historical Number
NFX3478
Содержание
- MQ Error 2009 Connection Broken error at WebSphereMQ_commit step — Sterling B2B Integrator
- Troubleshooting
- Problem
- Symptom
- Cause
- Исправление: Ошибка «Ошибка при попытке получения сообщений из очереди» в MQSC адаптера
- Симптомы
- Причина
- Решение
- Информация о накопительном пакете обновления
- Host Integration Server 2013
- Host Integration Server 2010
- Временное решение
- Статус
- Дополнительные сведения
- IBM MQ Error 2009 — Как определить, когда администратор очередей запускает собственный поток
- MQ Connection — ошибка 2009 г.
- 1 ответы
MQ Error 2009 Connection Broken error at WebSphereMQ_commit step — Sterling B2B Integrator
Troubleshooting
Problem
BP fails to send some XML files to WebSphere server. Some files send successfully and others fail at the commit step with the same BP, same destination server, and same Queue.
Symptom
Error messages in WebSphereMQSuite.log:
[2008-08-21 08:13:43.32] ERROR 000000000000 GLOBAL_SCOPE MQException during MQCMIT: CC=2 RC=2009 CONNECTION_BROKEN
com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2009
at com.ibm.mq.MQQueueManager.commit(MQQueueManager.java:2266)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQSession.commit(WSMQSession.java:332)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQImpl.commit(WSMQImpl.java:227)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQImpl.processData(WSMQImpl.java:81)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.invokeService(ActivityEngineHelper.java:1671)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.nextMainLogic(ActivityEngineHelper.java:559)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.next(ActivityEngineHelper.java:339)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.doWork(WorkFlowQueueListener.java:321)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.run(WorkFlowQueueListener.java:202)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:163)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:149)
at com.sterlingcommerce.woodstock.workflow.queue.wfTransporter.run(wfTransporter.java:331)
at com.sterlingcommerce.woodstock.workflow.queue.BasicExecutor$Worker.run(BasicExecutor.java:496)
at java.lang.Thread.run(Thread.java:595)
[2008-08-21 08:13:43.352] ERROR 000000000000 GLOBAL_SCOPE MQException during MQCLOSE: CC=2 RC=2019
com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2019
at com.ibm.mq.MQManagedObject.close(MQManagedObject.java:400)
at com.ibm.mq.MQQueue.close(MQQueue.java:1720)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQSession.closeAllQueues(WSMQSession.java:310)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQSession.closeSession(WSMQSession.java:115)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQImpl.closeSession(WSMQImpl.java:142)
at com.sterlingcommerce.woodstock.services.wsmqSuite.WSMQImpl.processData(WSMQImpl.java:80)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.invokeService(ActivityEngineHelper.java:1671)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.nextMainLogic(ActivityEngineHelper.java:559)
at com.sterlingcommerce.woodstock.workflow.activity.engine.ActivityEngineHelper.next(ActivityEngineHelper.java:339)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.doWork(WorkFlowQueueListener.java:323)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.run(WorkFlowQueueListener.java:202)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:163)
at com.sterlingcommerce.woodstock.workflow.queue.WorkFlowQueueListener.onMessage(WorkFlowQueueListener.java:149)
at com.sterlingcommerce.woodstock.workflow.queue.wfTransporter.run(wfTransporter.java:331)
at com.sterlingcommerce.woodstock.workflow.queue.BasicExecutor$Worker.run(BasicExecutor.java:496)
at java.lang.Thread.run(Thread.java:595)
[2008-08-21 08:13:43.352] ALL 000000000000 GLOBAL_SCOPE ##[DEBUG]## Closed Session
Cause
The 2009 and 2019 Connect Broken error messages are returned from the WebSphere MQ Server and are not generated in Sterling B2B Integrator. The connection may be broken for a number of reasons and the 2009 return code indicates that something prevented a successful connection to the Queue Manager.
Источник
Исправление: Ошибка «Ошибка при попытке получения сообщений из очереди» в MQSC адаптера
Симптомы
Рассмотрим следующий сценарий:
Использовать клиентские адаптера BizTalk для WebSphere MQ (MQSC адаптера) для подключения к IBM WebSphere MQ для z/OS V7.0.1.
Вы успешно получать сообщения от IBM WebSphere.
Применить узла Integration Server 2010 накопительное обновление 9 (CU9) для узла Integration Server 2010 системы или узла интеграции Server 2013 накопительное обновление 1 (CU1) в систему узла Integration Server 2013.
В этом случае появляется сообщение об ошибке, при попытке получить доступ к сообщениям с IBM WebSphere MQ для z/OS V7.0.1 успешно полученные ранее напоминать следующее:
Код события: 5740
Источник: BizTalk Server
описание
Адаптер «MQSC» появляется сообщение об ошибке. Сведения о «ошибка при попытке получения сообщений из очереди. очередь = имя_очереди queueManager = queue_manager код основания = 2009″.
Примечание. Код причины 2009 считается MQRC_CONNECTION_BROKEN в IBM WebSphere MQ.
Причина
Эта проблема возникает из-за MQSC адаптер был обновлен в узел Integration Server 2010 накопительное обновление 9 (CU9) и узла интеграции Server 2013 накопительное обновление 1 (CU1) для устранения проблем, описанных в следующих статьях базы знаний Майкрософт:
ИСПРАВИТЬ 2910875 : «компоненты рабочей области не Disassemble можно распознать данные» ошибка при получении сообщений от IBM WebSphere MQ
ИСПРАВИТЬ 2912428 : MQSC адаптеру создает сетевой трафик при получении сообщений из очереди сообщений IBM WebSphere
Эти обновления изменить процесс, который использует адаптер MQSC для определения длины входящего сообщения и преобразование полученного сообщения. В частности изменений в процесс преобразования сообщений вызывает проблему преобразования сообщений, когда адаптер MQSC соединяется с IBM WebSphere MQ для z/OS V7.0.1.
Решение
Информация о накопительном пакете обновления
Host Integration Server 2013
Исправление, устраняющее эту проблему включен в Накопительное обновление 2 для узла Integration Server 2013.
Host Integration Server 2010
Исправление, устраняющее эту проблему состава накопительного обновления 10 для узла Integration Server 2010.
Временное решение
Чтобы обойти эту проблему, удалите из подверженных Host Integration Server узла Integration Server 2010 накопительное обновление 9 (CU9) или узел интеграции Server 2013 накопительное обновление 1 (CU1).
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе «Относится к».
Дополнительные сведения
После установки этого обновления адаптера MQSC не используется процедура преобразования сообщений, которая была добавлена в указанный обновления при подключении к IBM WebSphere MQ для z/OS версий более ранних, чем V7.1.
Кроме того, обновление для устранения проблемы, которая препятствует SyncPoint операции адаптера MQSC (транзакций поддерживается = Да) работать при подключении к IBM WebSphere MQ для z/OS.
Продукты независимых производителей, обсуждаемые в этой статье, производятся компаниями, независимыми от корпорации Майкрософт. Корпорация Майкрософт не дает никаких явных или подразумеваемых гарантий относительно производительности или надежности этих продуктов.
Источник
IBM MQ Error 2009 — Как определить, когда администратор очередей запускает собственный поток
Это странно и несколько беспокоит надежный обмен сообщениями. Надеюсь, я что-то упускаю.
Это стало известно только сегодня из-за известных сетевых сбоев. Это дает мне хорошую возможность взглянуть на некоторую отказоустойчивость.
В потоке 1 мы отправляем сообщение в очередь, управляемую диспетчером очереди. Этот код:
Просто «зависает» на диспетчере очередей. То есть вроде запускается, а затем истекает время ожидания. Может быть, он работает в потоке, и поток дает сбой.
Мы бы ничего не узнали, кроме того, что у нас есть второй поток, слушающий другую очередь.
У нас есть такая же конструкция в потоке приема:
Но это вызывает ошибку MQException с кодом 2009. Это указывает на проблему с сетью. (http://www-01.ibm.com/support/docview.wss?uid=swg21472342)
Однако, опять же, QueueManager во втором потоке, кажется, запускает свой собственный поток, в котором создается исключение, в результате чего невозможно его поймать и отреагировать.
Что-то нам не хватает?
Обновлять
Вот мои свойства подключения:
Учитывая, что я новичок в IBM MQ, я заметил, что у меня есть свойство соединения MQC.MQCNO_RECONNECT_Q_MGR . Будет ли это играть роль? Я стремлюсь знать и управлять, когда что-то идет не так, а не полагаться на то, что мы не совсем понимаем.
Какая версия mq на стороне приложения?
Непонятно, что вы установили для свойств подключения. Вы используете автоматическое переподключение?
@JoshMc Мы используем 8.0.0.7.
@Shashi Я добавил к вопросу свойства подключения. Надеюсь это поможет. 🙂
Спасибо. Поскольку вы установили параметр повторного подключения, MQC.MQCNO_RECONNECT_Q_MGR, клиент MQ .NET, возможно, пытается повторно подключиться к администратору очередей, когда соединение с администратором очередей разорвано. По умолчанию попытки переподключения делаются в течение 30 минут. В случае неудачи время ожидания истекает.
@Shashi — Ах, спасибо, что наполнили меня информацией. Хотя этот вариант выглядит так, как будто это NO_reconnect, я понимаю, что вы имеете в виду. Я попытался удалить это (важно, чтобы я знал как можно скорее, что есть проблема), но поведение остается. Мне не сообщают, что диспетчер очереди недоступен. Также этот ibm.com/support/knowledgecenter/en/SSFKSJ_7.0.1/… говорит, что клиент .NET все равно не поддерживает автопереподключение.
Есть ли файлы FDC на стороне сервера MQ? У меня была похожая странная проблема с MQRC 2009 с использованием MQ 8.0.0.8; файл FDC помог мне определить, что я столкнулся с известной проблемой, исправленной с помощью APAR IT23364.
@DanielSteinmann Спасибо, Даниэль. К сожалению, у нас нет доступа к серверу. Причина отключения известна и ожидаема, и команда MQ в настоящий момент не доступна для расследования.
Обратите внимание, что определение того, когда диспетчер очередей отключается из-за сбоя сервера / диспетчера очередей или проблем с сетью, основывается на HBINT (Heart Beat Interval). Посмотрите мой ответ на вопрос StackOverflow «Установка тайм-аута для IBM MQ», чтобы получить более подробную информацию о том, как HBINT влияет на TIMEOUT клиентского канала.
Примечание 2: Центр знаний IBM, в котором указано, что клиент .Net, который не использует CCDT, будет согласовывать HBINT, который определен на канале администратора очередей SVRCONN , это может быть выполнено клиентом .Net, установив его на стороне клиента HBINT на начальное значение 1, затем согласование до более высокого значения SVRCONN. У меня сейчас открыт PMR с IBM, потому что, в отличие от KC, он не работает таким образом и вместо этого устанавливает исходный HBINT на стороне клиента равным 300.
Примечание 2, продолжение: Это означает, что в настоящее время, если вы хотите иметь HBINT менее 300, вам необходимо использовать CCDT. Если IBM решит считать это дефектом, будет создан APAR, который будет включен в будущую версию.
Также для справки MQCNO означает параметры подключения MQ.
Источник
MQ Connection — ошибка 2009 г.
Я подключаю MQ с помощью кода ниже. Я могу успешно подключиться к MQ. В моем случае я отправляю сообщения в MQ каждые 1 минуту один раз. После отсоединения кабеля я получаю ошибку ResonCode, но свойство IsConnected по-прежнему показывает true. Это правильный способ проверить, подключено ли соединение? Или есть какие-то лучшие практики по этому поводу.
Я хотел бы открыть соединение при запуске приложения, чтобы оно всегда оставалось открытым.
public static MQQueueManager ConnectMQ () <
если ((queueManager == null) || (! queueManager.IsConnected) || (queueManager.ReasonCode == 2009)) return queueManager; >
задан 01 июн ’10, 13:06
1 ответы
Поведение клиентского соединения WMQ заключается в том, что в режиме ожидания оно будет казаться подключенным до тех пор, пока не произойдет сбой вызова API или не истечет время ожидания соединения. Таким образом, isConnected (), скорее всего, будет сообщать истину до тех пор, пока вызов get, put или inquire не будет выполнен и не завершится ошибкой, после чего QMgr сообщит об отключении.
Также следует учитывать, что 2009 год — не единственный код, который вы можете получить. Это тот, который вы получаете, когда соединение разрывается, но есть коды соединения для выключения QMgr, закрытия канала и множества ошибок ресурсов и других ошибок.
Обычно для требования поддерживать постоянное соединение вам нужно обернуть цикл соединения и обработки сообщений внутри блока try / catch, вложенного в оператор while. Когда вы поймаете исключение, отличное от преднамеренного выхода, закройте объекты и QMgr, спите не менее 5 секунд, а затем выполните цикл до начала while. Спящий режим имеет решающее значение, потому что, если вы попадете в жесткий цикл повторного подключения и бросите сотни попыток подключения к QMgr, вы можете поставить на колени даже QMgr мэйнфрейма.
Альтернативой является использование клиента WMQ v7 и QMgr. С помощью этой комбинации автоматическое переподключение можно настроить как конфигурацию канала.
Источник
Host Integration Server 2013 Microsoft Host Integration Server 2010 Еще…Меньше
Симптомы
Рассмотрим следующий сценарий:
-
Использовать клиентские адаптера BizTalk для WebSphere MQ (MQSC адаптера) для подключения к IBM WebSphere MQ для z/OS V7.0.1.
-
Вы успешно получать сообщения от IBM WebSphere.
-
Применить узла Integration Server 2010 накопительное обновление 9 (CU9) для узла Integration Server 2010 системы или узла интеграции Server 2013 накопительное обновление 1 (CU1) в систему узла Integration Server 2013.
В этом случае появляется сообщение об ошибке, при попытке получить доступ к сообщениям с IBM WebSphere MQ для z/OS V7.0.1 успешно полученные ранее напоминать следующее:
Код события: 5740
Источник: BizTalk Server
описание
Адаптер «MQSC» появляется сообщение об ошибке. Сведения о «ошибка при попытке получения сообщений из очереди. очередь = имя_очереди queueManager = queue_manager код основания = 2009″.
Примечание. Код причины 2009 считается MQRC_CONNECTION_BROKEN в IBM WebSphere MQ.
Причина
Эта проблема возникает из-за MQSC адаптер был обновлен в узел Integration Server 2010 накопительное обновление 9 (CU9) и узла интеграции Server 2013 накопительное обновление 1 (CU1) для устранения проблем, описанных в следующих статьях базы знаний Майкрософт:
ИСПРАВИТЬ 2910875 : «компоненты рабочей области не Disassemble можно распознать данные» ошибка при получении сообщений от IBM WebSphere MQ
ИСПРАВИТЬ 2912428 : MQSC адаптеру создает сетевой трафик при получении сообщений из очереди сообщений IBM WebSphere
Эти обновления изменить процесс, который использует адаптер MQSC для определения длины входящего сообщения и преобразование полученного сообщения. В частности изменений в процесс преобразования сообщений вызывает проблему преобразования сообщений, когда адаптер MQSC соединяется с IBM WebSphere MQ для z/OS V7.0.1.
Решение
Информация о накопительном пакете обновления
Host Integration Server 2013
Host Integration Server 2010
Временное решение
Чтобы обойти эту проблему, удалите из подверженных Host Integration Server узла Integration Server 2010 накопительное обновление 9 (CU9) или узел интеграции Server 2013 накопительное обновление 1 (CU1).
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе «Относится к».
Дополнительные сведения
После установки этого обновления адаптера MQSC не используется процедура преобразования сообщений, которая была добавлена в указанный обновления при подключении к IBM WebSphere MQ для z/OS версий более ранних, чем V7.1.
Кроме того, обновление для устранения проблемы, которая препятствует SyncPoint операции адаптера MQSC (транзакций поддерживается = Да) работать при подключении к IBM WebSphere MQ для z/OS.
Продукты независимых производителей, обсуждаемые в этой статье, производятся компаниями, независимыми от корпорации Майкрософт. Корпорация Майкрософт не дает никаких явных или подразумеваемых гарантий относительно производительности или надежности этих продуктов.
Нужна дополнительная помощь?
Error detail as following: (stacktrace)
Caused by: com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2009'.
at com.ibm.mq.MQDestination.open(MQDestination.java:310)
at com.ibm.mq.MQQueue.<init>(MQQueue.java:261)
at com.ibm.mq.MQQueueManager.accessQueue(MQQueueManager.java:2751)
at com.ibm.mq.MQQueueManager.accessQueue(MQQueueManager.java:2779)
at com.citi.sh.h2h.service.adapter.H2hMqSendReceiveAdapter.connect(H2hMqSendReceiveAdapter.java:79)
... 17 more
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2009
at com.ibm.mq.jmqi.remote.internal.RemoteHconn.getConnection(RemoteHconn.java:884)
at com.ibm.mq.jmqi.remote.internal.RemoteHconn.getCmdLevel(RemoteHconn.java:2698)
at com.ibm.mq.MQDestination.open(MQDestination.java:302)
... 21 more
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2009;AMQ9213: A communications error for 'TCP' occurred. [1=java.net.SocketException[Unrecognized Windows Sockets error: 0: recv failed],4=TCP,5=sockInStream.read]
at com.ibm.mq.jmqi.remote.internal.RemoteTCPConnection.receive(RemoteTCPConnection.java:1515)
at com.ibm.mq.jmqi.remote.internal.RemoteRcvThread.receiveBuffer(RemoteRcvThread.java:804)
at com.ibm.mq.jmqi.remote.internal.RemoteRcvThread.receiveOneTSH(RemoteRcvThread.java:768)
at com.ibm.mq.jmqi.remote.internal.RemoteRcvThread.run(RemoteRcvThread.java:158)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.SocketException: Unrecognized Windows Sockets error: 0: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at com.ibm.mq.jmqi.remote.internal.RemoteTCPConnection.receive(RemoteTCPConnection.java:1505)
... 4 more
In windows 2003 server, my application running as a service to connect MQ to execute message. Some process executed successfully, but some are failed. The above error occurred.
My Java application use JDK1.7 and MQ version is 7.0.1.11
Could you give me some solution to fix this issue? Thank your very much for your help!
asked Feb 27, 2017 at 4:37
IBM MQ v7.0 went out of support on September 30th 2015.
I would suggest that you move to a supported version of IBM MQ. I’m leaving 7.1 out of the list below since it will go out of support on April 30 2017. Note that 7.5 will go out of support on April 30 2018.
MQ 7.5 client
MQ 8.0 client
MQ 9.0 client
If you must continue to use a out of support version I did find some references to the cause of your problem being that the Windows server supports both a IPv4 and IPv6 stacks. The solution was to force the JRE to use IPv4 only by adding the following setting to your Java startup.
-Djava.net.preferIPv4Stack=true
answered Feb 27, 2017 at 5:16
JoshMcJoshMc
9,9102 gold badges18 silver badges37 bronze badges
4
IBM Websphere MQ — AMQ9213 2009 MQRC_CONNECTION_BROKEN on MQ clients — Middleware News
You have WebSphere MQ clients which connect to several different MQ servers. The MQ clients are quite frequently disconnected with rc=2009, MQRC_CONNECTION_BROKEN. The clients are able to reconnect immediately. The queue managers are running well. You see no problems when issuing ‘runmqsc’ commands on the server.
Symptom
On the MQ server side you see the following message in the queue manager’s error log, AMQERR01.LOG:
AMQ9213: A communications error for TCP/IP occurred.
EXPLANATION: An unexpected error occurred in communications.
ACTION: The return code from the TCP/IP(select) [TIMEOUT] 660 seconds call was 11 (X’B’). Record these values and tell the systems administrator.
Cause
There was a parameter recently added in your qm.ini file called ClientIdle that was set to 600 secs. This caused the client connections to end after they were idle for the specified period of time + 60 seconds. After the connection is terminated at the server, the next attempt to send a request from the client side results in rc=2009.
Resolving the problem
You can either remove the ClientIdle parameter from the Channels stanza of your qm.ini files or you can set it to a value, which is higher than you expect your clients will be idle between calls.
The default path for the qm.ini file is /var/mqm/QMGRs/
/
Popular posts from this blog
MQ Series: — It is an IBM web sphere product which is evolved in 1990’s. MQ series does transportation from one point to other. It is an EAI tool (Middle ware) VERSIONS:-5.0, 5.1, 5.3, 6.0, 7.0(new version). The currently using version is 6.2 Note: – MQ series supports more than 35+ operating systems. It is platform Independent. For every OS we have different MQ series software’s. But the functionality of MQ series Default path for installing MQ series is:- C: programfilesBMclipseSDK30 C: programfilesIBMWebsphereMQ After installation it will create a group and user. Some middleware technologies are Tibco, SAP XI. MQ series deals with two things, they are OBJECTS, SERVICES. In OBJECTS we have • QUEUES • CHANNELS • PROCESS • AUTHENTICATION • QUERY MANAGER. In SERVICES we have LISTENERS. Objects: – objects are used to handle the transactions with the help of services. QUEUE MANAGER maintains all the objects and services. QUEUE: – it is a database structure
Reason code list ================= The following is a list of reason codes, in numeric order, providing detailed information to help you understand them, including: * An explanation of the circumstances that have caused the code to be raised * The associated completion code * Suggested programmer actions in response to the code * 0 (0000) (RC0): MQRC_NONE * 900 (0384) (RC900): MQRC_APPL_FIRST * 999 (03E7) (RC999): MQRC_APPL_LAST * 2001 (07D1) (RC2001): MQRC_ALIAS_BASE_Q_TYPE_ERROR * 2002 (07D2) (RC2002): MQRC_ALREADY_CONNECTED * 2003 (07D3) (RC2003): MQRC_BACKED_OUT * 2004 (07D4) (RC2004): MQRC_BUFFER_ERROR * 2005 (07D5) (RC2005): MQRC_BUFFER_LENGTH_ERROR * 2006 (07D6) (RC2006): MQRC_CHAR_ATTR_LENGTH_ERROR * 2007 (07D7) (RC2007): MQRC_CHAR_ATTRS_ERROR * 2008 (07D8) (RC2008): MQRC_CHAR_ATTRS_TOO_SHORT * 2009 (07D9) (RC2009): MQRC_CONNECTION_BROKEN * 2010 (07DA) (RC2010): MQRC_DATA_LENGTH_ERROR * 2011 (07DB) (RC2011): MQRC_DYNAMIC_Q_NAME_ERROR * 2012 (07DC) (RC201
Creating a log file when you install or uninstall WebSphere MQ WebSphere MQ for Windows is installed using the Microsoft Installer (MSI). If you install the MQ server or client through launchpad , MQPARMS or setup.exe , then a log file is automatically generated in %temp% during installation. Alternatively you can supply parameters on the installation MSI command msiexec to generate a log file, or enable MSI logging system-wide (which generates MSI logs for all install and uninstall operations). If you uninstall through the Windows Add/Remove programs option, no log file is generated. You should either uninstall from the MSI command line and supply parameters to generate a log file, or enable MSI logging system-wide (which generates MSI logs for all install and uninstall operations). For details on how to enable MSI logging, see the following article in the WebSphere MQ product documentation: Advanced installation using msiexec For details on how to enable system-w
Seeing the below MQ error on one of the nodes. The same service is running on the other broker nodes fine.
Any idea/suggestions.
2017-07-05 15:22:00,033Z (11:22) [Delayed Response Thread 388 of 2] ERROR System.err — MQJE001: Completion Code ‘2’, Reason ‘2009’.
2017-07-05 15:22:00,034Z (11:22) [Delayed Response Thread 388 of 2] ERROR com.itko.lisa.jms.JMSNode — com.ibm.mq.MQException: MQJE001: Completion Code ‘2’, Reason ‘2009’.
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2009
at com.ibm.mq.jmqi.remote.impl.RemoteSession.getConnection(RemoteSession.java:509)
at com.ibm.mq.jmqi.remote.impl.RemoteSession.getMaximumMessageLength(RemoteSession.java:1789)
at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiPutMessageWithProps(RemoteFAP.java:8040)
at com.ibm.mq.jmqi.remote.api.RemoteFAP.MQPUT(RemoteFAP.java:7374)
at com.ibm.mq.ese.jmqi.InterceptedJmqiImpl.MQPUT(InterceptedJmqiImpl.java:487)
at com.ibm.mq.ese.jmqi.ESEJMQI.MQPUT(ESEJMQI.java:295)
at com.ibm.mq.MQDestination.internalMQPUT(MQDestination.java:1306)
… 11 more
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2009;AMQ9213: A communications error for ‘TCP’ occurred. [1=java.net.SocketException[Unrecognized Windows Sockets error: 0: recv failed],4=TCP,5=sockInStream.read]
at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.receive(RemoteTCPConnection.java:1555)
at com.ibm.mq.jmqi.remote.impl.RemoteRcvThread.receiveBuffer(RemoteRcvThread.java:794)
at com.ibm.mq.jmqi.remote.impl.RemoteRcvThread.receiveOneTSH(RemoteRcvThread.java:757)
at com.ibm.mq.jmqi.remote.impl.RemoteRcvThread.run(RemoteRcvThread.java:150)
… 1 more
Caused by: java.net.SocketException: Unrecognized Windows Sockets error: 0: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at com.ibm.mq.jmqi.remote.impl.RemoteTCPConnection.receive(RemoteTCPConnection.java:1545)
thanks
Vinay