2013-02-15 38 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緩存服務器無關。這是一個應用程序相關的問題。