COBOL-DB2程式中重啟邏輯的實現
問題:一個COBOL-DB2程式從包含1000條記錄的輸入檔案獲取資料並將其插入到DB2表中。該程式在第432條記錄後失敗。您將如何實現重啟邏輯?
解決方案
可以透過設定提交頻率在COBOL-DB2程式中實現重啟邏輯。如果我們選擇100的提交頻率,則需要執行以下步驟
- 宣告一個用於計數器的變數,例如WS-COUNT。
- 放置一個迴圈,我們將在其中從檔案讀取記錄並將其插入資料庫。每次成功插入記錄時,將計數器WS-COUNT加1。
- 一旦WS-COUNT達到提交頻率100,我們將把最後插入的記錄鍵(鍵欄位)寫入一個單獨的輸出檔案,初始化WS-COUNT並觸發COMMIT語句。確保以I/O模式開啟此單獨的輸出檔案,以便我們每次都可以重寫記錄。
- 對每100條插入的記錄重複上述過程,即第100條、第200條、第300條等。
- 當最後一條記錄(即第1000條記錄)成功插入後,我們將清空輸出檔案。但是,如果程式由於任何原因追加,則輸出檔案將包含最後成功插入和提交的記錄。
- 在程式開始時,包含一個邏輯來檢查輸出檔案是空還是非空。如果檔案為空,則開始將被視為新的開始;如果檔案非空,則我們將將其視為程式在追加後重啟。
- 在重啟的情況下,輸出檔案已包含最後插入/提交的記錄。我們需要簡單地在迴圈中讀取輸入檔案,並將其鍵與輸出檔案進行比較。一旦鍵匹配,我們需要開始處理記錄並將它們插入資料庫。
廣告