[ https://issues.apache.org/jira/browse/IBATIS-485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Clinton Begin closed IBATIS-485. -------------------------------- Resolution: Won't Fix Use a PingQuery to ensure connections are valid, or configure your server to have unlimited connection timeouts. > 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.