The latest documentation here 
http://code.google.com/appengine/docs/java/datastore/transactions.html
 states:
"If your app receives an exception when submitting a transaction, it does 
not always mean that the transaction failed. You can receive 
DatastoreTimeoutException, ConcurrentModificationException, or 
DatastoreFailureException exceptions in cases where transactions have been 
committed and eventually will be applied successfully. Whenever possible, 
make your Datastore transactions idempotent so that if you repeat a 
transaction, the end result will be the same."
Having this documentation means that only an uncertainty is guaranteed for 
transactions and it's not possible to know what happened and what steps 
should be taken in order to deal with transaction exceptions.
How is it possible to know whether a transaction really succeeded or not?
What am I going to do after catching a ConcurrentModificationException? How 
do I know if I should retry?
How would you recommend making, for example, payment transactions 
idempotent if I have no idea whether they really failed or succeeded?
I tried to look for answers in other posts but there's no complete 
explanation about these particular details.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine-java/-/N7xXj38YMhkJ.
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