IBM MQ v7.5 с JBOSS EAP 6.4 с адаптером ресурсов JCA и MDB выдает "xa_open" с ошибкой с кодом ошибки "-3"

Я использую IBM MQ v7.5 с JBOSS EAP 6.4 с адаптером ресурсов JCA и MDB. Сервер MQ работает в HP NonStop Integrity Server v5.3.1.12

Приложение работает корректно. Но я вижу следующее исключение в своем журнале

[com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016027: Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMFAIL: javax.transaction.xa.XAException
        at com.ibm.mq.connector.RecoveryXAResource.checkExceptions(RecoveryXAResource.java:147)
        at com.ibm.mq.connector.RecoveryXAResource.recover(RecoveryXAResource.java:514)
        at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.recover(XAResourceWrapperImpl.java:185)
        at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoveryFirstPass(XARecoveryModule.java:541) [jbossjts-jacorb-4.17.29.Final-redhat-1.jar:4.17.29.Final-redhat-1]
        at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:181) [jbossjts-jacorb-4.17.29.Final-redhat-1.jar:4.17.29.Final-redhat-1]
        at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:747) [jbossjts-jacorb-4.17.29.Final-redhat-1.jar:4.17.29.Final-redhat-1]
        at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:375) [jbossjts-jacorb-4.17.29.Final-redhat-1.jar:4.17.29.Final-redhat-1] Caused by: com.ibm.msg.client.wmq.v6.jms.internal.ConfigEnvironment$1: MQJMS1068: failed to obtain XAResource.
        at com.ibm.msg.client.wmq.v6.jms.internal.ConfigEnvironment.newException(ConfigEnvironment.java:379)
        at com.ibm.msg.client.wmq.v6.jms.internal.MQXAConnection.createXASession(MQXAConnection.java:155)
        at com.ibm.msg.client.jms.internal.JmsXAConnectionImpl.createXASession(JmsXAConnectionImpl.java:125)
        at com.ibm.mq.jms.MQXAConnection.createXASession(MQXAConnection.java:88)
        at com.ibm.mq.connector.RecoveryXAResource.recover(RecoveryXAResource.java:490)
        ... 5 more Caused by: javax.transaction.xa.XAException: The method 'xa_open' has failed with errorCode '-3'.
        at com.ibm.mq.jmqi.JmqiXAResource.<init>(JmqiXAResource.java:274)
        at com.ibm.mq.jmqi.JmqiXAResource.getInstance(JmqiXAResource.java:122)
        at com.ibm.mq.jmqi.JmqiEnvironment.newJmqiXAResource(JmqiEnvironment.java:1598)
        at com.ibm.msg.client.wmq.v6.base.internal.MQXAQueueManager.getXAResource(MQXAQueueManager.java:175)
        at com.ibm.msg.client.wmq.v6.jms.internal.MQXAConnection.createXASession(MQXAConnection.java:134)
        ... 8 more

Может ли кто-нибудь помочь мне понять, почему это происходит?

Кроме того, даже если я остановлю свой сервер, соединение с сервером MQ не будет прервано. Остается сиротой. Это как-то связано с этим исключением?

Я использую NoTransaction в конфигурации адаптера ресурсов в standalone.xml


person Anirban Chakraborty    schedule 11.08.2016    source источник


Ответы (3)


Код ошибки XA -3 — XAER_RMERR, что означает, что возникла проблема с диспетчером ресурсов, в данном случае MQ.

Вы смотрели журналы ошибок администратора очередей?

person Tim McCormick    schedule 16.08.2016
comment
Привет, Тим, в журналах ошибок администратора очередей были ошибки протокола. - person Anirban Chakraborty; 18.09.2016
comment
Это может быть дефект. Я бы открыл PMR с IBM, чтобы определить причину сбоя. - person Tim McCormick; 20.09.2016
comment
Я сделал это. Hp NonStop MQ Server не поддерживает подключение XA. Хотя я не открываю никаких XA-соединений, этим занимается JBOSS TS manager (arjuna). Итак, я остановил восстановление XA в JBOSS. Теперь я не получаю ошибку. Но пока не нашел первопричину. - person Anirban Chakraborty; 20.09.2016
comment
Последнее обновление — это отчет об инциденте, открытый с помощью RedHat в отношении поведения Jboss XA. - person Anirban Chakraborty; 21.09.2016

В этом вопросе я упустил важный момент (из-за незнания IBM MQ). То есть мой сервер MQ работает в HP NonStop Integrity Server. Эти серверы не поддерживают соединение XA. Отсюда эта ошибка.

Теперь вопрос в том, как это остановить.

Я остановил периодическое восстановление в JBOSS со следующими свойствами:

name="RecoveryEnvironmentBean.periodicRecoveryPeriod" value="0" name="RecoveryEnvironmentBean.recoveryBackoffPeriod" value="0"

person Anirban Chakraborty    schedule 18.09.2016
comment
При необходимости отредактируйте исходный вопрос, но не публикуйте ответы на него. - person tfv; 18.09.2016
comment
Спасибо. Отредактирует исходный вопрос. Но это ответ. Если вы можете найти лучший ответ, пожалуйста, напишите (что вы не можете). Не понижайте рейтинг, если вы не знаете ответа или контекста. @твф - person Anirban Chakraborty; 19.09.2016

Это известная проблема. IBM выпустила пакеты исправлений для решения этой проблемы. Пожалуйста, посмотри:

http://www-01.ibm.com/support/docview.wss?uid=swg1IC97579

IBM MQ версий 7.5.0.4 и более поздних содержит это исправление.

И, да, ваше потерянное соединение является результатом этой проблемы.

person Doug Grove    schedule 11.08.2016
comment
Спасибо за ваш ответ. Я видел этот пост раньше. Но я использую версию реализации: 7.5.0.6-p750-006-160226. И все же я получаю эту ошибку. В сообщении говорится, код ошибки: -5, и я получаю код ошибки: -3. Есть идеи, почему появляется эта ошибка? - person Anirban Chakraborty; 13.08.2016
comment
Не соответствует описанию ошибки APAR, поэтому не совпадает - person Tim McCormick; 16.08.2016