2013-02-15 67 views
0

我们正在缓存一个以下类格式的对象。Memcached部分对象无效

公共类CachedObject {

@javax.persistence.Transient 
public List<ObjectA> objectAs; 

@javax.persistence.Transient 
public Date cacheExpirationDate; 

}

我们有检查缓存对象的过期日期和到期前刷新高速缓存的过程。如果有更新,还有另一个进程使用replace(spymemcached)方法更新缓存的对象。在我们的情况下,更新通常发生在objectAs上。缓存的对象永远不会被驱逐。我们还使用默认平板(1MB)大小设置启动了memcached。

问题:当我们获取一些对象时,我们发现缓存对象不是null,但是objectAs为null。我们随后在尝试对objectAs执行任何操作时会得到空指针异常。我检查过,并且在缓存/更新之前我们总是设置objectAs的值。我还从远程登录界面看到了不完整的缓存对象。当我刷新缓存时,它开始在缓存中显示完整的对象。

有人可以请建议什么可能会出错吗?

回答

0

运行一些更多的测试单元/集成后,我发现这个字段被设置为空的情况。所以我在问题中提到的问题与memcached缓存服务器无关。这是一个应用程序相关的问题。