Hmm, apparently my GeoServer 2.2.5 install had too much to drink on New Year’s Eve. I noticed today that my main app was really flaky, it would run OK for awhile and then not serve any maps, or would respond to GetFeatureInfo but not to GetMap. I looked back in the logs and I saw some JDBC connection errors; as nearly as I can figure out, they started on Jan 1. Such as:
2014-01-07 16:16:56,339 ERROR [geoserver.ows] -
java.lang.RuntimeException: Unable to obtain connection: Cannot get a connection, pool error Timeout waiting for idle object
at org.geotools.jdbc.JDBCDataStore.createConnection(JDBCDataStore.java:1661)
[…]
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:114)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.geotools.data.jdbc.datasource.AbstractManageableDataSource.getConnection(AbstractManageableDataSource.java:46)
at org.geotools.jdbc.JDBCDataStore.createConnection(JDBCDataStore.java:1647)
… 97 more
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1134)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
… 100 more
A Google search led me to this page, which cites that error and gives as the fix “Set maxActive = -1 in your tomcat/jetty configuration file.” Whew! Good thing there’s only one of THOSE, I know right where to go! And anyway this error didn’t happen during deployment, it happened to a server that’s been running well for months. I tried restarting the various services under the “just one of those things” hypothesis, even rebooting the server. But it comes back pretty quickly.
But I don’t have any connection pooling set up in Tomcat, it’s all just straight out of GeoServer’s GUI (I’m running PostGIS 2.0).
Anyone have any ideas? This is really crippling my application. Haven’t recently updated Java or GeoServer, or mod_jk, or even Apache I don’t think.
Thanks much,
rw