Sync Server 管理手冊


同步化如何發生

同步化程序可以是單向或雙向。本節介紹雙向同步化。雙向同步化程序有兩個步驟:

這種兩階段處理被稱為同步化階段作業

自行動到來源

圖 2顯示使用者提出的變更如何在同步化期間被套用到來源資料庫。 圖中的號碼對應到其後的說明:

圖 2. 使用者提出要同步化的變更如何被套用到來源資料庫

使用者提出要同步化的變更如何被套用到來源資料庫

  1. 居家健康照顧醫生或探訪護士更新病人的血壓,於 Palm OS 裝置上的 VNMEDICALRECORD 表格之本端複本中。護士會結束用來編輯表格的應用程式,然後按 IBM Sync 圖示, 以便在裝置上啟動同步化從屬站的軟體。 當同步化從屬站應用程式啟動時,護士會選擇要同步化的應用程式名稱,然後按同步化以要求同步化。
  2. 在鑑別過要求之後,會將要求置於中層系統的輸入佇列中。 裝置上的同步化 從屬站軟體會等候來源伺服器的同步化要求 (請參閱自來源到行動)。
  3. 使用者可以只與資料子集與他們所定期抄寫的檔案同步化。
  4. 資料已放入暫置表格中。 由於在發生其它更新時變更會被暫置, 因此暫置表格有助於增進同步化要求的容量。
  5. 資料會從暫置表格複製到鏡映表格 (在本例中是 VNMEDICALRECORD), 且會解決潛在的更新衝突。鏡映表格的變更會記錄在 DB2 日誌中。
  6. DB2 DataPropagator「擷取程式」會啟動。此程式會自 DB2 日誌中擷取鏡映表格的變更, 然後將變更寫入變更資料 (CD) 表。
  7. DB2 DataPropagator「引用程式」啟動, 並從 CD 表中將變更引用到來源表格 VNMEDICALRECORD 在來源系統上 VNURSE 資料庫中。

自來源到行動

圖 3顯示來自來源表格的變更如何在同步化期間被套用到使用者行動裝置上的 DB2 Everyplace 表格。Sync Server 會將自使用者上一次同步化以來,所做的所有相關來源資料變更,傳送給使用者。Sync Server 只會傳送使用者所定期抄寫的變更資料。

圖中的號碼對應到其後的說明。

圖 3. 對來源資料庫的變更如何被套用到行動資料庫

對來源資料庫的變更如何被套用到行動資料庫

  1. 持續在來源系統中執行的 DB2 DataPropagator「擷取程式」, 會自 DB2 日誌中擷取 VNMEDICALRECORD 來源表格的變更, 並將它們寫入 CD 表。
  2. DB2 DataPropagator「套用程式」會自變更資料表中將變更套用到鏡映表格 VNMEDICALRECORD。若發現更新衝突,會在程序的此步驟中解決。
  3. 變更的資料會傳送到中層系統上的輸出佇列,作為同步化回覆訊息。
  4. 同步化從屬站軟體會自輸出佇列中擷取同步化回覆訊息。從屬站擷取要求會被鑑別。
  5. 變更的資料會引用到從屬站的本端表格副本。 同步化階段作業結束。

取消同步化

同步化可以由數個同步化階段作業所組成。 若您取消同步化程序並稍後重新啟動,Sync Server 會嘗試從第一個未完成的同步化階段作業恢復, 而不會從頭開始。

例如,假設您要求為一個定期抄寫同步化 100 筆記錄,另一個定期抄寫 50 筆。 若在您取消時第一個定期抄寫的 100 筆記錄已經同步化完成, 剩餘的 50 記錄將只會在您重新起始同步化時才會被同步化。 這是因為只有第一個同步化階段作業已完成。

若使用者在同步化階段作業期間取消同步化,那個特定階段作業中的記錄便都未被同步化。 若使用者順利將所有已變更的記錄從裝置傳送到伺服器, 但在伺服器回覆期間取消,則伺服器會在使用者重新連接至 Sync Server 時恢復回覆。

如何處理衝突

有時, 從屬站對 DB2 Everyplace Sync Server 所提出的變更會與其它從屬站之前所作的變更相衝突, 或會同時對來源表格進行變更。Sync Server 會在定期抄寫方式的每一個表格中, 追蹤每一筆記錄的版本。每一個從屬站都會同樣地被追蹤, 以維護每一個從屬站與每一個表格在最後一次同步化時的每一筆記錄的版本。此資訊可讓 Sync Server 決定從屬站是否要依照該橫列資料的已作廢版本來試著更新橫列。如果從屬站嘗試依照該橫列資料的已作廢版本來更新橫列,則更新會被拒絕。

衝突解決是發生在資料暫置於中層系統的鏡映表格時, 如圖 4中所示。這會在下一次抄寫循環時發生。 在該同步化期間內回應訊息傳回從屬站後, 才會偵測到由於從屬站更新所造成的衝突。 在下一次同步化時,才會將從屬站變更所造成的拒絕傳回從屬站。 如果從屬站變更是依據已作廢的記錄, 則該記錄的正確版本會在原始的同步化要求中傳回。

圖 4. Sync Server 如何處理衝突

Sync Server 如何處理衝突

更新被拒的從屬站會收到被拒的記錄以及該記錄的更正版本。 被拒的記錄被記錄於從屬站的日誌中。 該記錄的更正版本則會取代從屬站 DB2 Everyplace 資料庫上原始的 (被拒的) 記錄。

當 DataPropagator 從中層引用變更的資料到來源資料庫時, 會發生其它類型的衝突。請參閱 DB2 Universal Database Replication 指南與參考手冊DB2 Universal Database Administration Guide,以取得如何管理及解決這些衝突的更多相關資訊。


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]