ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dave Rodenbaugh" <drodenba...@WILDBLUECORP.COM>
Subject Transaction issue with 2.2.0
Date Tue, 27 Feb 2007 17:04:51 GMT
Hello,
 
I have a question about a transaction scenario I'm doing...I see
problems when trying to use
startTransaction()/commitTransaction()/endTransaction with JDBC data
source.  I'm using Oracle 9.2 client libraries, and this is with
iBATIS-2.2.0.
 
Here's my code pattern--I have two Daos involved--one "Foo" and one
"Bar".  I'm transacting Foo here.  (I've tried transacting both and get
the same result, too--so it seems to be relating to the FooDao
transaction somehow)
 
DaoManager dm = FooDaoManager.getDaoManager();
try
{
    dm.startTransaction();
    op1UsingFooDao();
    logger.info("1");
    op2UsingFooDao();
    logger.info("2");
    op3UsingBarDao();                  //throws SQLException when the Tx
code is off, hangs here when using Tx
    logger.info("3");    //never gets here...
    dm.commitTransaction();
}
finally
{
    logger.info("Inside finally block");
    dm.endTransaction();
}
 
Output with no transaction code (application terminates):
1
2
Inside finally block
 
Output with transaction code present (application hangs):
1
2
 
I expected that the transaction would roll back when an exception was
encountered by triggering the finally code.  However, since it hangs, I
don't know where or why it hung in op3UsingBarDao()...?
 
What am I doing wrong in this scenario and how should I correctly
address this?  This scenario is consistent with the documentation, but
the docs don't cover multiple DaoManager transactions...
 
Thanks,
-Dave

Mime
View raw message