配置動態快取磁碟卸載
請利用這個作業來配置動態快取磁碟卸載,它會將從記憶體快取中刪除的快取項目儲存到磁碟中。
關於這項作業
依預設,當快取項目數達到給定應用程式伺服器的配置限制時,快取項目會從記憶體快取中移除,以便新項目能夠儲存到快取中。 請利用磁碟卸載,將正在從記憶體快取中移除的快取項目複製到磁碟中,以備將來可能會存取它們。
如果應用程式伺服器中有一或多個服務者,您可以使用磁碟卸載功能。
如需啟用和停用多個服務者的相關資訊,請參閱Enabling multiple servants on z/OS。
註: 為了改善動態快取磁碟卸載效能,每個 JVM 都只能使用一個硬碟。
程序
- 在管理主控台中,按一下伺服器 > 伺服器類型 > WebSphere Application Server > server_name > 儲存器服務 > 動態快取服務。
- 選取啟用磁碟卸載。
- 啟用磁碟卸載之後,您可以設定「磁碟卸載位置」。 磁碟卸載位置指定磁碟上用來儲存快取項目的位置。 對於在相同節點上定義的任何應用程式伺服器而言,磁碟卸載位置都必須是唯一的。 如果在相同節點上定義了多個伺服器,請務必針對每個伺服器使用不同的磁碟卸載位置。
- 如果您想在伺服器停止時,將記憶體中的快取物件儲存到磁碟,請啟用「沖寫到磁碟」。 如果您選擇這個選項,就必須啟用磁碟卸載。 如果您沒有啟用「沖寫到磁碟」,當伺服器停止時,會刪除所有快取物件。
- 按一下套用或確定。
- 重新啟動 WebSphere® Application Server。
結果
您已啟用磁碟卸載。 記憶體快取項目會移至磁碟上,以備未來可能會存取它。
當您有兩個或更多啟用 Servlet 快取的應用程式伺服器,且應用程式伺服器透過動態快取服務,對其快取指定了相同的磁碟卸載位置時,可能會發生下列異常狀況:
java.lang.NullPointerException at com.ibm.ws.cache.CacheOnDisk.readTemplate(CacheOnDisk.java:686) at com.ibm.ws.cache.Cache.internalInvalidateByTemplate(Cache.java:828)
或:
java.lang.NullPointerException at com.ibm.ws.cache.CacheOnDisk.readCacheEntry(CacheOnDisk.java:600) at com.ibm.ws.cache.Cache.getCacheEntry(Cache.java:341)
如果一個伺服器的執行身分是 root,其他伺服器的執行身分不是 root,就可發生這個問題。 比方說,如果 server1 的執行身分是 root,server2 的執行身分是 wasuser 或 wasgroup,有可能會以 root 許可權來建立磁碟卸載位置中的快取檔。 這個狀況會導致執行於非根伺服器的應用程式在嘗試讀取或寫入快取時發生當機。