2012-09-30 61 views
0

使用BizTalk我需要從使用ODBC在Unix中託管的兩個數據庫之一讀取數據。在數據庫服務器之間動態切換接收位置

數據在數據庫之間複製,如果其中一個數據庫沒有響應,我需要切換到另一個。沒有負載平衡器或任何東西,所以我需要能夠在BizTalk服務器上進行切換。

我正在考慮創建兩個接收位置,每個數據庫服務器一個,只啓用其中一個,然後有一個Windows服務,它定期嘗試連接到其中一個數據庫服務器,並且如果有異常,調用PowerShell腳本,禁用不響應的服務器的接收位置並啓用其他接收位置。

有沒有更好的解決方案呢?

+0

我們在這裏談論的是什麼時間尺度 - 即,您需要多快才能知道DB1是否停機並且DB2是否是新的主服務器?你有什麼輪詢頻率?你怎麼知道DB1掉了 - 這是連接的東西,還是會ping足夠? –

回答

1

我會解決這個問題如下:

  • 在BizTalk創建一個HTTP接收位置。
  • 創建一個Windows服務
  • 在窗口服務調查的第一個數據庫,如果它不從第二數據庫
  • 有BizTalk服務後迴應調查的信息到HTTP接收位置

您需要考慮如果您從主數據庫讀取兩次相同的數據,並從備份讀取一次,會發生什麼情況。

+0

我想在服務和數據庫模式之間儘可能少依賴,這樣如果數據庫模式發生任何變化,我就不必更新服務。 – RobinHu