Hi I got DatastoreTimeoutException when I using HttpSession at production mode. This code does not create error at local development environment.
Purpose to use session is cashing userID(google e-mail string ) when user login at first time. So I created Session_User class which have SeesionID, UserID, and UserNickName propaty and store this instance to memcashe(Key:SessionID. Value Session Instance) and use memcash to identify user when they access server 2nd time. I am not using HttpSession.setAttribute method because I can use Google userService.getCurrentUser() method when cashed data is expired. It is written that when we add <sessions-enabled>true</sessions- enabled> to appengine-web.xml then GoogleSDK automatically creates datastore entities of the kind _ah_SESSION but I could not find _ah_SESSION class in my source code. So Is this the reason for this DatastoreTimeoutException? And if so what should I do to make GoogleSDK creates datastore entities _ah_SESSION? <<<<<<<Error List at production mode >>>>>> A server error has occurred. Uncaught exception from servlet com.google.appengine.api.datastore.DatastoreTimeoutException: Unknown at com.google.appengine.api.datastore.DatastoreApiHelper.translateError (DatastoreApiHelper.java:38) at com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall (DatastoreApiHelper.java:56) at com.google.appengine.api.datastore.DatastoreServiceImpl$2.run (DatastoreServiceImpl.java:170) at com.google.appengine.api.datastore.TransactionRunner.runInTransaction (TransactionRunner.java:30) at com.google.appengine.api.datastore.DatastoreServiceImpl.put (DatastoreServiceImpl.java:158) at com.google.appengine.api.datastore.DatastoreServiceImpl.put (DatastoreServiceImpl.java:138) at com.google.appengine.api.datastore.DatastoreServiceImpl.put (DatastoreServiceImpl.java:130) at com.google.apphosting.runtime.jetty.SessionManager.createSession (SessionManager.java:333) at com.google.apphosting.runtime.jetty.SessionManager $AppEngineSession.<init>(SessionManager.java:135) at com.google.apphosting.runtime.jetty.SessionManager.newSession (SessionManager.java:265) at com.google.apphosting.runtime.jetty.SessionManager.newSession (SessionManager.java:50) at org.mortbay.jetty.servlet.AbstractSessionManager.newHttpSession (AbstractSessionManager.java:413) at org.mortbay.jetty.Request.getSession(Request.java:1005) at askerDB.S_GoogleLogin.doPost(S_GoogleLogin.java:57) at askerDB.S_GoogleLogin.doGet(S_GoogleLogin.java:102) at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1093) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter (SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle (AppVersionHandlerMap.java:237) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 506) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete (HttpConnection.java:830) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable (RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest (JettyServletEngineAdapter.java:139) at com.google.apphosting.runtime.JavaRuntime.handleRequest (JavaRuntime.java:235) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:4950) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:4948) at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest (BlockingApplicationHandler.java:24) at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: 359) at com.google.net.rpc.impl.Server$2.run(Server.java:823) at com.google.tracing.LocalTraceSpanRunnable.run (LocalTraceSpanRunnable.java:56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan (LocalTraceSpanBuilder.java:516) at com.google.net.rpc.impl.Server.startRpc(Server.java:778) at com.google.net.rpc.impl.Server.processRequest(Server.java:351) at com.google.net.rpc.impl.ServerConnection.messageReceived (ServerConnection.java:437) at com.google.net.rpc.impl.RpcConnection.parseMessages (RpcConnection.java:319) at com.google.net.rpc.impl.RpcConnection.dataReceived (RpcConnection.java:290) at com.google.net.async.Connection.handleReadEvent(Connection.java: 428) at com.google.net.async.EventDispatcher.processNetworkEvents (EventDispatcher.java:762) at com.google.net.async.EventDispatcher.internalLoop (EventDispatcher.java:207) at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: 101) at com.google.net.rpc.RpcService.runUntilServerShutdown (RpcService.java:251) at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run (JavaRuntime.java:392) at java.lang.Thread.run(Unknown Source) Unexpected exception from servlet: com.google.appengine.api.datastore.DatastoreTimeoutException: Unknown <<<<<<<Login Servlet code >>>>>> public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { HttpSession session; UserService userService = UserServiceFactory.getUserService(); User user = userService.getCurrentUser(); if (user == null) { resp.sendRedirect(userService.createLoginURL(req.getRequestURI())); } else { req.getSession(true).invalidate(); session = req.getSession(true); Session_User SessionUser=new Session_User(); SessionUser.setSessionID(session.getId()); SessionUser.setUserID(user.getEmail()); SessionUser.setNick(user.getNickname()); AppCash.SessionUser_Put(SessionUser); } } --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---