2015-05-06 38 views
0

食物我們正在使用WAS 7.0,並在集羣環境中使用自定義本地緩存。在我們的應用程序中,有一些非常常用(很少更新)的參考信息從數據庫中檢索並存儲在服務器啓動時的自定義緩存中(我們不通過應用程序服務器使用緩存)。可以通過應用程序輸入新的參考值,完成後可以更新數據庫中的數據,並反映該單個服務器上的緩存數據(1/3)。如果用戶點擊該羣集中的任何其他服務器,他們將不會看到新輸入的參考值(除非服務器被退回)。重新啓動集羣並不是一個可行的解決方案,因爲它會降低生產。我的問題是如何告訴其他服務器更新其本地緩存?WebSphere將更改傳播到集羣中所有服務器上的自定義緩存

我看了JMS發佈/訂閱機制。每當我更新任何引用表的值時,我都想發佈消息,其他服務器可以充當訂戶並獲取消息並刷新其緩存。服務器需要充當發佈者和訂閱者。我不確定如何將此解決方案合併到我的應用程序中。我也樂於接受建議和其他解決方案。

回答

0

一般而言,您應該考慮應用程序服務器提供的動態緩存服務。它已經有了複製選項。查詢Using the DistributedMap and DistributedObjectCache interfaces for the dynamic cache瞭解更多詳情。

而關於您的自定義JMS解決方案 - 您的應用程序中應該有MDB,它將根據主題進行配置。緩存更改後,您的應用程序將發佈對該主題的更改。 MDB讀取該消息並更新本地緩存。

但是由於這是非常複雜的變化,我強烈地考慮切換到內置緩存。

相關問題