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

Reply via email to