2010-07-15 73 views
1

我們使用Oracle Weblogic 10.3作爲我們的應用程序服務器。我們有多個模塊需要訪問託管服務器通用的對象(包含一些HashMaps)。這個對象將通過其他進程每天填充。由於大量的應用程序和有限的內存,我們不希望在每個應用程序中都有這個副本。我們不能將這些組合成一個耳朵,因爲個人(戰爭)需要根據不同的時間表進行更新。Weblogic 10.3受管服務器共享內存對象

我已經嘗試創建一個可選包並在兩個模塊中引用它。正在訪問的類只是將調用包裝爲對象的單例。但是,爲每個應用程序創建一個單獨的單例會破壞目的。

看起來啓動類在8.1或更早版本的某個時候被棄用,現在已經到了10.3版。

有沒有什麼辦法讓這個對象和其他代碼在應用程序/模塊級別之上「活着」,每個jvm /受管服務器只有一個副本,並且可以被部署到同一個受管服務器的所有模塊訪問?

如果解決方案也可以在Tomcat中運行,則可獲得獎勵積分。

回答

0

看起來啓動類在8.1或更早版本的時候被棄用,現在已經到了10.3版。

確實。但是它們被Application Life Cycle Events API「替代」,所以它們還是有的。

有沒有什麼辦法讓這個對象和其他代碼的應用程序/模塊級以上的「活」的,有每個JVM /管理的服務器只有一個副本,並通過部署到同一管理服務器的所有模塊進行訪問?

不完全是你問什麼,但你可以實現像一個的EHCache緩存解決方案的頂級服務,並通過公開無狀態會話bean或本服務的Web服務(甚至兩者)。如果這不是一個選項,你能澄清確切的需求嗎?

+0

我沒有意識到Weblogic生命週期事件,儘管我嘗試過ServletContextListeners。 我們正在嘗試嘗試尋找替代我們目前使用Tangosol/Coherence進行的一些功能,這與EHCache類似。我們有一個hashmap,需要每天讀取數百萬次,具有低延遲要求。我們希望這可以在應用程序中訪問,而無需在它之前創建EJB或類似的應用程序。但如果這是做到這一點的唯一方式,我們可能不得不這樣做。我比執行更擔心表現。 – bobtheowl2 2010-07-16 14:06:39

+0

@ bobtheowl2:Coherence是一款出色的產品,如果許可成本不是問題,請堅持使用它。如果是這樣,圍繞EHCache的解決方案可能是一個不錯的選擇。關於SLSB,如果你使用本地接口,開銷應該很低。但是,一如既往,衡量它。 – 2010-07-19 19:33:32