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.

Reply via email to