Does this happen with v1.1 of pool/dbcp ?
-- Dirk
Neil Aggarwal wrote:
Dirk:
If you look at my call to PoolableConnectionFactory: PoolableConnectionFactory(connectionFactory,connectionPool, null,"select * from JDO_TABLE limit 1",false,true);
I have a validation query and the testOnBorrow is true by default.
Why would this not work?
I will try adding the MySQL autoReconnect parameter.
Thanks, Neil
--
Neil Aggarwal, JAMM Consulting, (972)612-6056, www.JAMMConsulting.com
FREE! Valuable info on how your business can reduce operating costs by 17% or more in 6 months or less! => http://newsletter.JAMMConsulting.com
-----Original Message-----
From: Dirk Verbeeck [mailto:[EMAIL PROTECTED] Sent: Monday, October 20, 2003 12:38 PM
To: Jakarta Commons Users List
Subject: Re: PoolableConnectionFactory does not notice when a connection closes
This is a common problem, and DBCP has multiple solutions.
See http://jakarta.apache.org/commons/dbcp/configuration.html for details.
Solutions:
1) test the connection
(testOnBorrow & validationQuery)
2) let DBCP close the idle connection before the database does it
(timeBetweenEvictionRunsMillis & minEvictableIdleTimeMillis)
3) test in background thread
(timeBetweenEvictionRunsMillis & testWhileIdle & validationQuery)
There is also a MySQL solution, add autoReconnect=true to the database url:
jdbc:mysql://localhost:3306/YourDatabaseName?autoReconnect=true
Cheers Dirk
Neil Aggarwal wrote:
Hello:
I used the following code to initialize a DBCP pool to my MySQL database: String connectURI = "jdbc:"+dbType+"://"+dbHostName+":"+port+"/"+dbName; ObjectPool connectionPool = new GenericObjectPool(null); Class.forName(driverClassName); ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectURI,dbUser,dbPass); PoolableConnectionFactory poolableConnectionFactory = new
PoolableConnectionFactory(connectionFactory,connectionPool,nul l,"select
* from JDO_TABLE limit 1",false,true);
PoolingDataSource dataSource = new
PoolingDataSource(connectionPool);
pmf = new com.triactive.jdo.PersistenceManagerFactoryImpl();
((PersistenceManagerFactoryImpl)pmf).setAutoCreateTables(true);
pmf.setConnectionDriverName(driverClassName); pmf.setConnectionFactory(dataSource);
My app works fine when I initially run it, but if I leave
it alone for a
day, I get this error:
java.sql.SQLException: No operations allowed after connection closed at com.mysql.jdbc.Connection.checkClosed(Connection.java:2497) at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:559) at
org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(Del egatingCon
nection.java:237) at
com.triactive.jdo.store.DatabaseAdapter.getConnection(Database Adapter.ja
va:727)
Does anyone have any way to fix this?
Thanks, Neil.
--
Neil Aggarwal, JAMM Consulting, (972)612-6056,
www.JAMMConsulting.com
FREE! Valuable info on how your business can reduce operating costs by
17% or more in 6 months or less! =>
http://newsletter.JAMMConsulting.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
