My Oracle Support Banner

Performance Issue: WebCenter Sites Unresponsive Due to High Number Of Application Server Threads Blocking on DataBase Driver Connection threads (Doc ID 1475933.1)

Last updated on JUNE 01, 2018

Applies to:

Oracle WebCenter Sites - Version 6.3.0 and later
Information in this document applies to any platform.

Symptoms

Threads wait indefinitely trying to obtain database connection, causing appserver to stop responding.

High number of threads on application server are blocking on database driver methods, and WebCenter Sites becomes unstable.
- Quantity of threads in application server keeps going up and never down again until a restart of application server
- Issue occurs on all cluster members. Sometimes on one server, sometimes on more than one server.

Thread dumps during time of slow performance may show many threads in some of the following states:

 Example 1:

  java.lang.Thread.State: BLOCKED (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <0x0000000600322bd0> (a org.apache.commons.dbcp.AbandonedObjectPool)
      at java.lang.Object.wait(Object.java:485)
      at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:810)
      - locked <0x0000000600322bd0> (a org.apache.commons.dbcp.AbandonedObjectPool)
      at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:74)
      at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
      at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
      at com.fatwire.cs.core.db.DataSourceBackedPool.acquire(y:1266)
         .
         .
         .

Example 2:

 java.lang.Thread.State: BLOCKED (on object monitor)
      at org.apache.commons.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:916)
      - waiting to lock <0x0000000600322bd0> (a org.apache.commons.dbcp.AbandonedObjectPool)
      at org.apache.commons.dbcp.AbandonedObjectPool.returnObject(AbandonedObjectPool.java:100)
      at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:80)
      - locked <some lock> (a org.apache.commons.dbcp.PoolableConnection)
      at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:180)
      at com.fatwire.cs.core.db.DataSourceBackedPool.release(y:1127)
         .
         .
         .

Example 3:

java.lang.Thread.State: BLOCKED (on object monitor)
      at org.apache.commons.pool.impl.GenericObjectPool.getNumIdle(GenericObjectPool.java:911)
      - waiting to lock <0x0000000600322bd0> (a org.apache.commons.dbcp.AbandonedObjectPool)
      at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:68)
      at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
      at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
      at com.fatwire.cs.core.db.DataSourceBackedPool.acquire(y:1266)
         .
         .
         .

 
Example 4:

The following is an example of a blocked WebCenter Sites threads and the thread that is blocking it:

Thread that is blocked:

http-8080-4" daemon prio=10 tid=0x000000005ac8a000 nid=0x4102 waiting for monitor entry [0x0000000048898000]
      java.lang.Thread.State: BLOCKED (on object monitor)
      at com.fatwire.search.util.AssetQueueIndexSourceUtil.processAll(y:2190)
      - waiting to lock <0x000000063ae89cc0> (a java.lang.Class for com.fatwire.search.util.AssetQueueIndexSourceUtil)
      at org.apache.jsp.jsp.cs_005fdeployed.OpenMarket.Xcelerate.Search.Event_jsp._jspService(Event_jsp.java:105)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      .
      .
      .
 

Thread that is blocking other threads:

"Thread-1234"   daemon prio=10 tid=0x000000005bf64000 nid=0x529d in Object.wait() [0x0000000048192000]
      java.lang.Thread.State: WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <0x0000000643ea1db0> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool$Latch)
      at java.lang.Object.wait(Object.java:485)
      at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1104)
      - locked <0x0000000643ea1db0> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool$Latch)
      at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
      at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
      at com.fatwire.cs.core.db.DataSourceBackedPool.acquire(y:1266)
      at COM.FutureTense.Servlet.B.B(y:2397)
      at COM.FutureTense.Servlet.B.A(y:1905)
      at COM.FutureTense.CatalogManager.F.A(y:5265)
      at COM.FutureTense.Common.J.SQL(y:3463)
      at com.fatwire.queue.PersistentAssetQueueRegistry.getQueues(y:2503)
      at com.fatwire.search.util.AssetQueueIndexSourceUtil._processAll(y:3579)
      - locked <0x000000063ae89cc0> (a java.lang.Class for com.fatwire.search.util.AssetQueueIndexSourceUtil)
      at com.fatwire.search.util.AssetQueueIndexSourceUtil.access$000(y:2373)
      at com.fatwire.search.util.AssetQueueIndexSourceUtil$indexingRunnable.run(y:3252)
      at java.lang.Thread.run(Thread.java:662)
  


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


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