非同步處理串聯交易
某些交易可以設定為在所有相關的記錄之間串聯。 這表示對上層記錄的變更會在所有下層記錄上交易 (向下串聯)。 層疊式關聯是在資料表層級設定的。 如需層疊式關聯的詳細資訊,請參閱設定資料表關聯層疊式行為。
同步與非同步模式
根據預設,系統會將串聯作業做為同步交易來執行。 對於同步串聯交易,系統會識別所有受影響的記錄。 當處理記錄時,系統會鎖定這些記錄。 在完成所有變更後,記錄會解除鎖定,交易也會完成。
當執行時間過長的交易因為伺服器逾時而失敗時,具有大量記錄的同步交易會造成環境的效能問題。 記錄會遭到鎖定,讓在相同記錄上作業的其他工作和使用者交易無法執行。 此外,執行時間過長的交易可能會造成待處理交易和要求的積存,這會降低系統效能,並可能造成工作中斷。
如果環境在同步串聯作業正在進行時,碰到逾時或效能降低的問題,您的環境可透過啟用非同步模式的方式獲益。 下表說明了這些模式之間的主要區別。
同步模式 | 非同步模式 |
---|---|
在串聯作業完成之前,沒有任何其他工作會在一整組所選的記錄 (直接或串聯) 上執行。 | 關於指派、刪除和合併,會批次進行串聯變更,並且只鎖定批次處理的記錄。 這允許其他工作在完整串聯變更作業期間執行。 |
工作完成時,所有資料都會顯示所需的新值。 | 工作執行時,每個已完成的批次會顯示所需的值。 這表示在完整作業完成之前,將會有一段時間有些資料顯示所需的值,有些資料顯示原始的值。 這稱做「最終一致」。 |
如果單一記錄失敗,則所有的資料會復原回原始值。 復原需要重新編輯所有已完成的記錄,這會再多花費一些時間。 | 如果單一工作失敗,則會重試多次以嘗試完成。 如果無法完成工作,則失敗會記錄在系統作業區中。 請注意,成功完成的記錄會保留新的值。 |
如果串聯清單中其中一個記錄的值與預期的值不同,則工作會失敗並復原。 例如,假設起始記錄屬於擁有者 1,且串聯作業想要將其變更為擁有者 2。 如果其中一個下游相關記錄已變更為擁有者 3,或在鎖定之前遭到刪除,則整個工作會復原。 | 關於指派,作業一律在覆寫模式中作業,該模式會根據上層與下層的關係將目前的值變更為新的值。 沒有任何工作因為原始值不相符而失敗。 關於刪除,如果原本為集合一部份的記錄遺失,則到失敗點為止的所有記錄會視同已完成。 使用者或系統管理員可重新執行失敗的工作,如此會重新計算工作和繼續,不會再有遺失記錄。 關於合併,如果存在遺失記錄問題,則會重試工作和執行,不會再有遺失記錄。 |
非同步模式
當級聯事務達到包含記錄的閾值時,將異步處理這些記錄。
選用 | Threshold |
---|---|
指派 | 1,000 筆記錄 |
删除 | 5,000 筆記錄 |
執行合併 | 1,000 筆記錄 |
追蹤非同步作業進度
系統管理員可以在設定區域中監控非同步作業的處理進度。
選取瀏覽區域中的環境。 然後選取您想要的環境。
選取 設定,展開 稽核和記錄,然後選取 系統工作。
串聯作業會顯示在系統作業檢視中。
若要僅檢視串聯作業,則在檢視選取器中,選取串聯作業。
串聯作業有下列任何一個狀態:
- Completed:級聯事務的所有批次都已成功完成。
- 正在進行:級聯更改正在進行中。
- Failed:多次重試后,某些級聯更改失敗。
Note
無法取消非同步串聯工作。 您必須等待工作完成,亦即狀態指出為已完成或失敗。
開啟串聯作業時會顯示:
特定交易已發生重試的次數。
建立與完成的日期和時間。
工作建立者。
與工作相關的任何訊息,例如失敗原因或例外狀況。
哪些串聯交易記錄可以非同步處理?
串聯式交易的指派、刪除和合併可以非同步處理。
Note
其他交易 (如共用/取消共用、彙總檢視,和重設父代) 的非同步處理,目前都在審查中。
疑難排解非同步級聯作業的問題
當同步級聯工作失敗時,它們會停止並復原所有變更,如此一來不會有任何記錄包括要求的變更。 這會是一段耗時的復原流程,因為原始嘗試和重試作業會再次從第一筆記錄開始。
如果發生失敗,非同步作業會重試多次。 大部份情況下,重試工作能夠成功,工作也可以繼續完成。 若干罕見情況下,重試無法解決問題。 當發生這種情況時,非同步工作會暫停讓系統管理員和使用者疑難排解問題並從暫停的時間點繼續工作。
造成級聯作業失敗的常見原因
處理級聯作業失敗的常見原因包括:
- 外掛程式例外狀況
- 安全性例外情況
外掛程式例外狀況
將外掛程式加入級聯作業的處理流程,以便在記錄變更時採取特定動作,例如傳送電子郵件或觸發其他記錄的不同更新。 這可由協力廠商提供或內部開發方式提供。 如果外掛程式產生例外情況,串聯作業會失敗。 根據例外情況造成的原因,重試可能會解決問題。 如果因為失敗而暫停非同步級聯作業,請驗證所有與該作業關聯的外掛程式,確定清楚它們並未產生例外情況。 一旦修復,工作即可繼續。
安全性例外情況
當執行級聯作業的使用者權限不足以變更一筆或多筆記錄或使用者遭到停用或從系統中移除,會發生安全性例外情況。
如果使用者仍然在系統內,請確認他們具備修改記錄所需的權限及執行特定動作的權限。 問題解決後,即可繼續工作。
如果使用者遭到停用或自系統移除,重新啟用或加入使用者會解決問題,工作也可繼續。 不過,如果使用者必須刪除或停用或不應具備動作或記錄的權限,具備適當權限的人員應該取消後再重新開始。
有關失敗作業的任何其他問題,請聯繫 Microsoft Support。 其他資訊:支援概觀
級聯合併期間疑難排解檔案刪除問題
如果因為工作執行期間檔案被刪除而導致級聯合併作業失敗,您可以跳過父代檢查工作。 這可讓您繼續合併,即使有人在背景執行工作時從集合刪除記錄亦然。 當您選擇合併記錄時,請在合併視窗底部清除 預設情況下啟用上層檢查功能。取消選取此選項忽略上層檢查 選項。
合併記錄範例
設想您已建立與連絡人有關聯的帳戶,此聯絡人與訂單有關聯。 您想要合併兩筆帳戶記錄。
如果工作順利執行,合併會將所有相關連絡人及其訂單指派給目標帳戶。
記錄合併期間若另一名使用者刪除相關連絡人記錄,但是訂單記錄仍與連絡人記錄相關,則合併工作將會失敗,因為下層記錄的上層記錄遺失。 如果您選擇記錄合併期間跳過上層檢查,則連絡人記錄遺失的訂單會合併到目標帳戶記錄。 但是不會將相關的連絡人記錄指派給目標帳戶,並且工作將會完成。
合併造成的鎖定,可以防止其他存取變更
串聯合併作業會授與附屬資料表的新負責人存取權。 若要達到這個目標,串聯合併作業會存取並變更需要鎖定的主體物件資料表。 如果合併作業包含許多記錄 (根據串聯關係),則此鎖定可能會長時間存在。 如果在執行合併時,某個作業嘗試授予或撤銷不相關記錄的存取權,這可能會造成錯誤。 如果發生這種情況,請在下班時嘗試執行合併,這樣就可以減少封鎖時間。