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?  In that case, would I see a performance
improvement using MemCache with the HttpSession as a fallback?

Thanks!

Jake

On Feb 10, 11:23 am, Don Schwarz <schwa...@google.com> 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 <jbrooko...@cast.org> 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
> > google-appengine-j...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@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