IllegalStateException: Trying to change transaction TransactionImple < ... ActionStatus.RUNNING > in enlist! in EAP

Solution Verified - Updated -

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.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.