0

JCA リソース アダプターと MDB を備えた JBOSS EAP 6.4 で IBM MQ v7.5 を使用しています。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 サーバーへの接続は切断されませんでした。孤児のままです。それは何らかの形でこの例外に関連していますか?

standalone.xml のリソース アダプター構成で NoTransaction を使用しています

4

3 に答える 3

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 に答える
0

XA エラー コード -3 は XAER_RMERR です。これは、リソース マネージャー (この場合は MQ) で問題が発生したことを意味します。

キュー・マネージャーのエラー・ログを見ましたか?

于 2016-08-16T10:26:04.073 に答える