Memcached部分对象无效

时间:2013-02-15 05:16:00

标签: object memcached

我们正在缓存类格式以下的对象。

公共类CachedObject {

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

@javax.persistence.Transient
public Date cacheExpirationDate;

}

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

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

有人可以建议可能出现的问题吗?

1 个答案:

答案 0 :(得分:0)

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