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.