COBOL作业提交时打开输出数据集PRT-DONE报IGZ0035S错误
问题原因分析
你遇到的IGZ0035S打开失败错误,核心原因是JCL配置错误:
- COBOL代码中对
PRT-DONE使用的是OPEN OUTPUT模式,需要写入权限才能操作文件 - 但JCL中
PRTDONE对应的DD语句配置的是DISP=SHR,该参数表示以共享只读模式挂载数据集,系统会禁止所有写入操作,直接导致OPEN语句执行失败。PRT-LINE能正常运行属于偶发情况,同样的DISP=SHR配置也存在写入风险。
解决方案
按优先级依次尝试以下操作即可解决:
- 修改JCL中
PRTDONE和PRTLINE的DD语句参数,将DISP=SHR替换为DISP=OLD,匹配COBOL程序覆盖写入的需求;如果需要在原有文件内容后追加写入,可替换为DISP=MOD。
修改后的DD语句参考:
//PRTDONE DD DSN=Z12441.OUTPUT(PRTDONE),DISP=OLD,OUTLIM=15000 //PRTLINE DD DSN=Z12441.OUTPUT(PRTLINE),DISP=OLD,OUTLIM=15000
- 若修改DISP后仍报错,先检查你是否在ISPF等编辑界面打开了
PRTDONE或PRTLINE成员未关闭,关闭占用会话即可;再确认你的用户ID对Z12441.OUTPUT数据集有写入权限。 - 最后可验证
Z12441.OUTPUT数据集的属性,确认其记录长度LRECL=80、记录格式RECFM=F,和COBOL代码FD段的定义完全一致,避免属性不匹配导致的打开失败。
内容的提问来源于stack exchange,提问作者Sudip Akhuli
相关产品推荐
相关产品推荐

