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