You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Aldon对IBM i的影响分析:参考文件加字段后依赖对象疑问

关于Aldon依赖显示及确认SQL参考表无直接程序引用的问题

一、Aldon选项41展示的到底是什么?

Aldon的“处理依赖对象”(选项41)追踪的不只是程序运行时的直接调用依赖,它的范围要宽得多,会捕捉所有和目标对象相关的编译阶段、项目关联类的间接依赖:

  • 绑定语言源文件被列为依赖,大概率是因为这些源文件在编译绑定过程中,读取了系统级的SQL表元数据,Aldon将这种编译过程中的间接关联纳入了依赖列表,哪怕源文件本身并没有直接使用你的参考表
  • 那些你确认没使用该表的程序出现在列表里,可能是因为它们和你的参考表同属一个Aldon项目/变更集,或者Aldon扫描到了编译日志、系统交叉引用文件里的模糊关联记录,并非代表程序真的直接调用了该表

二、如何确认参考表未被任何程序直接使用?

在IBM i环境下,你可以通过以下几种方式验证:

  • 用DSPPGMREF检查单个程序:对可疑程序执行命令
    DSPPGMREF PGM(库名/程序名) OUTPUT(*PRINT)
    
    查看输出文档里的“Referenced Files”部分,确认是否有你的参考表
  • 用DSPFD查看表的引用对象:执行命令
    DSPFD FILE(库名/参考表名) TYPE(*MBR) OUTPUT(*PRINT)
    
    在输出的“Object References”章节,会列出所有直接引用该表的程序、服务程序等对象
  • 用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:36:29