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

Reply via email to