The pasted log is a bit hard to read... but it looks to me like two requests. One at "02-28 02:45PM 39" and another at "02-28 02:45PM 49". Or is that just the way it printed?

The idea is to split the app into different _versions_ not different apps. Then they use the same datastore but apart from that act almost like separate apps. In my situation my admin app takes care of all the loading and processing data - kicking off tasks etc.

On 2 Mar 2010, at 00:54, Eugene Kuleshov wrote:

John,

 I've posted the pretty much complete log in my very first message.
If I read it correctly the request took 10012ms and it haven't used
any CPU (0cpu_ms) and there was NO other requests within 30 minutes
around that time.
 More over, if I kick the very same url as defined in cron.xml
manually from the browser, it works. So, the issue seem only affects
requests coming from the cron.xml

 The only thing I could do to to avoid execution of context listener
(besides of dropping Spring MVC and Spring Security) is split
application into a two separate apps, but then I won't be able to
access the same data storage.

 regards,
 Eugene


On Mar 1, 12:41 pm, John Patterson <jdpatter...@gmail.com> wrote:
When you get the "Request was aborted after waiting too long ..."
message there will be no stack trace because your code is never run.
Rest assured you can run tasks for 30 seconds - I do it myself.

Context listeners are run on every loading request so why do you say
that splitting your code will not reduce start up time?  Surely if
there is less code to initialise it will take less time no?

Could you post your log file of requests before and after the error?

On 2 Mar 2010, at 00:17, Eugene Kuleshov wrote:



 John, I hear you, but I am quite certain that there is no other
requests. It happen in a middle of the night when there is no users
and the failing request is initiated by the GAE's own cron, so there
is no refresh of the pages, nor any requests for css.

 With Spring framework, the most of the initialization happens in
either startup servlet or context listener, so splitting application
won't address the issue.

 Another problem is that request is terminated without providing any
stack trace, so it is rather hard to debug issue on a live system.

 regards,
 Eugene

On Mar 1, 12:10 pm, John Patterson <jdpatter...@gmail.com> wrote:
Hi Eugene,

All it takes are two requests to see that error - the first to start
the application loading and then any other request (even a request
for
a css file or refreshing the page) will wait 10 seconds and then
throw
that exception.  It is rare that a single page does not need more
than
one request.

In my opinion this loading request problem is the biggest hidden
gotcha that should be written in big red letters on the introduction
page.  It could end up requiring you to discard the frameworks you
are
accustomed to using.

Something which helped me was to split my app into an "admin" version and a user facing "client" version. That reduced the loading time of
the client version significantly.

On 1 Mar 2010, at 23:35, Eugene Kuleshov wrote:

John,

 My application is hardly used right now, so there is certainly NO
other requests coming in. So, I still don't understand why execution
is cut after 10 seconds instead of promised 30 seconds.

With such limitation GAE for Java is practically making impossible
to use the most popular web framework (i.e. Spring MVC + Spring
Security + Spring Core), but I'd be interested to hear how you can
replace such stack with something based on Guice.

 regards,
 Eugene

On Feb 28, 11:55 pm, John Patterson <jdpatter...@gmail.com> wrote:
You get this message when you app is still starting while other
requests come in. The only current solution is to reduce start up time - pinging is not a satisfactory solution because you still get
frequent "loading requests".  With Guice I was able to reduce
star up
by using a non AOP version which did no bytecode enhancement.
Also,
try delaying initialising components until they are needed.

On 1 Mar 2010, at 08:45, Eugene Kuleshov wrote:

 I have Java application deployed on the appengine and it has
several
job definitions. However I see that Scheduled Tasks are aborted
within
10 seconds from the start, even so corresponding FAQ entry
states 30
seconds.http://code.google.com/appengine/docs/java/runtime.html#Quotas_and_Li
...

This is a big problem for any applications using Springframework,
which has startup time about 20 seconds.

 Here is corresponding entry from the log file for one of the
executions of such scheduled task.

---
  1. 02-28 02:45PM 39.147 /fetch.htm?... 500 10012ms 0cpu_ms 0kb
     See details

0.1.0.1 - - [28/Feb/2010:14:45:49 -0800] "GET / fetch.htm?...
HTTP/1.1" 500 0 - - "ipsc-stats.appspot.com"

  2. W 02-28 02:45PM 49.160

     Request was aborted after waiting too long to attempt to
service
your request. Most likely, this indicates that you have reached
your
simultaneous dynamic request limit. This is almost always due to
excessively high latency in your app. Please see
http://code.google.com/appengine/docs/quotas.htmlformoredetails.
---

 Can you please advise what could be done in such and if I am
missing
anything obvious?

 Thanks

 Eugene

--
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 
athttp://groups.google.com/group/google-appengine-java?hl=en
.

--
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 
athttp://groups.google.com/group/google-appengine-java?hl=en
.

--
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 
athttp://groups.google.com/group/google-appengine-java?hl=en
.

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


--
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-j...@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