IllegalStateException: Trying to change transaction TransactionImple < ... ActionStatus.RUNNING > in enlist! in EAP
Issue
- Spring は、web アプリケーションのコンテキストでトランザクションを管理しています (たとえば、
@Transactionalクラスとメソッドのアノテーションで区分されたトランザクション)。 REQUIREDとマークされたメソッドがREQUIRES_NEWとマークされたメソッドを呼び出します。- 新しいトランザクションを開始すると、エンリストメントの失敗警告がログに記録されます。
11:44:36,301 WARN [org.jboss.tm.usertx.UserTransactionRegistry] (http-/127.0.0.1:8080-1) Error notifying listener org.jboss.jca.core.tx.jbossts.UserTransactionListenerImpl@4eb1250b of userTransactionStarted: java.lang.IllegalStateException:Trying to change transaction TransactionImple < ac, BasicAction:0:ffffc0a80106:-b290450:54f5f2e1:17 status:ActionStatus.RUNNING > in enlist!
at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.enlist(TxConnectionListener.java:304)
at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.transactionStarted(TxConnectionManagerImpl.java:383)
at org.jboss.jca.core.connectionmanager.ccm.CachedConnectionManagerImpl.userTransactionStarted(CachedConnectionManagerImpl.java:211)
at org.jboss.jca.core.tx.jbossts.UserTransactionListenerImpl.userTransactionStarted(UserTransactionListenerImpl.java:52)
at org.jboss.tm.usertx.UserTransactionRegistry.userTransactionStarted(UserTransactionRegistry.java:119)
at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.begin(ServerVMClientUserTransaction.java:151)
at org.springframework.transaction.jta.JtaTransactionManager.doJtaBegin(JtaTransactionManager.java:866)
...
- この問題は、(たとえば TransactionManager.suspend() API を使用して) 実行中のトランザクションを一時停止した後、UserTransaction.begin() API をアプリケーションコードから直接使用した環境で再現できる場合があります。
Environment
- Red Hat JBoss Enterprise Application Platform (EAP) 6
- Spring
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.