我有一个应用程序引擎java项目,我正在使用objectify。我在应用程序引擎Web控制台的“堆栈驱动程序错误报告”视图中偶尔收到一个堆栈跟踪,该视图涉及将项目放入内存缓存中。这是代码:什么导致Memcache操作失败,放弃异常?
try {
TestItem t = new TestItem(...);
ofy().save().entity(t).now();
} catch (Exception e) {
}
,这是错误我会看到零星:
com.googlecode.objectify.cache.MemcacheServiceRetryProxy invoke: Memcache operation failed, giving up java.lang.reflect.InvocationTargetException at com.google.appengine.runtime.Request.process-i4dx9s2kED3CVcPe(Request.java) at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:44) at com.googlecode.objectify.cache.MemcacheServiceRetryProxy.invoke(MemcacheServiceRetryProxy.java:68) at com.sun.proxy.$Proxy9.putAll(Unknown Source) at com.googlecode.objectify.cache.KeyMemcacheService.putAll(KeyMemcacheService.java:91) at com.googlecode.objectify.cache.EntityMemcache.empty(EntityMemcache.java:319) at com.googlecode.objectify.cache.CachingAsyncDatastoreService$5.trigger(CachingAsyncDatastoreService.java:445) at com.googlecode.objectify.cache.TriggerFuture.isDone(TriggerFuture.java:87) at com.googlecode.objectify.cache.TriggerFuture.get(TriggerFuture.java:102) at com.googlecode.objectify.impl.ResultAdapter.now(ResultAdapter.java:34) at com.googlecode.objectify.util.ResultWrapper.translate(ResultWrapper.java:22) at com.googlecode.objectify.util.ResultWrapper.translate(ResultWrapper.java:10) at com.googlecode.objectify.util.ResultTranslator.nowUncached(ResultTranslator.java:21) at com.googlecode.objectify.util.ResultCache.now(ResultCache.java:30) at com.googlecode.objectify.util.ResultWrapper.translate(ResultWrapper.java:22) at com.googlecode.objectify.util.ResultWrapper.translate(ResultWrapper.java:10) at com.googlecode.objectify.util.ResultTranslator.nowUncached(ResultTranslator.java:21) at com.googlecode.objectify.util.ResultCache.now(ResultCache.java:30) at com.me.test.Test.putSomethinInMemcache(Test.java:13) ... Caused by: com.google.appengine.api.memcache.MemcacheServiceException: Memcache putAll: Unknown exception setting 1 keys at com.google.appengine.api.memcache.MemcacheServiceApiHelper$RpcResponseHandler.handleApiProxyException(MemcacheServiceApiHelper.java:69) at com.google.appengine.api.memcache.AsyncMemcacheServiceImpl$RpcResponseHandlerForPut.handleApiProxyException(AsyncMemcacheServiceImpl.java:349) at com.google.appengine.api.memcache.MemcacheServiceApiHelper$1.absorbParentException(MemcacheServiceApiHelper.java:111) at com.google.appengine.api.utils.FutureWrapper.handleParentException(FutureWrapper.java:52) at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:91) at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:89) at com.google.appengine.api.memcache.MemcacheServiceImpl.quietGet(MemcacheServiceImpl.java:26) at com.google.appengine.api.memcache.MemcacheServiceImpl.putAll(MemcacheServiceImpl.java:115) ... 52 more
它不会出现在try语句被抓。我刚刚在前面提到的管理控制台中看到它。
有人知道这意味着什么,或者我怎么能抓住它?我主要担心的是,在此操作失败后,可能有旧对象的副本卡在内存缓存中。
使用对象化5.1.10。
谢谢
我们遇到同样的问题,并且经常以某种方式怀疑它实际上是一个memcache不可用的问题..除非谷歌基础结构是flakey(实际上也怀疑它)。未知的异常让我感到困扰。 – ticktock