Yes, it's quite trivial for two different http requests to land on two
different application instances. You can see if it's an initializing request
for an application instance by logging from an appropriate servlet's init()
method (for example, one that is in the path of the request or is registered
as load-on-startup).

On Thu, Sep 17, 2009 at 2:20 PM, Vik <vik....@gmail.com> wrote:

> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to