cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jens Mayer" <Jens.May...@gmx.de>
Subject user-defined transactions
Date Thu, 26 Apr 2007 10:04:34 GMT
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

Mime
View raw message