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.