So, you are saying that your code did NOT perform a tx.begin() yet the
exception is complaining that Multiple Entity Groups have been
accessed during the course of a transaction?  Note that only a query
(not an update) of an entity outside the currently Entity Group update
triggers this error.

I assume if a transaction is NOT active then NO read locks occur and
all updates are considered Singleton updates.  Note that updates in
JDO are triggered by simply using a setter on a persisted Entity
attribute.

On Nov 30, 11:26 am, Jeffrey Goetsch <[email protected]> wrote:
> I am getting an exception that I pasted below.  It describes a transaction
> error, but I have not programmed any transactions.  On top of that, the
> request that I made should not have changed any data.  Has anyone else been
> getting errors like this?
>
> Caused by: java.lang.IllegalArgumentException: can't operate on multiple
> entity groups in a single transaction.
>
>         at 
> com.google.appengine.api.datastore.DatastoreApiHelper.translateError(Datast­oreApiHelper.java:33)
>         at 
> com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall(Datastor­eApiHelper.java:60)
>         at 
> com.google.appengine.api.datastore.DatastoreServiceImpl$1.run(DatastoreServ­iceImpl.java:113)
>         at 
> com.google.appengine.api.datastore.TransactionRunner.runInTransaction(Trans­actionRunner.java:30)
>         at 
> com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServic­eImpl.java:99)
>         at 
> com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServic­eImpl.java:72)
>         at 
> com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServic­eImpl.java:60)
>         at 
> org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.ge­t(RuntimeExceptionWrappingDatastoreService.java:63)
>         at 
> org.datanucleus.store.appengine.DatastorePersistenceHandler.get(DatastorePe­rsistenceHandler.java:81)
>         at 
> org.datanucleus.store.appengine.DatastorePersistenceHandler.get(DatastorePe­rsistenceHandler.java:91)
>         at 
> org.datanucleus.store.appengine.DatastorePersistenceHandler.updateObject(Da­tastorePersistenceHandler.java:487)
>         at 
> org.datanucleus.state.JDOStateManagerImpl.flush(JDOStateManagerImpl.java:45­76)
>         at 
> org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:2814­)
>         at 
> org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:2754)
>         at 
> org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:2893)
>         at 
> org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:369)
>         at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:256)
>         at org.datanucleus.ObjectManagerImpl.close(ObjectManagerImpl.java:801)
>         at 
> org.datanucleus.jdo.JDOPersistenceManager.close(JDOPersistenceManager.java:­271)
>         ... 51 more
>
> Thanks,
>
> Jeffrey

--

You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" 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-java?hl=en.


Reply via email to