1. 程式人生 > >關於解決資料庫網路斷開重新連線的嘗試

關於解決資料庫網路斷開重新連線的嘗試

最近遇到一個比較噁心的問題。有一個專案,在啟動的時候,需要先啟動資料庫,再啟動tomcat,這樣子程式才可以連線上。然而,tomcat和資料庫是分開在兩臺不同的伺服器上,而且管理這個伺服器的人定死了了一套約定,一定是先開啟tomcat所在的伺服器,在開啟資料庫所在的伺服器,導致了程式一開始就卡死。然後那群人寧願重啟一次tomcat,也不願意去改這個開機的順序。

由於專案之前是使用bonecp的連線池,不太好把這個給改掉,雖然現在很多連線池都是支援斷線重連的,但是不能改啊!!!

好吧你既然那麼固執,只可以用程式碼解決了。開始別人說用遞迴,然後記憶體很果斷的溢位了。最後乾脆加了個迴圈和延遲,暫時把這個問題給解決了。。。

// 初始化連線池
	public void init() {

		while (true) {
			try {
				// 設定資料庫連線池
				connectionPool = new BoneCP(this.config());
				this.getConn();
				break;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				System.out.println("無法配置連線池!");
				try {
					Thread.sleep(3000);
				} catch (InterruptedException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		}
	}