Hie you guys put me in doubt then. I opened the browser and logged in to my app which created a request to pull authentication info. and once i logged in i queried a page and this was another request.
In this process i got the two different UserClassLoader. So, does your statement holds good? Thankx and Regards Vik Founder www.sakshum.com www.sakshum.blogspot.com On Thu, Sep 17, 2009 at 11:19 PM, Toby Reyelts <to...@google.com> wrote: > 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 -~----------~----~----~----~------~----~------~--~---