My Oracle Support Banner

JTA Deadlock Against 'weblogic.transaction.TxTimer' Thread (Doc ID 1516607.1)

Last updated on MARCH 16, 2021

Applies to:

Oracle WebLogic Server - Version 10.3.4 to
Information in this document applies to any platform.


The problem is a deadlock that can be detected within WebLogic Server 10.3.4. Taking a Java thread dump of  Weblogic  Server, the following message can be seen : 

Deadlock Found !!!
 Thread: "ExecuteThread: '0' for queue: 'default'" is blocked for Lock [ (a weblogic.transaction.internal.ClientTransactionManagerImpl)], held by Thread: "weblogic.transaction.TxTimer: '1'" Thread: "weblogic.transaction.TxTimer: '1'" is blocked for Lock [ (a weblogic.transaction.internal.ClientTransactionImpl)], held by Thread: "ExecuteThread: '0' for queue: 'default'"

This deadlock is between the Weblogic Server  "weblogic.transaction.TxTimer" thread and "ExecuteThread" thread which is processing JTA transaction.
 Here are the related Java Thread Stacks of those threads :

"ExecuteThread: '0' for queue: 'default'" waiting for lock : (a weblogic.transaction.internal.ClientTransactionManagerImpl) held by Thread: "weblogic.transaction.TxTimer: '1'"
"ExecuteThread: '0' for queue: 'default'" daemon prio=3 tid= nid=  waiting for monitor entry [..]
  java.lang.Thread.State: BLOCKED (on object monitor)
at weblogic.transaction.internal.TransactionManagerImpl.remove(
- waiting to lock (a weblogic.transaction.internal.ClientTransactionManagerImpl)
at weblogic.transaction.internal.ClientTransactionImpl.setRolledBack(
- locked (a weblogic.transaction.internal.ClientTransactionImpl)
at weblogic.transaction.internal.TransactionImpl.localRollback(
at weblogic.transaction.internal.TransactionImpl.globalRollback(
at weblogic.transaction.internal.TransactionImpl$
at weblogic.kernel.ExecuteThread.execute(
"weblogic.transaction.TxTimer: '1'" waiting for lock : (a weblogic.transaction.internal.ClientTransactionImpl) held by Thread: "ExecuteThread: '0' for queue: 'default'"
"weblogic.transaction.TxTimer: '1'" daemon prio=3 tid= nid= waiting for monitor entry [..]
  java.lang.Thread.State: BLOCKED (on object monitor)
at weblogic.transaction.internal.TransactionImpl.getProperty(
- waiting to lock (a weblogic.transaction.internal.ClientTransactionImpl)
at weblogic.transaction.internal.TransactionImpl.isImportedTransaction(
at weblogic.transaction.internal.TransactionManagerImpl.remove(
- locked (a weblogic.transaction.internal.ClientTransactionManagerImpl)
at weblogic.transaction.internal.TransactionImpl.wakeUp(
at weblogic.transaction.internal.TransactionManagerImpl.processTimedOutTransactions(
at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(


To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.