2012-08-17 116 views
0

我們在生產中的應用在WebLogic中運行。這是一個基於spring和struts的web應用程序。需要db加載查詢和通過GUI句柄即時重新加載的能力。一些現有的實用程序文件在春季沒有配置爲bean(不能在此處),並且有靜態方法使用靜態變量/常量來在每個靜態方法中運行查詢。我不明白Weblogic集羣如果在應用程序啓動並運行時必須重新加載數據庫查詢,將如何運行。換句話說,我們如何確保在所有JVM上重新加載對靜態變量的查詢,以便在任何節點上的下一次命中方法將獲取新加載的查詢的結果?的Weblogic集羣

+0

請仔細標註標籤。這不是[tag:cluster-analysis](又名:clustering,一種數據挖掘技術),但[tag:load-balancing]。 – 2012-08-17 17:13:52

回答

1

讓我們看看這回答您的查詢。

如果你有3臺管理服務器,並且您已經在所有3個託管服務器部署在Spring應用程序,然後彈簧將彈出3個應用程序環境。 (每個託管服務器一個)。

他們不相互交談,他們將自己的服務器中運行。他們將擁有自己的一組bean和他們自己的靜態變量。

因此一臺服務器上的重載將成爲該服務器。您將不得不在所有三臺服務器上重新加載靜態內容,以便在整個應用程序中反映出來。

如果您希望所有人都可以重新加載,請使用屬性文件(或所有3臺受管服務器可以從同一位置共享的任何其他資源,例如管理服務器的JNDI,存儲在文件系統上的屬性文件,存儲您在某些數據庫表的查詢,並從那裏加載它 - 提供的所有應用程序指向同一個數據庫)

0

每個WebLogic管理服務器將擁有自己的Spring應用程序上下文(如維韋克描述)。

確保每個JVM具有刷新的「db查詢」集合的一種方式是使用共享的分佈式緩存(例如ehcache),以便刷新數據而不管哪個節點進行刷新。分佈式緩存和緩存複製是解決您問題的複雜解決方案。