【发布时间】:2015-08-01 06:36:56
【问题描述】:
我有一个独立的应用程序 A,它调用部署在 jboss eap 6.2.3 中的 web 服务 B。 jboss 中的应用程序使用 mysql 数据源。此应用程序集成运行良好。
我需要将独立应用程序本身网络化为 spring rest data jpa 微服务 所以我为那个独立的应用程序 A 编写了一个 Spring Boot 包装器。它在嵌入式 tomcat 中运行并调用在 jboss 中运行的应用程序 B。 我还将一些配置逻辑从属性文件移植到嵌入式 h2 数据库中。
现在在一些地方,我看到下面显示的这个异常,由 jboss 中的应用程序 B 插入到 mysql 中。我的猜测是,之前是一个简单的事务,现在运行良好已经变成了有时会失败的两阶段提交。 如何预防?
Caused by: javax.transaction.RollbackException: ARJUNA016053: Could not commit transaction.
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1177)
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:126)
at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(CMTTxInterceptor.java:92) [jboss-as-ejb3-7.3.3.Final-redhat-SNAPSHOT.jar:7.3.3.Final-redhat-SNAPSHOT]
... 67 more
Caused by: org.infinispan.CacheException: Could not prepare.
at org.infinispan.transaction.synchronization.SynchronizationAdapter.beforeCompletion(SynchronizationAdapter.java:70) [infinispan-core-5.2.7.Final-redhat-2.jar:5.2.7.Final-redhat-2]
at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:76)
at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:273)
at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:93)
at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:162)
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1165)
... 70 more
Caused by: javax.transaction.xa.XAException
at org.infinispan.transaction.TransactionCoordinator.prepare(TransactionCoordinator.java:161) [infinispan-core-5.2.7.Final-redhat-2.jar:5.2.7.Final-redhat-2]
at org.infinispan.transaction.TransactionCoordinator.prepare(TransactionCoordinator.java:123) [infinispan-core-5.2.7.Final-redhat-2.jar:5.2.7.Final-redhat-2]
at org.infinispan.transaction.synchronization.SynchronizationAdapter.beforeCompletion(SynchronizationAdapter.java:68) [infinispan-core-5.2.7.Final-redhat-2.jar:5.2.7.Final-redhat-2]
... 75 more
【问题讨论】:
-
没有足够的信息可以发表评论。您是说异常发生在应用程序
B(不是A,您实际上正在升级)中吗?此外,异常源自 Infinispan。您是否使用它在应用程序B中进行缓存?请发布发生此错误的操作的代码和配置。另请参阅 this document 以配置 Infinispan 以正确使用事务代码。
标签: jboss spring-boot embedded-tomcat-8