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

Julius Stroffek commented on DERBY-2220:
----------------------------------------

> Isn't this bug trying to address those issue? Having this style of cleanup 
> will surely lead to bugs being hidden?
> A safer approach would seem to be use the standard database and 
> address/report issues as they appear.

Yes, the bug addresses exactly this issue.

However, If I will use CleanDatabaseTesetSetup instead of the 
DropDatabaseTestSetup and the bug will appear again the test will lock for a 
while in CleanDatabaseTestSetup (need to timeout 5 times in 
CleanDatabaseTestSetup.removeObjects trying to obtain lock). I tried to run a 
test also on a code not fixied yet.

If the lock is not released the following select statement raise an exception. 
The engine is shutted down afterwards and the database is dropped which is much 
faster and also detects the bug.

> 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.3.0.0
>         Environment: Solaris Nevada build 49, Sun's JDK1.6
>            Reporter: Julius Stroffek
>         Assigned To: Julius Stroffek
>         Attachments: d2220_beta.diff, d2220_beta2.diff, d2220_try1.diff, 
> d2220_try1.stat, d2220_try2.diff, d2220_try2.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.

Reply via email to