Do you just have a single global instance of persistence manager, or do you use the factory method?
Ikai Lan Developer Programs Engineer, Google App Engine Blog: http://googleappengine.blogspot.com Twitter: http://twitter.com/app_engine Reddit: http://www.reddit.com/r/appengine On Thu, May 12, 2011 at 1:47 AM, Juha K <[email protected]> wrote: > I've been running an application successfully for some time on the app > engine. During last week I've couple of times tried enabling threadsafe in > my app. It seems to randomly cause issues with retrieving or storing data > with JDO. What I see when I start to get these issues is this (I've replaced > my apps class names with ---): > java.lang.UnsupportedOperationException > at > org.datanucleus.store.appengine.EntityUtils.getPropertyName(EntityUtils.java:62) > at > org.datanucleus.store.appengine.DatastoreFieldManager.storeObjectField(DatastoreFieldManager.java:839) > at > org.datanucleus.store.appengine.DatastoreFieldManager.storeStringField(DatastoreFieldManager.java:474) > at > org.datanucleus.state.AbstractStateManager.providedStringField(AbstractStateManager.java:1023) > at ---.jdoProvideField(VAJDO.java) > at ---.jdoProvideFields(VAJDO.java) > at > org.datanucleus.state.JDOStateManagerImpl.provideFields(JDOStateManagerImpl.java:2715) > at > org.datanucleus.store.appengine.DatastorePersistenceHandler.insertPreProcess(DatastorePersistenceHandler.java:341) > at > org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects(DatastorePersistenceHandler.java:251) > at > org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObject(DatastorePersistenceHandler.java:240) > at > org.datanucleus.state.JDOStateManagerImpl.internalMakePersistent(JDOStateManagerImpl.java:3185) > at > org.datanucleus.state.JDOStateManagerImpl.makePersistent(JDOStateManagerImpl.java:3161) > at > org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1298) > at > org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1175) > at > org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:669) > at > org.datanucleus.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:694) > > I've seen the same exception also when calling > PersistenceManager.getObjectById(). The call to these methods comes directly > from servlet requests. > > The error doesn't always happen, sometimes (especially for writes) when it > starts to happen, it seems to happen to all writes. I've set threadsafe to > false in my appengine-web.xml and the error goes away. But especially now > knowing the upcoming change in the pricing, I'd like to be able to run my > app multithreaded. My question is that is this a bug in the app engine, or > should I be synchronizing JDO use in my app in order to run it with > threadsafe=true? > > > -- > 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. > -- 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.
