db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Julius Stroffek (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-2220) Uncommitted transactions executed throught XAResource will held locks after the application terminates (or crashes during the transaction).
Date Wed, 21 Mar 2007 19:10:32 GMT

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

Julius Stroffek updated DERBY-2220:
-----------------------------------

    Attachment: d2220_fix.stat
                d2220_fix.diff

In DRDAXAProtocol the null value was assigned to a local variable instead of the global one.
This causes the last transaction to be rolled back after the connection will be closed even
if the XAResource.end was called before.

Lesson learned: Better, do not use the same names for arguments and class members.


> Uncommitted transactions executed throught XAResource will held locks after the application
terminates (or crashes during the transaction).
> -------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-2220
>                 URL: https://issues.apache.org/jira/browse/DERBY-2220
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.2.2.0, 10.3.0.0
>         Environment: Solaris Nevada build 49, Sun's JDK1.6
>            Reporter: Julius Stroffek
>         Assigned To: Julius Stroffek
>             Fix For: 10.2.2.1, 10.3.0.0
>
>         Attachments: d2220_beta.diff, d2220_beta2.diff, d2220_fix.diff, d2220_fix.stat,
d2220_try1.diff, d2220_try1.stat, d2220_try2.diff, d2220_try2.stat, d2220_try4.diff, d2220_try4.stat,
d2220_try5.diff, d2220_try5.stat, XATranTest.java, xxx.sql
>
>
> Using this piece of code derby will not release a table lock of 'dummy' table.
>             String query = "insert into dummy (field1) values ('" + Integer.toString(value)
+ "')";
>             XAConnection xaConnection = createXAConnection("jdbc:derby://localhost:1527/TestDB",
"", "");
>             XAResource xaResource = xaConnection.getXAResource();
>             conn = xaConnection.getConnection();
>             
>             Xid xid = createXid(value);        
>             xaResource.setTransactionTimeout(10);
>             xaResource.start(xid, XAResource.TMNOFLAGS);
>             
>             Statement statement = conn.createStatement();
>             statement.execute(query);        
>             
>             // terminate the client application
>             // this will not release any locks
>             System.exit(0);

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