0

我正在使用带有 JCA 资源适配器和 MDB 的 JBOSS EAP 6.4 的 IBM MQ v7.5。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 服务器的连接也不会被终止。它仍然是一个孤儿。它是否与此异常有关?

我在standalone.xml 的资源适配器配置中使用NoTransaction

4

3 回答 3

0

XA 错误代码 -3 是 XAER_RMERR - 这意味着资源管理器出现问题,在本例中为 MQ。

您查看过队列管理器的错误日志吗?

于 2016-08-16T10:26:04.073 回答
0

我错过了这个问题的一个重点(由于缺乏对 IBM MQ 的了解)。也就是说,我的 MQ 服务器运行在 HP NonStop Integrity Server 中。这些服务器不支持 XA 连接。因此出现这个错误。

现在,问题是如何阻止它。

我已经通过以下属性停止了 JBOSS 中的定期恢复:

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

于 2016-09-18T06:06:17.140 回答
-2

这是一个已知的问题。IBM 已发布修复包来解决此问题。请参见:

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

IBM MQ 版本 7.5.0.4 及更高版本具有此修复。

而且,是的,您的孤立连接是此问题的结果。

于 2016-08-11T12:08:06.070 回答