My Oracle Support Banner

CachedCoordinator Cache Initialization Blocks a Thread for a Very Long Time (Doc ID 1496472.1)

Last updated on NOVEMBER 05, 2016

Applies to:

Oracle Weblogic Server - Version 10.3.6 to 10.3.6
Information in this document applies to any platform.

Symptoms

In case of two phase commit, when a cached coordinator is required e.g. in order to commit a transaction involving another WLS node resource within a cluster, the initialization of the cached remote coordinator stub makes threads always wait for the whole timeout value (20s+). This sometimes causes entire business transactions to roll-back because of transaction time-out.
  
The time lost in processing is 20s+ each time, which precisely is the default value of the weblogic.JTA.ContactCoordinatorWaitSeconds parameter.

 

Thread stack for the same looks like:

 

"[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00002aaab4e96800 nid=0x204b in Object.wait() [0x0000000043b13000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000edb4e038> (a java.lang.String)
    at weblogic.transaction.internal.CoordinatorFactory.getCachedCoordinator(CoordinatorFactory.java:82)
    - locked <0x00000000edb4e038> (a java.lang.String)
    at weblogic.transaction.internal.JNDIAdvertiser.getSubCoordinator(JNDIAdvertiser.java:175)
    at weblogic.transaction.internal.ServerSCInfo.getSubCoordinator(ServerSCInfo.java:1188)
    at weblogic.transaction.internal.ServerSCInfo.isAccessible(ServerSCInfo.java:1083)
    at weblogic.transaction.internal.ServerTransactionImpl.assignNonLocalResourcesToOtherSCs(ServerTransactionImpl.java:2477)
    at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:2234)
    at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:307)
    at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:267)
    at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:617)
    at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:486)
    at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:388)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345)
    at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821)
    at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115)
    at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

 

Cause

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
Symptoms
Cause
Solution
References


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