http://xkcd.com/552/ The FinalizableReferenceQueue exception is indeed harmless, but happens during the first request on a particular JVM. These requests are slow because they need to perform class loading, hotspot compilation, etc. We are working on ways of better reporting and speeding up these requests, so stay tuned for some announcements very shortly.
On Mon, Nov 30, 2009 at 11:46 AM, Jeffrey Goetsch <[email protected]>wrote: > I am seeing the same error. I believe this happens when appengine shuts > down your server and then restarts the server. I have read the exception is > harmless, but the slow start seems to indicate different. My startup time > takes about 8 seconds. > > I have created cron, that runs every minute. This seems to prevent > appengine from shutting down my server very often. I probably still have > the appengine shut down my server about 20+ times a day, but that is better > than every request. I still have some delays on the first request after a > cron restarts, but it about 3 seconds. > > I have also thread talking about these issues. > > --Jeffrey > > > > On Sat, Nov 28, 2009 at 9:00 AM, Donny <[email protected]> wrote: > >> I use JPA in my servlet in my app, but some times when I query data >> google app engine will report some exception(following is my log from >> app engine's admin log. ResultServlet is my servlet), the exception is >> about: >> >> "com.google.appengine.repackaged.com.google.common.base.FinalizableReferenceQueue >> <init> >> INFO: Failed to start reference finalizer thread. Reference cleanup >> will only occur when new references are created." >> >> this exception was discussed in this group and i found no one gave the >> solution, every one said it >> is not affect the performance of application. but from my log i found >> it affected my performance. >> >> 11-28 08:37AM 44.050 survey.ResultServlet doGet: begin query data >> I 11-28 08:37AM 44.703 >> >> com.google.appengine.repackaged.com.google.common.base.FinalizableReferenceQueue >> $SystemLoader loadFinalizer: Not allowed to access system class loader >> I 11-28 08:37AM 44.718 >> com.google.appengine.repackaged.com.google.common.base.internal.Finalizer >> getInheritableThreadLocalsField: Couldn't access >> Thread.inheritableThreadLoc >> I 11-28 08:37AM 44.721 >> >> com.google.appengine.repackaged.com.google.common.base.FinalizableReferenceQueue >> <init>: Failed to start reference finalizer thread. Reference >> cleanup... >> I 11-28 08:37AM 45.242 survey.ResultServlet doGet: query data used >> time :1188 >> I 11-28 08:37AM 45.617 survey.ResultServlet doGet: render page used >> time : 375 >> >> some times this exception will disappear, every thing go well, here is >> the log: >> >> 11-28 08:30AM 33.170 survey.ResultServlet doGet: begin query data >> I 11-28 08:30AM 33.206 survey.ResultServlet doGet: query data used >> time :36 >> I 11-28 08:30AM 33.212 survey.ResultServlet doGet: render page used >> time : 6 >> >> if the exception occurs, my page will be rendered to client very slowly >> (it will costs >3s), but without the exception page render is less >> than 1s. And I found this exception occurs after some minute when my >> application has no incoming request from client. because my >> application is not in very high concurrency environment, so the >> problem occurs in 50% time. >> >> >> my code is like this: >> >> public class ResultServlet extends HttpServlet { >> >> private static final Logger log = Logger.getLogger >> (ResultServlet.class.getName()); >> >> public void doGet(HttpServletRequest req, HttpServletResponse resp) >> throws IOException, ServletException { >> >> List<Reply> list = null; >> EntityManager em = EMF.get().createEntityManager(); >> >> log.info("begin query data"); >> long start = System.currentTimeMillis(); >> try { >> >> list = em.createQuery("select r from Reply as >> r").getResultList(); >> >> log.info("query data used time :" + >> String.valueOf >> (System.currentTimeMillis() - start)); >> >> start = System.currentTimeMillis(); >> >> ....code to deal list data. >> >> req.getRequestDispatcher("result.jsp").forward(req, >> resp); >> log.info("render page used time : " + >> String.valueOf >> (System.currentTimeMillis() - start)); >> } finally { >> em.close(); >> } >> } >> } >> >> >> any one can help me? >> >> >> -- >> >> 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]<google-appengine-java%[email protected]> >> . >> 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 > [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%[email protected]> > . > 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 [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.
