Unable to get a SQL connection from the pool

, ,

What to do if you are seeing this error on a SQL node in an IPA work unit:

java.sql.SQLException: Unable to get a SQL connection from the pool at com.lawson.bpm.processflow.pooling.SQLConnectionPool.borrow(SQLConnectionPool.java:79) at com.lawson.bpm.processflow.pooling.SQLConnectionPool.getPooledConnection(SQLConnectionPool.java:58) at com.lawson.bpm.processflow.workFlow.flowGraph.FgSQL.executeQuery(FgSQL.java:1107) at com.lawson.bpm.processflow.workFlow.flowGraph.FgaSQLQuery.startActivity(FgaSQLQuery.java:149) at com.lawson.bpm.processflow.workFlow.flowGraph.FgActivity.execute(FgActivity.java:947) at com.lawson.bpm.processflow.workFlow.flowGraph.FgProcess.run(FgProcess.java:2201) at com.lawson.bpm.eprocessserver.grid.ExecuteFlowImpl.executeFlow(ExecuteFlowImpl.java:427) at com.lawson.bpm.eprocessserver.grid.ExecuteFlowImpl.restartFlowForUA(ExecuteFlowImpl.java:181) at com.lawson.bpm.eprocessserver.ProcessFlowEngine.execute(ProcessFlowEngine.java:193) at com.lawson.bpm.eprocessserver.ProcessFlowEngine.reStartProcessAt(ProcessFlowEngine.java:116) at com.lawson.bpm.eprocessserver.KBConnectionDispatch.dispatch(KBConnectionDispatch.java:48) at com.lawson.bpm.eprocessserver.KBConnectionDispatch.run(KBConnectionDispatch.java:37) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) Caused by: java.util.NoSuchElementException: Timeout waiting for idle object at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(Unknown Source) at org.apache.commons.dbcp.datasources.SharedPoolDataSource.getPooledConnectionAndInfo(SharedPoolDataSource.java:181) at org.apache.commons.dbcp.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:701) at com.lawson.bpm.processflow.pooling.SQLConnectionPool.borrow(SQLConnectionPool.java:68) … 14 more

 

To resolve this error, try setting your Maximum Core Pool Size, which determines how many work units can concurrently execute SQL nodes.  Best practices are to set this value to the number of work units that are allowed to concurrently run on your system.

To add this parameter, search for “Configuration Parameter” in Process Server Administration in the GEN data area.  Create the parameter if it doesn’t already exist.