我正在使用彈簧&休眠。我的應用程序有3個模塊。每個模塊都有特定的數據庫。所以,應用程序處理3個數據庫。在服務器啓動時,如果任何一個數據庫關閉,則服務器不啓動。 我的要求是,即使其中一個數據庫關閉,服務器應該啓動,因爲其他模塊的數據庫已啓動,用戶可以在其他兩個模塊上工作。請建議我如何實現這一目標? 我使用spring 3.x和hibernate 3.x.此外,我正在使用c3p0連接池。應用服務器是Tomcat。如何使App服務器即使在數據庫關閉的情況下啓動?
謝謝!
我正在使用彈簧&休眠。我的應用程序有3個模塊。每個模塊都有特定的數據庫。所以,應用程序處理3個數據庫。在服務器啓動時,如果任何一個數據庫關閉,則服務器不啓動。 我的要求是,即使其中一個數據庫關閉,服務器應該啓動,因爲其他模塊的數據庫已啓動,用戶可以在其他兩個模塊上工作。請建議我如何實現這一目標? 我使用spring 3.x和hibernate 3.x.此外,我正在使用c3p0連接池。應用服務器是Tomcat。如何使App服務器即使在數據庫關閉的情況下啓動?
謝謝!
我會使用@Configuration註釋來創建一個對象,它是構建bean並處理數據庫關閉場景的工作。在構建bean時,測試數據庫連接是否已啓動,如果沒有,則返回bean的虛擬版本。這將被注入相關對象。這個虛擬bean的工作是在調用時真正拋出一個不可用的異常。如果您的應用程序可以處理某些功能的這些不可用例外情況,並在使用其他數據源時繼續運行時顯示給用戶,則應該沒問題。
@Configuration
public class DataAccessConfiguration {
@Bean
public DataSource dataSource() {
try {
//create data source to your database
....
return realDataSource;
} catch (Exception) {
//create dummy data source
....
return dummyDataSource;
}
}
}
嗨BruceLowe,謝謝你的回覆。一些如何使應用程序服務器即使其中一個數據庫已啓動。但一旦用戶開始使用其他模塊,如果數據庫已啓動,並且用戶試圖訪問它,如何才能爲該數據庫配置池?謝謝 – user1016403 2012-04-23 14:40:31
這本來是一個註釋:
你試過了嗎?在連接數據庫之前,您不知道數據庫是否處於關閉狀態,因此除非c3p0預先驗證其所有連接,否則直到您嘗試使用它時纔會知道某個特定數據庫處於關閉狀態。那時你的應用程序已經開始了。
什麼是粗體文本? – adarshr 2012-04-20 10:42:22
你試過了嗎?在連接數據庫之前,您不知道數據庫是否處於關閉狀態,因此除非c3p0預先驗證其所有連接,否則直到您嘗試使用它時纔會知道某個特定數據庫處於關閉狀態。那時你的應用程序已經開始了。 – beny23 2012-04-20 10:43:40
嗨貝尼,謝謝你的回覆。如果c3p0的預失效失敗,我的意思是如果其中一個數據庫關閉,服務器將無法正確啓動?如果我錯了,請糾正我。謝謝! – user1016403 2012-04-20 10:52:32