如果DBRM和加载模块的时间戳不匹配,会发生什么结果?
当COBOL-DB2源代码作为预编译阶段的输入时,我们将得到两个重要的组件——DBRM和修改后的源代码。
在修改后的源代码中,SQL语句被替换为COBOL调用,而DBRM包含COBOL-DB2程序中存在的所有SQL语句。预编译器在DBRM和修改后的源代码中都插入时间戳。
如果DBRM直接绑定到计划,则在执行COBOL-DB2程序时,系统会比较DBRM和加载模块的时间戳。如果时间戳不匹配,则调用该程序的JCL步骤将失败,并显示SQL错误代码-818。
在DBRM-包-计划组合的情况下,系统将比较包(从DBRM复制)和加载模块的时间戳。如果时间戳不匹配,则调用该程序的JCL步骤也将失败,并显示SQL错误代码-818。
进行时间戳比较是为了确保为处理选择正确的加载模块/包/DBRM版本和组合。根据IBM文档,-818 SQL错误代码指出
“加载模块中的预编译器生成的时间戳x与从DBRM z构建的绑定时间戳y不同”。
广告