Hello,

I recently discovered the following, and to me troubling, disclaimer
on the transaction docs:

Note: 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.

Oops, I have designed an app which is not always idempotent, but
instead depends on the assumption that certain tasks use datastore
transactions that are applied exactly once (and are retried until they
throw no exceptions).  Do I need to go back to the drawing board and
redesign my app for idempotence?  How common are concurrency/datastore
exceptions thrown from eventually successful transactions?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to