Capabilities API and Objectify?

99 views
Skip to first unread message

David Fuelling

unread,
Jul 19, 2012, 9:11:10 AM7/19/12
to objectify...@googlegroups.com
Hey All,

I'm seeing the following error (see stack trace below) inside of Objectify when loading entities and Memcache is unavailable.  Wondering if anyone has a suggestion for how best to handle this one?  It would be great if Objectify could detect (via the Capabilities API) that memcache is offline and simply skip the cache-check when loading entities.  Not sure about the overhead of that one with every call, though.  In my case, I wasn't explicitly handling this error anywhere in my code, so it manifested as an error 500 to the user.  Any suggestions on a better way?  I'd hate to have to explicitly code for this in all of my DAO's via a manual retry.

Thanks!
david

--

com.google.appengine.api.memcache.LogAndContinueErrorHandler handleServiceError: Service error in memcache
com.google.appengine.api.memcache.MemcacheServiceException: Memcache getIdentifiables: exception getting multiple keys
at com.google.appengine.api.memcache.MemcacheServiceApiHelper$RpcResponseHandler.handleApiProxyException(MemcacheServiceApiHelper.java:76)
at com.google.appengine.api.memcache.MemcacheServiceApiHelper$1.absorbParentException(MemcacheServiceApiHelper.java:120)
at com.google.appengine.api.utils.FutureWrapper.handleParentException(FutureWrapper.java:53)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:92)
at com.google.appengine.api.memcache.MemcacheServiceImpl.quietGet(MemcacheServiceImpl.java:28)
at com.google.appengine.api.memcache.MemcacheServiceImpl.getIdentifiables(MemcacheServiceImpl.java:61)
at com.googlecode.objectify.cache.EntityMemcache.getAll(EntityMemcache.java:215)
at com.googlecode.objectify.cache.CachingAsyncDatastoreService.get(CachingAsyncDatastoreService.java:253)
at com.googlecode.objectify.impl.engine.LoadEngine$Round.execute(LoadEngine.java:131)
at com.googlecode.objectify.impl.engine.LoadEngine.execute(LoadEngine.java:216)
at com.googlecode.objectify.impl.cmd.LoaderImpl.refs(LoaderImpl.java:109)
at com.googlecode.objectify.impl.cmd.LoaderImpl.refs(LoaderImpl.java:97)
at com.googlecode.objectify.impl.cmd.LoaderImpl.ref(LoaderImpl.java:87)
at com.googlecode.objectify.impl.cmd.LoaderImpl.key(LoaderImpl.java:133)
...
Caused by: com.google.apphosting.api.ApiProxy$CapabilityDisabledException: The API call memcache.Get() is temporarily unavailable: Memcache is temporarily unavailable. Please see http://code.google.com/status/appengine for more information.

Alex

unread,
Jul 19, 2012, 9:40:32 PM7/19/12
to objectify...@googlegroups.com
For memory this isn't supposed to be thrown (assuming it's the same thing).
This is the issue for it: http://code.google.com/p/googleappengine/issues/detail?id=6236
And apparently this is fixed in the next release - so for now, there's no point
other than to hope it goes away quickly, and/or the next release comes out soon.

Alex.

David Fuelling

unread,
Jul 20, 2012, 10:15:23 AM7/20/12
to objectify...@googlegroups.com
Ah, nice pointer - completely forgot about that issue.  I agree it makes sense to just wait until the next release.  

Thanks!
david
Reply all
Reply to author
Forward
0 new messages