Hi,
I am not sure if I understood the concept of user-defined transaction:
I am accessing two different db-schemas at the same time, using two
DataDomains, one for each schema.
Now I want to update data (synchronously) on both schemas with my own
user-defined transaction-scope.
I have to use two different transactions, one for each Domain.
So that's my plan to handle the transactions:
Transaction tx1 = domain1.createTransaction();
Transaction tx2 = domain2.createTransaction();
Transaction.bindThreadTransaction(tx1);
Transaction.bindThreadTransaction(tx2);
(Here is the first question: is it possible to bind two different transactions
to the same thread?)
try {
... doing some work on both schemas through SQLTemplates ...
// success
tx1.commit();
tx2.commit();
} catch (Exception ex) {
// error
tx1.setRollbackOnly();
tx2.setRollbackOnly();
} finally {
Transaction.bindThreadTransaction(null);
// hmm... does that means that both Transactions were unbind?
if ((tx1.getStatus() == Transaction.STATUS_MARKED_ROLLEDBACK) ||
(tx2.getStatus() == Transaction.STATUS_MARKED_ROLLEDBACK)) {
try {
tx1.rollback();
tx2.rollback();
} catch (Exception ex1) {
...
}
}
}
Any help appreciated
Jens
--
"Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail