Just to clarify what Jason is saying, the fact that you're seeing two different UserClassLoader instances in those two requests:
userclassloa...@1f7cdc7 and userclassloa...@1e6f0ef means that you're actually looking at two requests for two different isolated application instances, with each one undergoing its own initialization. On Thu, Sep 17, 2009 at 1:19 PM, Jason (Google) <apija...@google.com> wrote: > Hi Vik. At most a single UserClassLoader is loaded per application > instance. Since you're seeing two output lines in your logs, these two > requests must have hit separate running instances of your application. > > In your benchmarking, you need to account for this initialization, i.e. > ignoring requests that are loading requests per application instance, and > keep in mind that you're likely to see several loading requests every time > you upload a change to your application, as new instances are spun up. > > - Jason > > > On Thu, Sep 17, 2009 at 8:33 AM, Vik <vik....@gmail.com> wrote: > >> hie >> in two different requests. >> >> Thankx and Regards >> >> Vik >> Founder >> www.sakshum.com >> www.sakshum.blogspot.com >> >> >> On Thu, Sep 17, 2009 at 8:16 PM, Don Schwarz <schwa...@google.com> wrote: >> >>> To be clear, you're getting these two log statements in the same request? >>> Or subsequent requests? >>> >>> >>> On Thu, Sep 17, 2009 at 1:48 AM, Vik <vik....@gmail.com> wrote: >>> >>>> hie >>>> any updates on this please? >>>> >>>> yeah I did what you suggested by putting a log statement.. >>>> >>>> and what I get are two different values from this block >>>> >>>> At first time of app startup >>>> vik.sakshum.sakshumweb.jsp.model.jdo.PMF <clinit>: Loading PMF in >>>> com.google.apphosting.runtime.security.userclassloa...@1f7cdc7 >>>> >>>> and in another flow >>>> vik.sakshum.sakshumweb.jsp.model.jdo.PMF <clinit>: Loading PMF in >>>> com.google.apphosting.runtime.security.userclassloa...@1e6f0ef >>>> >>>> >>>> So, it means it is trying to load it in two different class loaders. >>>> So, how should I fix it? >>>> >>>> Thankx and Regards >>>> >>>> Vik >>>> Founder >>>> www.sakshum.com >>>> www.sakshum.blogspot.com >>>> >>>> >>>> On Thu, Sep 3, 2009 at 9:01 PM, Vik <vik....@gmail.com> wrote: >>>> >>>>> Hie >>>>> Thankx for taking time... >>>>> >>>>> I just adding the static block u mentioned in point 1 just after the >>>>> static block i have (in the above mail) >>>>> >>>>> I am sorry I did not get your point 2. >>>>> Right now what I do is: every time a request goes to a particular >>>>> servlet depending upon application flow and i call >>>>> PersistentManager pm = PMF.get().getPersistenceManager(); >>>>> >>>>> and then do jdo stuff with GAE. >>>>> >>>>> So, i m not checking any kind of duplicate or anything. I was hoping >>>>> the PMF class getInstance which is implemented as a singleton pattern >>>>> takes care of all. >>>>> >>>>> Please guide.. my app right now sucks coz of this not intialized error >>>>> for PMF. >>>>> >>>>> >>>>> Thankx and Regards >>>>> >>>>> Vik >>>>> Founder >>>>> www.sakshum.com >>>>> www.sakshum.blogspot.com >>>>> >>>>> >>>>> On Wed, Sep 2, 2009 at 8:42 PM, Toby Reyelts <to...@google.com> wrote: >>>>> >>>>>> Thanks for the code. I have three suggestions (mostly from my previous >>>>>> post): >>>>>> 1) Are you maybe loading that singleton class in different >>>>>> classloaders? Try logging the classloader object reference that tries to >>>>>> create the PersistenceManagerFactory. You can add a static initializer >>>>>> ABOVE >>>>>> pmfInstance. >>>>>> >>>>>> static { >>>>>> logger.log(Level.SEVERE, "Loading PMF in " + >>>>>> PMF.class.getClassLoader()"); >>>>>> } >>>>>> >>>>>> 2) Patch the datanucleus plugin code that makes the check for >>>>>> duplicate PMF creations to log a stacktrace first thing every time it's >>>>>> called. Then you'll know for sure which code paths are causing this to >>>>>> happen. >>>>>> >>>>>> 3) Disable the check if you're sure you're only creating the PMF a >>>>>> small number of times. >>>>>> >>>>>> On Wed, Sep 2, 2009 at 2:45 AM, Vik <vik....@gmail.com> wrote: >>>>>> >>>>>>> Hie >>>>>>> here is the code I am using: >>>>>>> package vik.sakshum.sakshumweb.jsp.model.jdo; >>>>>>> >>>>>>> import javax.jdo.JDOHelper; >>>>>>> import javax.jdo.PersistenceManagerFactory; >>>>>>> >>>>>>> import org.compass.core.Compass; >>>>>>> import org.compass.core.config.CompassConfiguration; >>>>>>> import org.compass.core.config.CompassEnvironment; >>>>>>> import org.compass.gps.CompassGps; >>>>>>> import org.compass.gps.device.jdo.Jdo2GpsDevice; >>>>>>> import org.compass.gps.impl.SingleCompassGps; >>>>>>> >>>>>>> public final class PMF { >>>>>>> private static final PersistenceManagerFactory pmfInstance = >>>>>>> >>>>>>> JDOHelper.getPersistenceManagerFactory("transactions-optional"); >>>>>>> >>>>>>> private static final Compass compass; >>>>>>> private static final CompassGps compassGps; >>>>>>> >>>>>>> static { >>>>>>> compass = new >>>>>>> CompassConfiguration().setConnection("gae://index") >>>>>>> >>>>>>> .setSetting(CompassEnvironment.ExecutorManager.EXECUTOR_MANAGER_TYPE, >>>>>>> "disabled") >>>>>>> .addScan("vik.sakshum.sakshumweb.jsp.model.jdo") >>>>>>> .buildCompass(); >>>>>>> >>>>>>> compassGps = new SingleCompassGps(compass); >>>>>>> compassGps.addGpsDevice(new Jdo2GpsDevice("appenine", >>>>>>> pmfInstance)); >>>>>>> compassGps.start(); >>>>>>> >>>>>>> compassGps.index(); >>>>>>> >>>>>>> } >>>>>>> >>>>>>> private PMF() {} >>>>>>> >>>>>>> public static PersistenceManagerFactory get() { >>>>>>> return pmfInstance; >>>>>>> } >>>>>>> >>>>>>> public static Compass getCompass(){ >>>>>>> return compass; >>>>>>> } >>>>>>> } >>>>>>> >>>>>>> any clues? >>>>>>> >>>>>>> Thankx and Regards >>>>>>> >>>>>>> Vik >>>>>>> Founder >>>>>>> www.sakshum.com >>>>>>> www.sakshum.blogspot.com >>>>>>> >>>>>>> >>>>>>> On Wed, Sep 2, 2009 at 12:34 AM, Toby Reyelts <to...@google.com>wrote: >>>>>>> >>>>>>>> Vik, >>>>>>>> >>>>>>>> Do you have some sample code to reproduce this? By default, we throw >>>>>>>> an exception if you try to create more than one >>>>>>>> PersistenceManagerFactory. >>>>>>>> Are you using a singleton class to prevent more than one from being >>>>>>>> created? >>>>>>>> If so, are you maybe loading that singleton class in different >>>>>>>> classloaders? >>>>>>>> (Try logging the classloader object reference that tries to create the >>>>>>>> PersistenceManagerFactory). >>>>>>>> >>>>>>>> Lastly, you can disable the exception if you want (details should be >>>>>>>> in the exception message), but it will be a performance problem for >>>>>>>> you if >>>>>>>> you're creating more than a few PersistenceManagerFactory's. >>>>>>>> >>>>>>>> >>>>>>>> On Tue, Sep 1, 2009 at 1:51 PM, Vik <vik....@gmail.com> wrote: >>>>>>>> >>>>>>>>> anyone any updates on this please? >>>>>>>>> Thankx and Regards >>>>>>>>> >>>>>>>>> Vik >>>>>>>>> Founder >>>>>>>>> www.sakshum.com >>>>>>>>> www.sakshum.blogspot.com >>>>>>>>> >>>>>>>>> >>>>>>>>> On Sun, Aug 30, 2009 at 8:51 PM, Vik <vik....@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> Hie >>>>>>>>>> Any one using compass on his GAE app? >>>>>>>>>> >>>>>>>>>> I am frequently getting error cannot initialize PMF where there is >>>>>>>>>> static code to initialize compass apis. >>>>>>>>>> Any idea how to resolve? >>>>>>>>>> >>>>>>>>>> Thankx and Regards >>>>>>>>>> >>>>>>>>>> Vik >>>>>>>>>> Founder >>>>>>>>>> www.sakshum.com >>>>>>>>>> www.sakshum.blogspot.com >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>>> >>> >>> >>> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---