Hi Miroslav "when any exception occurs, the transaction is rolled back immediately." this is what the custom JDO is implementing wrong, As you could recall from the docs, not every exception means that a transaction failed. DatastoreTimeouts are definitely in this area.
As the documentations says, to avoid this you would need to implement idempotent transactions, but its better to attack the underlying problem (Datastoretimeout exception). Because your app is on M/S, this could explain why you are getting this exception in a low rate. You can mitigate this by migrating your application to High Replication datastore. Hope this helps! Jose Montes de Oca -- 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/-/B8_fJrq5ovYJ. 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.