On Wed, Feb 10, 2010 at 1:30 PM, Jake <[email protected]> wrote: > I've discovered my issue - Apache Wicket. Wicket has it's own Session > that stores data in an ISessionStore. Normally, this is backed by a > Disk, but can be backed with an HttpSession if set properly. The > trick is that it stores a lot of state with each page, which I can > change now that I know the issue - prior to this point, my pages were > simple HTML. > > My new question is this: when does the HttpSession become persisted? > Are setAttribute(), getAttribute() calls to HttpSession equivalent to > datastore queries?
No, we retrieve the session at the beginning of the request and persist it at the end. > In that case, would I see a performance > improvement using MemCache with the HttpSession as a fallback? > > HttpSession uses both memcache and datastore internally, so reads are going to be fast unless that particular session has been evicted from memcache, but mutating the session state will incur some additional latency at the end of the request due to a datastore put call. On Feb 10, 11:23 am, Don Schwarz <[email protected]> wrote: > > How much data are you storing in your session? Currently, the serialized > > representation of a sessions contents must be < the 1MB entity limit. > > > > On Tue, Feb 9, 2010 at 12:46 PM, Jake <[email protected]> wrote: > > > Hello, > > > > > I'm getting the following error: > > > > > java.lang.IllegalArgumentException: string property _values is too > > > long. It cannot exceed 1000000 characters. > > > > > The trick is, I'm not persisting any Blobs and certainly none called > > > "_values". I do have one object with a Blob field, but I'm not > > > persisting anything to that field to cause the above exception. Also, > > > this is a new issue and that Blob has been in my application for > > > awhile. All I'm doing is viewing pages that query the datastore. My > > > admin panel doesn't show any quota issues. > > > > > My newest change is that I'm uploading a 350K XML file (a book), > > > applying some XSLT translation using Saxon and storing the result in > > > an application variable, and displaying certain chunks of that file > > > depending on the clicked page. > > > > > I do have sessions enabled, which I fear is related, but I'm not sure > > > how to resolve this. > > > > > Thanks in advance for any help! > > > > > Jake > > > > > /titlepage > > > java.lang.IllegalArgumentException: string property _values is too > > > long. It cannot exceed 1000000 characters. > > > at > > > > > > com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java: > > > 33) > > > at > > > > > > com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall(DatastoreApiHelper.java: > > > 60) > > > at com.google.appengine.api.datastore.DatastoreServiceImpl > > > $2.run(DatastoreServiceImpl.java:163) > > > at > > > > > > com.google.appengine.api.datastore.TransactionRunner.runInTransaction(TransactionRunner.java: > > > 30) > > > at > > > > > > com.google.appengine.api.datastore.DatastoreServiceImpl.put(DatastoreServiceImpl.java: > > > 151) > > > at > > > > > > com.google.appengine.api.datastore.DatastoreServiceImpl.put(DatastoreServiceImpl.java: > > > 131) > > > at > > > > > > com.google.appengine.api.datastore.DatastoreServiceImpl.put(DatastoreServiceImpl.java: > > > 123) > > > at com.google.apphosting.runtime.jetty.SessionManager > > > $AppEngineSession.save(SessionManager.java:162) > > > at > > > > > > com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: > > > 41) > > > 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: > > > 238) > > > 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: > > > 135) > > > at > > > > com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: > > > 235) > > > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > > > $6.handleBlockingRequest(RuntimePb.java:5485) > > > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > > > $6.handleBlockingRequest(RuntimePb.java:5483) > > > at > > > > > > com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java: > > > 24) > > > at > com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: > > > 363) > > > at com.google.net.rpc.impl.Server$2.run(Server.java:837) > > > at > > > > com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java: > > > 56) > > > at > > > > > > com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java: > > > 536) > > > at com.google.net.rpc.impl.Server.startRpc(Server.java:792) > > > at > com.google.net.rpc.impl.Server.processRequest(Server.java:367) > > > at > > > > > > com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java: > > > 448) > > > 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: > > > 474) > > > at > > > > > > com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java: > > > 774) > > > at > > > com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java: > > > 205) > > > 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:394) > > > at java.lang.Thread.run(Unknown Source) > > > > > -- > > > 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]> > <google-appengine-java%[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.
