commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eugene Krylov (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (DBCP-293) Closed statement exception using Oracle 11g and JDK Jrockit 1.6
Date Fri, 12 Jun 2009 16:10:07 GMT

     [ https://issues.apache.org/jira/browse/DBCP-293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Eugene Krylov resolved DBCP-293.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 1.3

This appears to be working in the latest trunk version. Sorry about any inconvenience.

> Closed statement exception using Oracle 11g and JDK Jrockit 1.6
> ---------------------------------------------------------------
>
>                 Key: DBCP-293
>                 URL: https://issues.apache.org/jira/browse/DBCP-293
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.2.1
>         Environment: dbcp 1.2.1
> Oracle 11g, 
> oracle driver from weblogic 10.3 distribution  server/ext/jdbc/oracle/11g/ojdbc6.jar,

> $ java -version
> java version "1.6.0_05"
> Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
> BEA JRockit(R) (build R27.6.0-50_o-100423-1.6.0_05-20080626-2104-linux-ia32, compiled
mode)
>            Reporter: Eugene Krylov
>             Fix For: 1.3
>
>
> After upgrade to latest version of weblogic which now includes jdk 1.6 I am running into
an exception where statements appear to be closed but still reside in the statement cache.
It appears related to transaction rollback and closing of connection for which statement was
originally prepared. Exception stack is as follows:
>  java.sql.SQLException: Closed Statement
>         at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
>         at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
>         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
>         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:229)
>         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:403)
>         at oracle.jdbc.driver.OracleClosedStatement.setQueryTimeout(OracleClosedStatement.java:2438)
>         at oracle.jdbc.driver.OracleStatementWrapper.setQueryTimeout(OracleStatementWrapper.java:250)
>         at org.apache.commons.dbcp.DelegatingStatement.setQueryTimeout(DelegatingStatement.java:246)
>         at org.apache.commons.dbcp.DelegatingStatement.setQueryTimeout(DelegatingStatement.java:246)
>         at com.healthedge.j2ee.DBConnectionImpl.prepareStatement(DBConnectionImpl.java:208)
> Jocl file looks like this:
> <?xml version="1.0"?>
> <object class="org.apache.commons.dbcp.PoolableConnectionFactory" xmlns="http://apache.org/xml/xmlns/jakarta/commons/jocl">
>  
>    <!--
>       The first argument to PoolableConnectionFactory is a ConnectionFactory.
>       We'll use a DriverManagerConnectionFactory, passing in the appropriate
>       connect string for the underlying driver.
>     -->
>    <object class="org.apache.commons.dbcp.DriverManagerConnectionFactory">
>       <string value="jdbc:oracle:thin:@localhost:1521:orcl"/>
>       <string value="schema"/>
>       <string value="password"/>
>    </object>
>  
>    <!--
>       The next argument is the pool to use.  We'll use a StackObjectPool,
>       although any implementation of ObjectPool should suffice.
>  
>       Since we are running on single connection from the client anyway,
>       there is not a need to tune this to perfection.
>     -->
>    <object class="org.apache.commons.pool.impl.StackObjectPool"/>
>  
>    <!--
>       The next argument is the KeyedObjectPoolFactory to use to create pools
>       for storing PreparedStatements.  This functionality is optional, it can
>       be disabled by using the line below.
>    <object class="org.apache.commons.pool.KeyedObjectPoolFactory" null="true"/>
>     -->
>    <object class="org.apache.commons.pool.impl.GenericKeyedObjectPoolFactory">
>       <object class="org.apache.commons.pool.KeyedPoolableObjectFactory" null="true"/>
>  
>       <int value="20"/>    
>       <byte value="2"/>    
>       <long value="2000"/> 
>       <int value="200"/>   
>       <int value="300"/>   
>    </object>
>    <!--
>       The next argument is the query to use to validate that a Connection is
>       still up and running.  It should return at least one row.
>       This functionality is optional. We'll just set it to null.
>    <string null="true"/> 
>     -->
>    <string value="select 1 from age_range"/> 
>    <boolean value="false"/> <!-- The default "read only" value for Connections.
--> 
>    <boolean value="false"/> <!-- The default "auto commit" value for Connections.
--> 
>  
> </object>
> Disabling statement cache eliminates the exception. 
> This is my first time reporting an issue in this forum, so if I filed it in a wrong place
please let me know. I searched bugs, but have not found anything that would be similar to
this. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message