setTransactionIsolation can cause ava.sql.SQLException: Invalid operation: 
statement closed in some contexts with xa
--------------------------------------------------------------------------------------------------------------------

         Key: DERBY-1010
         URL: http://issues.apache.org/jira/browse/DERBY-1010
     Project: Derby
        Type: Bug
  Components: Network Client  
    Versions: 10.2.0.0, 10.1.3.0, 10.1.2.3    
    Reporter: Kathey Marsden


With xa setTransactionIsolation can cause a statement closed exception when 
calling 
setTransactionIsolation

Client tries to reuse a statement for sending SET CURRENT ISOLATION statements 
to the server.  There must be some problems with this logic where it is trying 
to use a closed statement.  Perhaps an overall better strategy would be to use 
an EXCSQLSET to send the set commands to the server and then invoke the 
embedded JDBC setTransactionIsolation call on the server as Oyvind did for 
setQueryTimeout.  Using the SET ISOLATION statements on the client has caused a 
variety of problems.


// setTransactionIsolation in some contexts used in this test is 
        // causing  java.sql.SQLException: Invalid operation: statement closed
        // error on client. These cases are omitted for now where they cause the
        // statement closed error
        private static boolean  causesStmtClosedOnSetTransactionIsolation = 
TestUtil.isDerbyNetClientFramework();

java.sql.SQLException: Invalid operation: statement closed
        at 
org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:280)
        at 
org.apache.derby.client.am.Statement.executeUpdate(Statement.java:437)
        at 
org.apache.derby.client.am.Connection.setTransactionIsolation(Connection.java:911)
        at 
org.apache.derby.client.am.LogicalConnection.setTransactionIsolation(LogicalConnection.java:184)
        at 
org.apache.derbyTesting.functionTests.tests.jdbcapi.checkDataSource.runTest(checkDataSource.java:404)
        at 
org.apache.derbyTesting.functionTests.tests.jdbcapi.checkDataSource.main(checkDataSource.java:119)
Caused by: org.apache.derby.client.am.SqlException: Invalid operation: 
statement closed
        at 
org.apache.derby.client.am.Statement.checkForClosedStatement(Statement.java:2231)
        at org.apache.derby.client.am.Statement.flowExecute(Statement.java:1737)
        at 
org.apache.derby.client.am.Statement.executeUpdateX(Statement.java:442)
        at 
org.apache.derby.client.am.Statement.executeUpdate(Statement.java:428)
        ... 4 more
Exception in thread "main" D>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to