死鎖是一種狀況,其中兩個以上程序無法繼續,因為每一個程序都在等待其他程序繼續執行。 死鎖是協同作業中事件隔離提供並行控制所造成的一種不良副作用。 如需事件隔離的詳細資訊, 請參閱 Collaboration Development Guide。
圖 77 說明因下列事件順序,而造成兩個作用中協同作業群組間發生的死鎖:
此時,所有協同作業都無法向前移動。
本節包含下列主題:
依預設,當您啟動 InterChange Server Express 時,InterChange Server Express 系統會自動執行死鎖偵測。 然而,在執行死鎖偵測時,若協同作業群組含有許多協同作業物件,則可以延遲 InterChange Server Express 的啟動, 因為 InterChange Server Express 必須遍訪群組中的所有協同作業物件以判定群組中是否有死鎖。 即使沒有任何死鎖存在,這也會造成啟動緩慢
您可以將 InterChange Server Express 系統配置為不執行死鎖偵測。 如果您這麼做,系統將不先檢查死鎖就啟動協同作業群組。 這可能可以讓 InterChange Server Express 的啟動更快速。 然而,若沒有執行死鎖偵測且有死鎖存在,則稍後傳送至協同作業的事件可能會失敗。
「系統管理程式」不提供設定 DEADLOCK_DETECTOR_CHECK 配置參數的能力。相反的,若要設定此配置參數, 您必須編輯InterchangeSystem.cfg 檔案並變更此檔案中的參數值。
請執行下列步驟,以配置 InterChange Server Express 系統來偵測死鎖:
<tns:name>DEADLOCK_DETECTOR_CHECK</tns:name>
<tns:value xml:space="preserve">false</tns:name>
請執行下列其中一項步驟,以檢查群組協同作業死鎖:
即會出現顯示下列訊息的視窗:
下列診斷測試是在此協同作業上執行:
此訊息後接著下列其中一項結果:
錯誤 11135:啟動協同作業 collaboration_name群組可能會造成一個以上現有的協同作業群組發生死鎖,因此不容許。
此錯誤只是警告潛伏的死鎖狀況。在錯誤 11135 之前的參考訊息可識別可能進入死鎖的作用中協同作業群組。
請執行下列步驟,以修正協同作業死鎖:
您可以防止協同作業死鎖,方法是在「系統管理程式」中之伺服器配置畫面的「資料庫」標籤上,配置死鎖重試設定。
請執行下列步驟,以配置死鎖重試機制: