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 of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
