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]