ConcurentModifcationException happens whenever you have transaction
collisions.  You will often have transaction collisions if you modify
the same piece of data from multiple tasks.

There are two possible situations here:

1) "It happens" - sometimes transactions collide.  The solution is
that you should always make transactions idempotent and you should
always retry them.  If you're using Objectify4, doing an
ofy.transact(new Work() { ... }) will do the retries for you.

2) You may need to rethink the way data flows in your app.  If you
have a bunch of tasks trying to modify the same piece of data, you're
going to get a lot of collisions and collisions slow things down.
Figure out how you can serialize the transactions or combine them.

Jeff

On Sun, Jun 10, 2012 at 5:10 PM, Michael Hermus
<[email protected]> wrote:
> As an expirement, I replaced my use of the Objectify transaction with the
> normal low level datastore API transaction; the problem appears to have gone
> away. There is really no need to use the Objecty wrapper, since there are no
> actual Entities involved. If the issue comes back up subsequent to this
> change, I will post an update.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/oNr1a1W0shwJ.
>
> 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.

-- 
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