2011-08-21 49 views
0

希望有人能夠幫助我解決方案,以啓動後臺線程來監視我的數據庫連接。我們的應用程序部署在weblogic 92中,我想知道是否有一種方法可以在應用程序運行時啓動運行的線程?謝謝Weblogic + dameon線程

我試圖監視我的數據庫,以確保我可以切換數據庫,如果我的連接失敗。出於這個原因,我正在尋找一個簡單的解決方案來運行後臺任務。

回答

0

根據您想要檢查的條件以及要執行的操作,您可以使用WebLogic診斷框架。您可以在檢測到某種情況時發送JMS消息,然後使用MDB執行任何您想要的操作。

更新您的問題條件&您想採取的行動,我可以提供更多的細節。

一般來說,開始你自己的線程是不可取的。

更新: 通過您的描述我猜你不使用JNDI或WebLogic數據源。如果您使用WebLogic中的數據源進行連接池,會更好。 WebLogic可以檢測到池中的連接不良,並在將其提供給應用程序之前重新創建它。

如果您指的是不同的數據庫,那麼WebLogic具有具有故障轉移功能的多數據源選項。你應該做的是配置兩個數據源 - 一個主要和一個次要 - 然後創建一個多數據源來包裝它們。然後,您應該在應用程序中使用多數據源的JNDI。顯然,如果你這樣做,你需要確保兩個數據庫實例之間的數據是一致的。

這不會使您的應用程序特定於WebLogic,因爲它只是對JNDI名稱的更改。 WebLogic負責其餘部分。

+0

謝謝傑夫;問題已更新。 – user815809

1

即使在許多應用程序服務器中,您也不應該在Java EE服務器中創建自己的線程,請參閱Why is spawning threads in Java EE container discouraged?瞭解一些背景和變通方法。

+0

謝謝@fvu。我知道這一點,但沒有將我的代碼直接鏈接到Weblogic,我希望這是可能的。我試圖監視我的數據庫,以確保我可以在連接失敗時切換數據庫。出於這個原因,我正在尋找一個簡單的解決方案來運行後臺任務。 – user815809