glassfish’s http thread Stuck on state:RUNNABLE

เจอปัญหา http thread ของ glassfish ติด state:RUNNABLE นานมาก ทำไมนะ ยังแก้ไม่ได้เลย

** Update ล่าสุด พอจะเข้าใจแล้วว่าทำไม ถึงติด State นี้นาน เป็นเพราะช่วงที่ connectionPool สร้าง connection ใหม่กับ oracle นั้น กินเวลานาน กว่า 12 วินาทีในบางช่วง ทำให้ connectionPool ค้างเติ่งไปเลย

** วิธีแก้ไข 1. ลดการ connection ใหม่ เกิดจากมี service ที่ run monitor transaction โดยการ connect ทุกๆครั้ง เป็น java service ก็สร้าง connectionPool ให้มันซะ ตัวนี้แหละตัวหลักเลย
– แสดงให้เห็นว่า การ connection db นั้นกินเวลามากและบางทีทำให้ connection listener ของ oracle ข้าไปเลยทีเดียว

Name: httpSSLWorkerThread-48282-7
State: RUNNABLE
Total blocked: 87  Total waited: 22

Stack trace:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
oracle.net.ns.Packet.receive(Unknown Source)
oracle.net.ns.NSProtocol.connect(Unknown Source)
oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:844)
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:268)
oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:414)
oracle.jdbc.driver.T4CConnection.(T4CConnection.java:165)
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:297)
oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:221)
oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:157)
oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:94)
oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:75)
com.sun.gjc.spi.CPManagedConnectionFactory.createManagedConnection(CPManagedConnectionFactory.java:124)
com.sun.enterprise.resource.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.java:68)
com.sun.enterprise.resource.AbstractResourcePool.createResource(AbstractResourcePool.java:940)
com.sun.enterprise.resource.AbstractResourcePool.createSingleResource(AbstractResourcePool.java:916)
com.sun.enterprise.resource.AbstractResourcePool.createResourceAndAddToPool(AbstractResourcePool.java:1886)
com.sun.enterprise.resource.AbstractResourcePool.createResources(AbstractResourcePool.java:982)
   - locked com.sun.enterprise.resource.SJSASResourcePool@14c94a7
com.sun.enterprise.resource.AbstractResourcePool.resizePoolAndGetNewResource(AbstractResourcePool.java:837)
com.sun.enterprise.resource.AbstractResourcePool.getResourceFromPool(AbstractResourcePool.java:805)
   - locked com.sun.enterprise.resource.SJSASResourcePool@14c94a7
com.sun.enterprise.resource.AbstractResourcePool.getUnenlistedResource(AbstractResourcePool.java:670)
com.sun.enterprise.resource.AbstractResourcePool.internalGetResource(AbstractResourcePool.java:612)
com.sun.enterprise.resource.AbstractResourcePool.getResource(AbstractResourcePool.java:458)
com.sun.enterprise.resource.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:248)
com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.java:176)
com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:327)
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:189)
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:158)
com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:108)
.....

About WK

Kajook is a Senior Software Engineer. Job is Design & Develop in Java EE environment on Glassfish. I'm Interested in Agile software development ,iOS and Android.
This entry was posted in ploblem and tagged . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s