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 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

3 ответа

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

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

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

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

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

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

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

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

IBM MQ версии 7.5.0.4 и новее имеют это исправление.

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

Другие вопросы по тегам