如果 DB2 程式在不同的日期進行編譯和繫結,執行結果是什麼?
問題:DB2 程式 PROGA 被修改和編譯,但在 3 天后才進行繫結。如果我們在第 4 天執行此程式會發生什麼?
解決方案
預編譯器將當前時間戳插入修改後的原始碼和 DBRM 中。對於修改後的原始碼,此時間戳傳遞到載入模組,對於 DBRM,時間戳傳遞到包中。在程式執行時,會比較載入模組和包的時間戳。此比較用於確保執行包和載入模組的正確版本。
根據給定的場景,編譯已完成,繫結在 3 天后完成。時間戳在預編譯步驟中插入,預編譯發生在編譯步驟之前。因此,相同的時戳被插入到 DBRM 和載入模組中,這不會導致任何時間戳不匹配問題。程式將無錯誤執行。
繫結對時間戳沒有影響,因此即使繫結在其他日期完成,DBRM 和修改後的原始碼也具有預編譯時間戳,並且相同的時戳將分別傳遞到包和載入模組。這在程式執行期間不會造成任何問題。
廣告