Troubleshooting: "ConnectionWaitTimeoutException" with JDBC datasource (WebSphere)
Symptom
The WebSphere application server becomes unresponsive and the following error appears in the log file:
27/06/06 10:25:41:506 GMT] 111e86f SystemOut O 10:25:41,503 [sage Tracking
Daemon] ( engine.database.Opener) ERROR - There was a problem opening a
database instance (handle: SYSTEM-CACHEDCONCLUSION PROPERTY!PXSNAPSHOTTYPE!4):
Database-General Problem encountered when getting connection for database
PegaRULES 0 Connection not available, Timed out waiting for
180006
(BD914C390476DA38C9B1CDBBD02C5BB7D:(Usage Daemon))
com.pega.pegarules.pub.database.ConnectionException: Database-General Problem
encountered when getting connection for database PegaRULES 0
Connection not available, Timed out waiting for 180006
at com.pega.pegarules.engine.database.ExceptionInformation.createExcepti
onDueToDBFailure(ExceptionInformation.java:138)
at com.pega.pegarules.engine.database.ConnectionManager.getConnection(Co
nnectionManager.java:985)
at com.pega.pegarules.engine.database.ConnectionManager.getConnection(Co
nnectionManager.java:709)
at com.pega.pegarules.engine.database.ThreadConnectionStore.getConnectio
n(ThreadConnectionStore.java:234)
. . . 24 more . . .
Caused by: com.ibm.websphere.ce.cm.ConnectionWaitTimeoutException: Connection no
t available, Timed out waiting for 180006
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSo
urce.java:254)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSo
urce.java:215)
at com.pega.pegarules.engine.database.DataSourceManager.getConnection(Da
taSourceManager.java:226)
at com.pega.pegarules.engine.database.DatabaseConnection.activate(Databa
seConnection.java:904)
at com.pega.pegarules.engine.database.ConnectionManager.getConnection(Co
nnectionManager.java:923)
... 22 more
Caused by SQL Problems.
Problem #1, SQLState null, Error code 0:
com.ibm.websphere.ce.cm.ConnectionWaitTimeoutException: Connection not available
, Timed out waiting for 180006
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSo
urce.java:254)
. . . 26 more . . .
This issue only applies to a Process Commander system which has been configured to use a WebSphere JDBC Data Source.
When the maximum number of connections in the WebSphere connection pool has been reached, no new connections are created. If Process Commander attempts to service a request at this time, the requestor has to wait until a connection becomes free, i.e. a connection is returned to the pool. The WebSphere connection pool manager throws a ConnectionWaitTimeoutException
if the request for a connection times out before a free connection becomes available.
Solution
Workaround
Using the WebSphere Administrative Console, review your connection pool settings:
WebSphere 5.x
WebSphere 6.x
Check the value of the MaxConnections property. By default, this property is set to 10. In a Process Commander system with a large number of concurrent users, the default setting for the MaxConnections property may be too low. Try increasing the MaxConnections property to a higher value.
If the problem persists after tuning the WebSphere connection pool, it is possible that you are experiencing a connection leak. For information on the WebSphere connection leak trace feature, see the IBM Tech Note at http://www-1.ibm.com/support/docview.wss?fdoc=aimwas&rs=180&uid=swg21203225