It sounds to me like all of this should either be:
1. In a single transaction - but you'll want to question how important
this is. Distributed transactions are hard to do an expensive:
http://danielwilkerson.com/dist-trans-gae.html
2. Versioned objects: you update each set of objects with a version
and bump it up. You update an entity last with the newest version
number, and retrieve based on that number. This is not a
one-size-fits-all solution and will only work for some data sets.
On Wed, Mar 3, 2010 at 7:58 PM, DutrowLLC dutrow...@gmail.com wrote:
I was hoping to have several transactions going at the same time and
if anything failed in anyone of them, then I could roll back all of
them.
I set up some code to do this, looks something like the code below,
there may be some other problems, but the one that I see is that what
if there is an Exception thrown in the loop where I commit the
transactions, then I've already committed some of them, but not
others? Is this not something that I should be doing? If not, how
should I handle this sort of situation?
VectorTransaction txnVector = new VectorTransaction();
DatastoreService ds;
Transaction txn;
try{
ds = DatastoreServiceFactory.getDatastoreService();
txn = ds.beginTransaction();
txnVector.add(txn);
ds.put( entity, txn );
ds = DatastoreServiceFactory.getDatastoreService();
txn = ds.beginTransaction();
txnVector.add(txn);
ds.put( entity2, txn );
}
// ROLL BACK IF THERE IS A PROBLEM
catch( Exception e ){
for( Transaction txn : txnVector ){
if( txn.isActive() ){
txn.rollback();
}
}
}
// COMMIT ALL
for( Transaction txn : txnVector ){
if( txn.IsActive() ){
txn.commit();
}
}
--
You received this message because you are subscribed to the Google Groups
Google App Engine for Java group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.
--
Ikai Lan
Developer Programs Engineer, Google App Engine
http://googleappengine.blogspot.com | http://twitter.com/app_engine
--
You received this message because you are subscribed to the Google Groups
Google App Engine for Java group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.