Hi, Yep, I know that. So I broke up my single transaction to multiple ones. I commit them after each other.
I place each Transaction on a different Persistence Manager. It used to be working this way, but it stopped working in 1.3.2. Any idea why? Adam On May 2, 4:11 pm, korey_sed <kouro...@gmail.com> wrote: > Transactions are only supported across a single entity group. So you > cannot do what you want, unless you change your relationship to be an > owned relationship which would put the objects in the same entity > group. > > On Apr 10, 6:27 pm, AdamM <mautner.a...@gmail.com> wrote: > > > > > Hi, > > > I am developing an application, that operates on multiple entity > > groups in multiple datastore transactions. > > > I first create a PersistenceManager and open a transaction on it.I > > make an object persistent using this transaction, but I do not commit > > it. After this I create a new PersistenceManager with a transaction > > from the same factory, I make persistent an object to a different > > entity group. Again I do not commit. At the end I will commit the > > transaction after each other. > > > There is a foreign key relationship between the 2 objects (I store the > > Object with primary key first). > > > The second transaction fails to commit with an Exception: > > > NestedThrowablesStackTrace: > > java.lang.IllegalStateException: Attempted to deregister a transaction > > that is not currently registered. > > at > > com.google.appengine.api.datastore.TransactionStackImpl.remove(TransactionStackImpl.java: > > 61) > > at > > com.google.appengine.api.datastore.TransactionImpl.commit(TransactionImpl.java: > > 71) > > at > > org.datanucleus.store.appengine.DatastoreTransaction.commit(DatastoreTransaction.java: > > 61) > > at > > org.datanucleus.store.appengine.DatastoreXAResource.commit(DatastoreXAResource.java: > > 88) > > (I do not get this error, if I leave the persistence of the object out > > from the 2nd transaction.) > > > I was running this code both from JUnit Tests and on Local App Engine > > instance. > > > This was working with 1.2.6 or 1.3.0 but not with 1.3.2. > > > I also have a JUnit Test to test concurrent modification, I used to > > get JDOCanRetryException on concurrent changes, but now with the new > > version I am getting: > > > java.util.ConcurrentModificationException: too much contention on > > these datastore entities. please try again. > > at > > com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java: > > 37) > > at > > com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall(DatastoreApiHelper.java: > > 63) > > at > > com.google.appengine.api.datastore.TransactionImpl.makeSyncCall(TransactionImpl.java: > > 42) > > at > > com.google.appengine.api.datastore.TransactionImpl.makeSyncCall(TransactionImpl.java: > > 56) > > at > > com.google.appengine.api.datastore.TransactionImpl.commit(TransactionImpl.java: > > 66) > > > Has anything changed in 1.3.2? > > > Please help. > > > Regards, > > > Adam > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appeng...@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com. > For more options, visit this group > athttp://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 google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.