[ 
http://issues.apache.org/jira/browse/DERBY-1010?page=comments#action_12367450 ] 

Kathey Marsden commented on DERBY-1010:
---------------------------------------

Checked in a fix to 10.2 for this.

Date: Wed Feb 22 15:57:30 2006
New Revision: 379993

URL: http://svn.apache.org/viewcvs?rev=379993&view=rev
Log:
DERBY-1010 - setTransactionIsolation can cause ava.sql.SQLException: Invalid 
operation: statement closed in some contexts with xa

Client has a Statement object that it reuses to send SET CURRENT ISOLATION 
commands to the server.  Added a check to make sure this statement was not 
closed before trying to reuse it.

This change takes the checkDataSource test a bit further (DERBY-435) but there 
seem to be issues with isolation being set correctly with xa_join.  I will 
investigate that and file a Jira issue


> 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
>     Assignee: 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