Aldon对IBM i的影响分析:参考文件加字段后依赖对象疑问
关于Aldon依赖显示及确认SQL参考表无直接程序引用的问题
一、Aldon选项41展示的到底是什么?
Aldon的“处理依赖对象”(选项41)追踪的不只是程序运行时的直接调用依赖,它的范围要宽得多,会捕捉所有和目标对象相关的编译阶段、项目关联类的间接依赖:
- 绑定语言源文件被列为依赖,大概率是因为这些源文件在编译绑定过程中,读取了系统级的SQL表元数据,Aldon将这种编译过程中的间接关联纳入了依赖列表,哪怕源文件本身并没有直接使用你的参考表
- 那些你确认没使用该表的程序出现在列表里,可能是因为它们和你的参考表同属一个Aldon项目/变更集,或者Aldon扫描到了编译日志、系统交叉引用文件里的模糊关联记录,并非代表程序真的直接调用了该表
二、如何确认参考表未被任何程序直接使用?
在IBM i环境下,你可以通过以下几种方式验证:
- 用
DSPPGMREF检查单个程序:对可疑程序执行命令
查看输出文档里的“Referenced Files”部分,确认是否有你的参考表DSPPGMREF PGM(库名/程序名) OUTPUT(*PRINT) - 用
DSPFD查看表的引用对象:执行命令
在输出的“Object References”章节,会列出所有直接引用该表的程序、服务程序等对象DSPFD FILE(库名/参考表名) TYPE(*MBR) OUTPUT(*PRINT) - 用
WRKOBJLCK查看实时锁定:执行命令
如果该表被程序直接使用,会显示当前持有锁的对象;返回空列表则说明当前无运行时的直接引用WRKOBJLCK OBJ(库名/参考表名) OBJTYPE(*FILE) - 查询系统交叉引用视图
QSYS2.SYSPGMREF:运行以下SQL语句
若返回空结果,说明系统中没有程序直接引用该参考表SELECT PROGRAM_LIBRARY, PROGRAM_NAME FROM QSYS2.SYSPGMREF WHERE REFERENCED_OBJECT_LIBRARY = '你的库名' AND REFERENCED_OBJECT_NAME = '你的参考表名' AND REFERENCED_OBJECT_TYPE = '*FILE';
内容的提问来源于stack exchange,提问作者Theju112
相关产品推荐
相关产品推荐

