Транзакция в jboss eap JmsComponent верблюжий контекст - PullRequest
0 голосов
/ 28 октября 2019

У меня проблемы с настройкой транзакций с использованием JtaTransactionManager. Я перепробовал все, что мог найти в интернете. Я хочу сделать откат, если есть какое-либо Исключение в маршруте или в маршрутах, идущих от этого маршрута.

Вот мои компоненты контекста верблюда:

<bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName" value="java:/JmsMQXA" />
            <property name="lookupOnStartup" value="false" />
            <property name="cache" value="true" />
            <property name="proxyInterface" value="javax.jms.ConnectionFactory" />
 </bean>
 <bean id="jmsTransactionManager"           class="org.springframework.transaction.jta.JtaTransactionManager">
            <property name="transactionManagerName" value="java:/TransactionManager" />
  </bean> 
 <bean id="mq" class="org.apache.camel.component.jms.JmsComponent">
            <property name="connectionFactory" ref="jmsConnectionFactory" />
           <property name="transacted" value="true"/>
           <property name="cacheLevelName" value="CACHE_NONE" />
           <property name="transactionManager" ref="jmsTransactionManager" />
   </bean>
<bean id="PROPAGATION_REQUIRED" class="org.apache.camel.spring.spi.SpringTransactionPolicy">
    <property name="transactionManager" ref="jmsTransactionManager" />
    <property name="propagationBehaviorName" value="PROPAGATION_REQUIRES_NEW" />
</bean>

Мой маршрут:

<route>  
        <from uri="mq:TEST.QUEUE" /> 
                 <transacted ref="PROPAGATION_REQUIRED"/>

МОЙ автономный

  <subsystem xmlns="urn:jboss:domain:resource-adapters:5.0">
            <resource-adapters>
                <resource-adapter id="wmq.jmsra.rar">
                    <archive>
                        wmq.jmsra.rar
                    </archive>
                    <transaction-support>XATransaction</transaction-support>...

И проблемы, которые я получаю:

WARN  [org.apache.camel.spring.spi.TransactionErrorHandler] (Camel (camel-1) thread #1 - JmsConsumer[TEST.QUEUE]) Transaction rollback (0x68e69794) redelivered(true) for (MessageId: ID:414d51205141424749434c4441202020ab7e795dfb630223 on ExchangeId: ID-M0AB1I4O-1572259802058-0-7) caught
INFO  [org.jboss.as.connector.deployers.RaXmlDeployer] (Camel (camel-1) thread #1 - JmsConsumer[TEST.QUEUE]) wmq.jmsra.rar: MQJCA4026:Transaction backed out with reason: 'The method 'xa_end' has failed with errorCode '100'.'.
WARN  [com.arjuna.ats.jta] (Camel (camel-1) thread #1 - JmsConsumer[TEST.QUEUE]) ARJUNA016045: attempted rollback of < formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0ae317d6:-21705625:5db6b586:1f48, node_name=1, branch_uid=0:ffff0ae317d6:-21705625:5db6b586:1f4c, subordinatenodename=null, eis_name=java:/JmsMQXA > (XAResourceWrapperImpl@258df727[xaResource=com.ibm.mq.connector.xa.XARWrapper@4e359608 pad=false overrideRmValue=null productName=WebSphere MQ productVersion=%I% %E% %U% jndiName=java:/JmsMQXA]) failed with exception code XAException.XAER_NOTA: javax.transaction.xa.XAException: The method 'xa_rollback' has failed with errorCode '-4'.
    at com.ibm.mq.jmqi.JmqiXAResource.rollback(JmqiXAResource.java:874)
    at com.ibm.mq.connector.xa.XARWrapper.rollback(XARWrapper.java:598)
    at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.rollback(XAResourceWrapperImpl.java:196)
    at com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord.topLevelAbort(XAResourceRecord.java:362)
    at com.arjuna.ats.arjuna.coordinator.BasicAction.doAbort(BasicAction.java:3023)
    at com.arjuna.ats.arjuna.coordinator.BasicAction.doAbort(BasicAction.java:3002)
    at com.arjuna.ats.arjuna.coordinator.BasicAction.Abort(BasicAction.java:1674)
    at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.cancel(TwoPhaseCoordinator.java:124)
    at com.arjuna.ats.arjuna.AtomicAction.abort(AtomicAction.java:186)
    at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.rollbackAndDisassociate(TransactionImple.java:1371)
    at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.rollback(BaseTransaction.java:143)
    at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.rollback(BaseTransactionManagerDelegate.java:134)
    at org.wildfly.transaction.client.LocalTransaction.rollbackAndDissociate(LocalTransaction.java:104)
    at org.wildfly.transaction.client.ContextTransactionManager.rollback(ContextTransactionManager.java:83)
    at org.wildfly.transaction.client.LocalUserTransaction.rollback(LocalUserTransaction.java:58)
    at org.springframework.transaction.jta.JtaTransactionManager.doRollback(JtaTransactionManager.java:1048)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:857)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:717)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:249)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1168)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1160)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1057)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

1 Ответ

0 голосов
/ 29 октября 2019

Возникла более старая проблема с WebSphere MQ, теперь я могу только быстро найти эту ссылку https://developer.jboss.org/thread/250976 Возможно, она дает вам подсказку (и в любом случае в журналах трассировки на сервере MQ может отображаться дополнительная информация)

...