2016-08-11 13 views
0

Я использую IBM MQ v7.5 с JBOSS EAP 6.4 с адаптером ресурсов JCA и MDB. Сервер MQ работает в HP NonStop Integrity Server v5.3.1.12IBM MQ v7.5 с JBOSS EAP 6.4 с адаптером ресурсов JCA и метаданных MDB «xa_open» с ошибкой «-3»

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

[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

ответ

-1

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

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

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

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

+0

Спасибо за ваш ответ. Я видел этот пост раньше. Но я использую Version-Version: 7.5.0.6-p750-006-160226. И все же я получаю эту ошибку. Сообщение говорит, errorCode: -5, и я получаю код ошибки: -3. Любая идея, почему эта ошибка наступает? –

+0

Не соответствует описанию ошибки APAR, поэтому не соответствует –

0

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

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

+0

Привет, Tim, журналы ошибок менеджера очереди имели ошибку «ошибка протокола». –

+0

Это может быть дефект. Я бы открыл PMR с IBM, чтобы определить причину сбоя. –

+0

Я сделал это. Сервер Hp NonStop MQ не поддерживает XA COnnection. Хотя я не открываю какое-либо соединение XA, JBOSS TS manager (arjuna) делает это. Итак, я остановил восстановление XA в JBOSS. Теперь я не получаю ошибку. Но еще не получила первопричины. –

0

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

Теперь вопрос заключается в том, как остановить его.

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

имя = значение "RecoveryEnvironmentBean.periodicRecoveryPeriod" = "0" имя = "RecoveryEnvironmentBean.recoveryBackoffPeriod" значение = "0"

+0

При необходимости отредактируйте исходный вопрос, но не публикуйте ответы на него. – tfv

+0

Спасибо. Будет редактировать исходный вопрос. Но это ответ. Если вы можете найти лучший ответ, напишите (что вы не можете). Не понижайте рейтинг, если вы не знаете ответа или контекста. @tvf –