[ http://issues.apache.org/jira/browse/DERBY-366?page=all ]

Mamta A. Satoor updated DERBY-366:
----------------------------------

    Attachment: Derby8_Derby366_061805.txt

I have a patch to fix Derby-8 (Connection object gets created with un-supported 
holdability on getting Connection object from XAConnection "inside" the global 
transaction) and Derby-366 (In jdk13, when a connection transitions from global 
transaction to local transaction, its default holdability of 
HOLD_CURSORS_OVER_COMMIT is not restored.) The patch is attached to both 
Derby-8 and Derby-366.

The fix for both these bugs was centered around fixing the holdability handling 
in BrokeredConnection.java This was because BrokeredConnection.java had no code 
for restoring the holdability of real connection object and no code for saving 
the current holdability state of real connection object. I put fix for both 
these issues in BrokeredConnection.java so that both jdk13 and jdk14+ 
environments will be handled correctly. Had to use reflection for this 
holdability work
because Connection.setHoldability and Connection.getHoldability methods are not 
available through JDK13 apis.

svn stat 
M      java\engine\org\apache\derby\iapi\jdbc\BrokeredConnection.java
M      java\engine\org\apache\derby\iapi\jdbc\BrokeredConnection30.java
M      
java\testing\org\apache\derbyTesting\functionTests\tests\store\xaOffline1.sql
M      
java\testing\org\apache\derbyTesting\functionTests\tests\store\xab2354.sql
M      
java\testing\org\apache\derbyTesting\functionTests\tests\jdbcapi\xaAnotherTest.sql
M      
java\testing\org\apache\derbyTesting\functionTests\tests\jdbcapi\xaSimplePositive.sql
M      
java\testing\org\apache\derbyTesting\functionTests\tests\jdbcapi\xaSimpleNegative.sql
M      
java\testing\org\apache\derbyTesting\functionTests\tests\jdbcapi\checkDataSource30.java
M      java\testing\org\apache\derbyTesting\functionTests\master\xaOffline1.out
M      
java\testing\org\apache\derbyTesting\functionTests\master\xaSimplePositive.out
M      java\testing\org\apache\derbyTesting\functionTests\master\xab2354.out
M      
java\testing\org\apache\derbyTesting\functionTests\master\xaSimpleNegative.out
M      
java\testing\org\apache\derbyTesting\functionTests\master\xaAnotherTest.out
M      
java\testing\org\apache\derbyTesting\functionTests\master\checkDataSource30.out

Kathey, may be you can try this fix with Network Server and see if it resolves 
any related issues you had there?

I have run the test suite and this fix has not caused any failures. Have 
changed some of the existing XA tests so that they can rely on correct 
holdability status inside and outside global transaction.

If no comments from anyone, can a commiter please commit this patch?


> In jdk13, when a connection transitions from global transaction to local 
> transaction, its default holdability of HOLD_CURSORS_OVER_COMMIT is not 
> restored.
> ----------------------------------------------------------------------------------------------------------------------------------------------------------
>
>          Key: DERBY-366
>          URL: http://issues.apache.org/jira/browse/DERBY-366
>      Project: Derby
>         Type: Bug
>   Components: JDBC
>     Versions: 10.0.2.1
>     Reporter: Mamta A. Satoor
>     Assignee: Mamta A. Satoor
>  Attachments: Derby8_Derby366_061805.txt, mamta.java
>
> A connection in local transaction has a default holdability of 
> HOLD_CURSORS_OVER_COMMIT. When this connection becomes part of a global 
> transaction, Derby internally switches its holdability to 
> CLOSE_CURSORS_AT_COMMIT (this is because in Derby, holdable cursors do not 
> work with XA transactions). When this connection returns back to local 
> transaction, its holdability should automatically get switched to 
> HOLD_CURSORS_OVER_COMMIT. When running under jdk13, Derby does not perform 
> the last step of restoring the connection holdability. I have attached a 
> program to reporduce this behavior. If this program is run under jdk14, the 
> holdability is restored as expected.

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