connection pool returns :"closed" connection? ---------------------------------------------
Key: IBATIS-485 URL: https://issues.apache.org/jira/browse/IBATIS-485 Project: iBatis for Java Issue Type: Bug Affects Versions: 2.3.0 Environment: Java 1.5, Java 1.6, Ubuntu linux, mysql 5.0 Reporter: vasu nori is ibatis giving me a "closed" connection (i.e., connecton handle which used to have connection open to database, but no longer) in the following scenario 1. mapping xml file looks like this <transactionManager type="JDBC" commitRequired="false"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/> <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/feedserver"/> <property name="JDBC.Username" value="root"/> <property name="JDBC.Password" value="admin"/> <property name="Pool.MaximumActiveConnections" value="10"/> <property name="Pool.MaximumIdleConnections" value="5"/> <property name="Pool.MaximumCheckoutTime" value="120000"/> <property name="Pool.TimeToWait" value="10000"/> </dataSource> </transactionManager> 2. Java code SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); <store sqlMap in a hashtable to be used for all queries during the life of the server> .... .... sqlMap.queryForObject(queryid_in_mapping_file, params); 3. if the server is left running overnight, the next morning here is the exception in the log file when the above statement is executed. seems like sqlMap gets a stale connection from the pool. 79621040 [btpool0-1] DEBUG com.ibatis.common.jdbc.SimpleDataSource - Checked out connection 19658898 from pool. 79621079 [btpool0-1] DEBUG java.sql.Connection - {conn-100030} Connection 79621079 [btpool0-1] DEBUG java.sql.Connection - {conn-100030} Preparing Statement: SELECT * from emp where id = ?; 79621084 [btpool0-1] ERROR java.sql.Connection - Error calling Connection.prepareStatement: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error: ** BEGIN NESTED EXCEPTION ** com.mysql.jdbc.CommunicationsException MESSAGE: Communications link failure Last packet sent to the server was 38 ms ago. STACKTRACE: com.mysql.jdbc.CommunicationsException: Communications link failure Last packet sent to the server was 38 ms ago. at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1070) at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3134) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1818) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2537) at com.mysql.jdbc.ConnectionImpl.rollbackNoChecks(ConnectionImpl.java:4668) at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4553) at com.ibatis.common.jdbc.SimpleDataSource.popConnection(SimpleDataSource.java:629) at com.ibatis.common.jdbc.SimpleDataSource.getConnection(SimpleDataSource.java:222) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTransaction.java:48) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:89) at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:615) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:589) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:122) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:99) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.