http://code.google.com/intl/pl/appengine/docs/java/datastore/transactions.html

Look at the next code snippet

===========
   for (int i = 0; i < NUM_RETRIES; i++) {
            pm.currentTransaction().begin();

            ClubMembers members = pm.getObjectById(ClubMembers.class,
"k12345");
            members.incrementCounterBy(1);

            try {
                pm.currentTransaction().commit();
                break;

            } catch (JDOCanRetryException ex) {
                if (i == (NUM_RETRIES - 1)) {
                    throw ex;
                }
            }
        }
============

In Google App Engine "optimistic" transaction model is applied. There
is no any "global block", every request starts transaction but only
one is allowed to run through it, the second and next get and
exception and should run some logic to handle this exception. Here it
tries to rerun the transaction (hoping that the first already has
finished it)  You can also return error message to the client and
enable switch "try again" or any other rescue plan.
--~--~---------~--~----~------------~-------~--~----~
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-java@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
-~----------~----~----~----~------~----~------~--~---

Reply via email to