can you move the EMF creation out of the request path into the
initialization path (Servlet.init(ServletConfig) or a static
initializer
in the Servlet class at startup ...

BTW I also am using Spring IoC to create and inject the JDO EMF
and I dont think I am seeing the same performance issues?

Do you see similar startup costs on the local dev server as well as
production?

good luck

- Larry

On Sep 13, 5:27 pm, lent <[email protected]> wrote:
> I have been doing some profiling on application startup and it seems
> that there is a large amount of overhead:
> - it takes about 5 seconds between the time the request is received to
> where our spring initialization code is invoked
> - creating an entity manager factory is taking on average 8+ seconds
> Sometimes these numbers can be much bigger than this, for example we
> have seen creating entity manager factory as much as 14 seconds.
>
> Given that the application needs to its own initialization (which we
> are trying to minimize), we find that the application initialization
> becomes very long and when the server is busy and the above number are
> even higher, the application initialization fails to complete in 30
> seconds.  Note that this is just the application initialization part
> and then the actual request has to be processed which will take some
> amount of time.
>
> Given that applications can be started on any given request, it makes
> things difficult with application startup time and request processing
> time with the 30 second limit.
>
> Len
>
> On Sep 8, 10:04 am, lent <[email protected]> wrote:
>
>
>
> > Hello,
>
> > We have an application which uses GWT (using GWT RPC) on the client
> > side.  When the application is left idle for a while (~15 minutes) and
> > the application sends a request, we get this reported on the client
> > side:
>
> > "The server encountered an error and could not complete your request.
> > If the problem persists, please report your problem and mention this
> > error message and the query that caused it."
>
> > In the log, the following is logged:
>
> > "Request was aborted after waiting too long to attempt to service your
> > request. Most likely, this indicates that you have reached your
> > simultaneous active request limit. This is almost always due to
> > excessively high latency in your app. Please 
> > seehttp://code.google.com/appengine/docs/quotas.htmlformore details."
>
> > I believe that our application has been swapped out and and when the
> > request comes in the application is being loaded again as we see some
> > log entries we make when the application (servlet) gets initialized.
> > It does take some time to get the application initialized but the
> > error is reported way before 30 seconds has elapsed.  Is there any way
> > to avoid this problem?
>
> > Len- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to