[jboss-user] [JBossCache] - Re: Problem with transaction timeout [critical]
jacek187
do-not-reply at jboss.com
Fri Jan 5 03:08:54 EST 2007
Simplest as possible working example for this issue:
| package test;
|
| import javax.naming.InitialContext;
| import javax.transaction.Synchronization;
| import javax.transaction.Transaction;
| import javax.transaction.TransactionManager;
|
| public class RollbackTest {
| public static void test(){
| try{
| InitialContext ic = new InitialContext();
| TransactionManager tm = (TransactionManager)ic.lookup( "javax.transaction.TransactionManager" );
| try {
| tm.setTransactionTimeout(1);//set 1 sec transaction timeout
| tm.begin();//start transaction
| Transaction t = tm.getTransaction();
| t.registerSynchronization(new Synchronization() {//add new synchronization handler
|
| public void afterCompletion(int arg0) {
| System.out.println("After:"+Thread.currentThread().hashCode());
| }
|
| public void beforeCompletion() {
| System.out.println("Before:"+Thread.currentThread().hashCode());
| }
| });
| Thread.sleep(20000);//wait 20 secs
| System.out.println("Transaction before commit:"+Thread.currentThread().hashCode());
| tm.commit();//try commit tranwsaction, TransactionTimedOut exception should be throwed
| System.out.println("Transaction after commit:"+Thread.currentThread().hashCode());
| } catch (Exception e) {
| System.out.println("Fake method error: " + e.getMessage());
| }
| }catch(Exception e){
| e.printStackTrace();
| }
| }
| }
|
Run this code from any non-transactional context, for example from jsp page.
| <jsp:directive.page import="test.RollbackTest"/>Hello!!
| <%
| RollbackTest.test();
| %>
|
Output is:
After:-1257420086
Transaction before commit:668113225
Fake method error: Transaction timed out after 0 seconds
BEA1-00058EF7774602E8BAA1
Note:
when you set sleep() value less than 10 secs, weblogic dosen't create separate thread for rollback!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3998182#3998182
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3998182
More information about the jboss-user
mailing list