Stuck Threads in Sessions Replication in WLS Cluster for ADF Application (Doc ID 1380442.1)

Last updated on AUGUST 04, 2016

Applies to:

Oracle JDeveloper - Version 11.1.1.5.0 to 11.1.2.4.0 [Release Oracle11g]
Oracle WebLogic Server - Version 10.3.4 to 10.3.5
Information in this document applies to any platform.
This issue also affects SOA worklistapp, developed in ADF 11.1.1.5.0
***Checked for relevance on 01-Aug-2013***

Symptoms

You have developed an ADF application that is deployed in Managed Servers in a WLS Cluster 10.3.5. Intermittently, your cluster hangs because of stuck threads.

You could take some thread dumps that showed the following circular (deadlocked) lock chains

...
Chain 2:
"[STUCK] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" id=80 idx=0x12c tid=27219 waiting for oracle/jbo/JboSyncLock@0xe15f31f8 held by:
"[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" id=35 idx=0x8c tid=27117 waiting for java/util/Hashtable@0xb658b398 held by:
"[STUCK] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" id=80 idx=0x12c tid=27219
...


for the following 2 threads:

Thread 1

...
"[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" id=35 idx=0x8c tid=27117 prio=1 alive, blocked, native_blocked, daemon
  -- Blocked trying to get lock: java/util/Hashtable@0xb658b398[thin lock]
  at jrockit/vm/Threads.sleep(I)V(Native Method)
  at jrockit/vm/Locks.waitForThinRelease(Locks.java:955)[optimized]
  at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1083)[optimized]
  at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1005)[optimized]
  at java/util/Hashtable.get(Hashtable.java:340)[optimized]
  at weblogic/servlet/internal/session/ReplicatedSessionData.getAttribute(ReplicatedSessionData.java:722)
  at weblogic/servlet/internal/session/SessionData.isDebuggingSession(SessionData.java:1465)
  at weblogic/servlet/internal/ServletRequestImpl.checkAndSetDebugSessionFlag(ServletRequestImpl.java:1342)
  at weblogic/servlet/internal/ServletRequestImpl.getSession(ServletRequestImpl.java:1294)
  at javax/servlet/http/HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:227)
  at oracle/adf/share/http/HttpSessionScopeAdapter.getSession(HttpSessionScopeAdapter.java:332)
  at oracle/adf/share/http/HttpSessionScopeAdapter.get(HttpSessionScopeAdapter.java:436)
  at oracle/jbo/mom/DefinitionManager.getSessionDefContainer(DefinitionManager.java:1497)
  at oracle/jbo/mom/DefinitionManager.findLoadedSessionObject(DefinitionManager.java:2526)
  at oracle/jbo/mom/PersistableDefObject.getSessionStruct(PersistableDefObject.java:277)
  at oracle/jbo/mom/PersistableDefObject.getExtendedDefObjectsInternal(PersistableDefObject.java:319)
  at oracle/jbo/server/QueryCollection.addUnpostedRowsFromECache(QueryCollection.java:3241)
  at oracle/jbo/server/QueryCollection.findUnpostedRows(QueryCollection.java:3342)
  at oracle/jbo/server/QueryCollection.findUnpostedRows(QueryCollection.java:3259)
  at oracle/jbo/server/QueryCollection.prepForQuery(QueryCollection.java:800)
  at oracle/jbo/server/QueryCollection.executeQuery(QueryCollection.java:893)
  at oracle/jbo/server/ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:6968)
  ^-- Holding lock: oracle/jbo/JboSyncLock@0xe15f31f8[recursive]



Thread 2

...
"[STUCK] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" id=80 idx=0x12c tid=27219 prio=1 alive, blocked, native_blocked, daemon
  -- Blocked trying to get lock: oracle/jbo/JboSyncLock@0xe15f31f8[thin lock]
  at jrockit/vm/Threads.sleep(I)V(Native Method)
  at jrockit/vm/Locks.waitForThinRelease(Locks.java:955)[optimized]
  at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1083)[optimized]
  at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1005)[optimized]
  at jrockit/vm/Locks.monitorEnter(Locks.java:2179)[optimized]
  at oracle/jbo/server/ApplicationModuleImpl.passivateStateInternal(ApplicationModuleImpl.java:5869)
  at oracle/jbo/server/ApplicationModuleImpl.passivateState(ApplicationModuleImpl.java:5835)
  at oracle/adf/model/bc4j/DCJboDataControl.createSnapshot(DCJboDataControl.java:3143)
  at oracle/adf/model/dcframe/DataControlFrameImpl.createSnapshot(DataControlFrameImpl.java:879)
  ^-- Holding lock: java/util/Collections$SynchronizedMap@0xe5fce898[thin lock]
  ...
  ^-- Holding lock: java/util/Hashtable@0xb658b398[thin lock]
  at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[optimized]
  at java/lang/reflect/Method.invoke(Method.java:597)[inlined]
  at java/io/ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)[inlined]
  at java/io/ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)[optimized]
  ...
  at weblogic/cluster/replication/SecureReplicationInvocationHandler$ReplicationServicesInvocationAction.run(SecureReplicationInvocationHandler.java:194)    
...

Cause

Sign In with your My Oracle Support account

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

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms