TRANSACTIONTIMEOUT
有效對象
Replicat
說明
使用 TRANSACTIONTIMEOUT 參數可防止未確認的 Replicat 目標交易在目標表格上保留鎖定,且不必要使用資料庫資源。您可以變更此參數的值,讓 Replicat 能夠在現有的應用程式逾時以及目標的其他資料庫需求中運作。
TRANSACTIONTIMEOUT 會限制 Replicat 在未收到該交易中最後一個來源交易的交易結束記錄時,保留目標交易開啟的時間長度。依照預設,Replicat 會將多個來源交易分組為一個目標交易以提升效能,但不會確認部分來源交易,且會無限期等待該最後一筆記錄。Replicat 參數 GROUPTRANSOPS 可控制群組目標交易的大小下限。範圍是 1-604800。
下列事件的持續時間可能長到足以觸發 TRANSACTIONTIMEOUT:
-
網路問題可防止歷程檔資料傳遞至目標系統。
-
在任何系統上執行磁碟空間不足,無法寫入歷程檔資料。
-
收集器異常中止 (罕見事件)。
-
擷取中止或終止交易的寫入記錄。
-
Extract 資料汲取中止或終止。
-
來源系統發生故障,例如電源中斷或系統當機。
TRANSACTIONTIMEOUT 的運作方式
在一般作業期間,Replicat 會記住目前目標交易中第一個來源交易開頭的歷程檔位置,如果交易必須中止和重試。啟用 TRANSACTIONTIMEOUT 時,Replicat 也會儲存目前來源交易第一筆記錄的位置,如果觸發 TRANSACTIONTIMEOUT,則會使用該位置作為邏輯檔案結尾 (EOF)。
觸發時,TRANSACTIONTIMEOUT 會執行下列動作:
-
中止目前的目標交易
-
重新定位至中止目標交易中第一個來源交易的開頭。
-
處理直到邏輯檔案結尾位置 (最後一個、未完成的來源異動開始) 的所有歷程檔記錄。
-
確認邏輯 EOF 點的交易。
-
請先等待新的歷程檔資料,再處理其他歷程檔記錄。
對於相同的來源交易,可以多次觸發 TRANSACTIONTIMEOUT,視造成歷程檔資料到達速度緩慢而觸發 TRANSACTIONTIMEOUT 的問題性質而定。
偵測異動時間條件
若要判斷 Replicat 是否在啟用 TRANSACTIONTIMEOUT 時等待其餘來源交易,請使用 STATUS 選項發出 SEND REPLICAT 命令。下列狀態表示此條件:
Performing transaction timeout recovery
Waiting for data at logical EOF after transaction timeout recovery
預設
已停用
語法
TRANSACTIONTIMEOUT <n> <units>
<n>
指定等待間隔的整數。有效值從 1 秒到 1 週 (7 天)。此值應大於在主要 Extract 和任何相關資料汲取中,使用 EOFDELAY 參數設定的值。
<units>
下列其中一項:S, SEC, SECS, SECOND, SECONDS, MIN, MINS, MINUTE, MINUTES, HOUR, HOURS, DAY, DAYS。
範例
TRANSACTIONTIMEOUT 5 S