管理 InterChange Server Express 系統中的失敗包括使用疑難排解資源來解決問題。 系統元件 (如連接器或協同作業) 或協力廠商元件 (如整合的應用程式) 可能會發生造成事件失敗的嚴重錯誤。
當錯誤造成事件失敗時, InterChange Server Express 系統的內建功能可讓您解決這些問題。 可將系統設定為萬一發生失敗時,暫停 InterChange Server Express 中的協同作業。 本節包含下列主題:
"InterChange Server Express 回復的策略"
當失敗發生時,若要避免傳送重複的事件到目標應用程式, 您可能想要防止回復自動重新提交所有傳送中狀態的服務呼叫。 在伺服器失敗前,您可以將非交易式協同作業配置為發生失敗及回復時,持續任何處於「傳送中」狀態的服務呼叫事件。 當 InterChange Server Express 回復時,服務呼叫事件仍留在「傳送中」狀態, 且您可以使用「流程管理程式」或「失敗的流程管理程式」,來檢查個別的失敗事件並控制何時 (或是否要) 重新提交。
若要將協同作業配置為將失敗的服務呼叫持續保留「傳送中」狀態, 請跳至「系統管理程式」,並在「協同作業一般內容」視窗中,選取服務呼叫持續傳送中狀態勾選框。
若 InterChange Server Express 在處理事件時失敗, 則目前在「進行中 (WIP)」佇列內的所有事件都必須回復或在伺服器重新啟動時進行處理。 因為記憶體需求,回復 WIP 事件可能會減緩甚或中止伺服器重新啟動。 InterChange Server Express 產品提供兩種功能:延遲回復及非同步回復;縮短了伺服器重新啟動所需的時間, 並且在回復所有事件之前讓其他工作可以使用伺服器。
流程控制以及將商業物件索引鍵儲存為 WIP 資料的一部份, 有助於延遲回復及非同步回復的效率。 這兩項功能均減少在 InterChange Server Express 回復期間所需的記憶體用量,因此可大幅縮短 InterChange Server Express 在回復期間重新啟動所需的時間量。
儲存商業物件索引鍵作為 WIP 資料的一部份,這表示在回復期間,商業物件沒有取消序列化即擷取商業物件索引鍵,因此不需要 MQ 或資料庫來回傳輸。流程控制是一項服務,可讓您配置全系統或元件層次佇列深度參數,以控制 InterChange Server Express 上的記憶體需求。如需配置流程控制的詳細資訊,請參閱配置全系統流程控制的步驟。
在延遲回復中,協同作業之 WIP 事件的回復會延遲到伺服器重新啟動後, 因此,可節省與那些事件相關的記憶體用量。
伺服器重新啟動之後,您可以利用手動方式重新提交事件。 請注意下列建議:
您可以設定協同作業物件的 RECOVERY_MODE 內容,以建立延遲回復。
RECOVERY_MODE 內容有兩種設定,會在發生伺服器失敗及重新啟動時執行下列動作:
在伺服器失敗前處於「工作中」狀態的事件會變更為「已延遲」狀態。 除非您以手動方式重新提交事件,否則不會回復此協同作業的任何事件。
會回復伺服器失敗前處於「工作中」狀態的事件。 處於「已延遲」狀態的事件會維持延遲,直到您重新提交事件為止。
預設值是「永遠」。
協同作業會回復狀態為「工作中」及它在伺服器啟動時所擁有的所有 WIP 事件。
協同作業會將 WIP 事件變更為「延遲」回復狀態。 稍後,您將需要使用「流程管理程式」或「失敗事件管理程式」來處理那些事件。 如需詳細資訊,請參閱處理失敗事件。
在 InterChange Server Express 完成啟動程序之前,不會等待協同作業及連接器回復; 而在 InterChange Server Express 啟動後,可以讓協同作業及連接器非同步回復。 如此一來,就可以在連接器及協同作業回復時,使用疑難排解工具,如「系統監視器」及「流程管理程式」。
InterChange Server Express 系統中的嚴重錯誤會造成執行時期環境發生問題。 下列其中一項狀況會產生 InterChange Server Express 系統中所定義的嚴重錯誤:
依預設,協同作業會在流程失敗後繼續處理後續的起始器。 然而,您可以配置在發生造成流程失敗的嚴重錯誤時,自動暫停協同作業的行為。 以此方式配置協同作業,可以避免在流程失敗後,因沒有處理其餘起始器而造成下一個流程因相同原因而失敗的可能性。 如果必須維護處理起始器的順序,則這是非常重要的。 若協同作業暫停,則會維護起始器抵達伺服器的次序。 此時,您可以修正嚴重的錯誤、解析失敗的流程,然後重新啟動協同作業。 若協同作業並未相依於與失敗流程相關聯的起始器, 您可以回復協同作業,並在稍後解析失敗的流程。 如需送出失敗事件的相關資訊,請參閱流程失敗。
若要將協同作業物件配置為在發生嚴重錯誤後暫停, 請在「內容」對話框的「協同作業一般內容」標籤中,選取發生嚴重錯誤時暫停勾選框。
若已設定此值,協同作業會在發生嚴重的錯誤時暫停, 且在發生下列狀況前會一直維持暫停狀態:
若您沒有將協同作業配置為發生嚴重的錯誤時暫停,則可能會發生下列的狀況:
兩個起始器 (E1 及 E2) 等待由協同作業處理。 E1 建立一個新客戶,且 E2 更新 E1。因為 E2 更新 E1, 所以必須在 E1 之前處理 E2。若在協同作業處理 E1 且 E1 發生嚴重的錯誤,則會造成失敗, 然後 E1 會移至重新提交佇列。 若您未選取發生嚴重的錯誤時暫停勾選框,則協同作業會嘗試處理 E2。E2 會失敗, 因為 E2 取決於 E1 的順利處理完成。
若協同作業內容 CONVERT_UPDATE 設定為 true, 則更新 E1 的 E2 會變成以更新資料建立新客戶的建立者。 現在 E1 中的資料變成舊的,且不應以手動方式送出,因為它會改寫由 E2 所遞送的資料。
執行中的協同作業假設連接器對其應用程式都具有作用中連線。 若連接器的應用程式變成無法使用,則連接器就無法輪詢應用程式以取得事件並滿足協同作業要求。
無法使用應用程式時,輪詢該應用程式以取得事件的連接器就會在每一次輪詢嘗試時產生錯誤。 若連接器判定與應用程式的連線已中斷,則連接器代理程式會終止並傳回狀態給連接器控制程式,並要求連接器控制程式也要終止。
如果協同作業在連接器已啟動但它的應用程式已失敗時,將要求傳送至連接器, 則該要求會將失敗狀態傳回給協同作業。 這只有在連接器內容 ControlStoreAndForwardMode 設定為 false 時才會發生。 協同作業失敗,記載下列其中一項訊息: 17050、17058、17059 或 17060。若您收到這類訊息,請檢查應用程式的狀態。
對 InterChange Server Express 系統而言,連接器代理程式的狀態非常重要, 因為它是應用程式事件的起點。連接器控制程式會維持其連接器代理程式的狀態, 並將此資訊傳遞至「系統管理程式」。
連接器控制程式會每隔 15 秒鐘,將回應要求傳送至連接器代理程式,以維護其連接器代理程式的狀態。
若連接器代理程式在連續三次檢查後都沒有回應,則會假設它的狀態為不明。 不明的連接器代理程式狀態可能表示連接器代理程式已失敗, 或如果連接器代理程式是透過網路安裝,則網路連線可能已失敗。
將連接器的 ControllerStoreAndForwardMode 內容設定為 true, 可以讓連接器控制程式在遞送擱置中事件前,先等待連接器代理程式啟動。 將此內容設定為 false,使連接器控制程式無法完成協同作業要求。 失敗的協同作業要求會移至重新提交佇列, 且可以使用「流程管理程式」重新提交。如需相關資訊,請參閱流程失敗。
在相關聯的協同作業中選取發生嚴重的錯誤時暫停勾選框後, 一旦收到連接器代理程式的不明狀態,連結至此連接器的協同作業就會暫停。 若已配置電子郵件連接器,則會記載錯誤訊息並傳送電子郵件。
當 InterChange Server Express 需要資料庫連線來執行其中一項服務,但發現使用中的連線數已達上限時, 伺服器會嘗試釋放閒置的連線。 若伺服器未順利完成,則連線嘗試失敗且 InterChange Server Express 會記載錯誤 5010: 在快取中找不到可用的連線。已達連線數目上限 max-connections-value。
若您設定 MAX_CONNECTIONS 參數以限制 InterChange Server Express 連線數, 則應監視錯誤 5010 訊息,因為連線失敗會造成不良後果。 例如,當 InterChange Server Express 無法取得連線以進行事件管理服務時, 它會停止執行。依預設,此限制會設定為無限的連線數。
連線失敗表示配置的連線數上限不足,無法符合執行時期工作負荷。 若無法在現行資料庫中配置更多的 InterChange Server Express 連線, 請考慮將它的工作負荷分割到多個資料庫中。
有時候,InterChange Server Express 系統或其相關聯的應用程式可能會失敗。 透過 InterChange Server Express 系統順利處理載有資料的流程非常重要, 所以在執行時期環境中,維護資料一致性是非常重要的工作。 系統失效 (如系統錯誤、資料錯誤及嚴重的錯誤) 會造成無法處理流程。 InterChange Server Express 系統的內建功能可以讓您處理系統失敗。
當 InterChange Server Express 系統正在處理流程時,系統配置、物件定義、應用程式特有或資料一致性錯誤,都會造成該流程失敗。InterChange Server Express 元件的不適當運作 (如商業物件對映失敗或連接器無法使用) 會產生系統錯誤,因而造成流程失敗。 資料不一致 (如協同作業執行期間,應用程式資料的隔離違規) 會產生資料錯誤,這也會造成流程失敗。
當連接器控制程式或協同作業正在處理流程時,如果發生錯誤,則該流程失敗且會移至事件重新提交佇列。 在該處,您可以選取下列選項:
如需解決失敗流程的指示,請參閱"處理失敗事件"。
系統及資料錯誤都會造成交易式協同作業失敗。 發生其中一個錯誤時,協同作業會嘗試回復。 若協同作業補償步驟的回復失敗,則協同作業會處於「未完成的」狀態。 若在執行時期回復期間發生錯誤,該協同作業會置於對應協同作業所擁有之失敗的交易式協同作業清單中。 失敗的交易式協同作業是補償步驟無法回復的協同作業。
交易式協同作業失敗之後,您就必須解決它。 您可以使用「流程管理程式」,來處理失敗的交易式協同作業。 如需解決失敗的交易式協同作業的指示,請參閱"處理失敗事件"。
失敗的交易式協同作業的預設行為是暫停。 您可以在協同作業範本中新增內容 PAUSE_ON_COMPENSATION_FAILURE, 並將設定從 TRUE (預設值) 變更為 FALSE, 以防止失敗的交易式協同作業暫停。
請執行下列動作,以新增內容並將設定變更為 FALSE: