我有一個應用程序引擎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