Thursday, March 11, 2021

Application hangs shortly after application restart on Tomcat

 https://community.pega.com/support/support-articles/application-stops-working-shortly-after-jvm-starts


Stuck thread trace looks similar to :

prio=5 os_prio=0 tid=0x00000000241f6000 nid=0x4dc waiting on condition [0x000000005173d000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000006c336f458> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(Unknown Source)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
    at org.apache.tomcat.dbcp.pool2.impl.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:590)
    at org.apache.tomcat.dbcp.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:424)
    at org.apache.tomcat.dbcp.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:345)
    at org.apache.tomcat.dbcp.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:134)
    at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563)
    at


Root Cause

Apache Tomcat connection pool was used.


Use Tomcat JDBC connection instead of Apache Tomcat:
 

      <Resource name="applicationName"    

                    auth="Container"

                    type="javax.sql.DataSource"

                    factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"

                    maxActive="100"

                    maxIdle="30"

                    maxWait="10000"

                    driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"

No comments:

Post a Comment