I think that it will have same behavior if I replace

@Transaction(rollbackOn=Exception.class)
public void myMethod() {

}

with

Transaction txn = datastore.beginTransaction();
try {
    myMethod();
    txn.commit();
} finally {
    if (txn.isActive()) {
        txn.rollback();
    }
}


The problem with my case is that these are really rare situations that are 
occurring once or twice in month, but I will change it on that way and will 
send another message if I get the same problem again.

The thing that bothers me now is: 
*
*
*Note:* If your app receives an exception when submitting a transaction, it 
does not always mean that the transaction failed. You can receive
DatastoreTimeoutException<http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/DatastoreTimeoutException.html>
, 
ConcurrentModificationException<http://download.oracle.com/javase/1.5.0/docs/api/java/util/ConcurrentModificationException.html>,
 
or 
DatastoreFailureException<http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/DatastoreFailureException.html>
 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.

So as the documentation says, the behavior of transactions is working as 
expected, and if I want to make it right, I have to be sure that my 
identifiers would be same if the user do the same operation again.


-- 
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/-/IzdQj55GrmoJ.
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