Lenor老师 jesse老师 candy老师
 
 
所在位置:首页 >> cobol技术 >> JCL与COBOL编程常遇到的错误
 
JCL与COBOL编程常遇到的错误

如果大家看了上面的介绍已经明白什么叫COBOL了,那么JCL呢?
我从百度百科里查到它的定义:

JCL 又称作业控制语言。是用于描述MVS,OS/390和VSE操作系统上描述作业的语言。描述操作系统对全部作业分配计算机的运行时间和资源。作业是分步骤进行的,在编制程序时需要加入特殊语句使作业能够分步进行。作业是运行在后台的,不需要用户交互,用户的请求初始化作业。通常前台作业的优先级高于后台作业。
IBM曾经把一系列的JCL语句比作餐馆中的菜单。所有的菜对应作业,在厨房厨师将客户的需要分解为不同的菜,这可以看作是作业中的步骤。当所有作业的步骤完成时,饭也就是好了。
JCL语句主要指定必须访问的输入数据集(文件),输入文件被设置为创建或更新状态,JCL语言还需要指定运行所需要的资源。一个作业的JCL语句也作为数据集存储,并由用户开始它的执行。

言归正传,让我们重新进入mainframe吧!!!
最有价值的经验就是------错误!开始做主机开发,最大的困惑就是遇到错误时,要花过偿的时间来调试,浪费了宝贵的时间,这是我做主机开发三周来,一些错误调试的心得,希望对初学都有所帮肋!
JCL的几种错误:
1:JCL ERROR,屏幕右上红色触目惊心的JCL ERROR,这个错误一般是JCL语句的语法,格式错误,如关键字错误,参数位置错误等
2:MAXCC=8或12,这里的错误一般是由蓝紫色的那些数据流里面的语句写错了或者根本是这些语句里面有逻辑错误引起的,在报这个错误以后,按照上述方法进入sdsf,但这次进入的是第三个以后的SYSPRINT等,错误信息一般在这个里面,比如MISSING PARENTHESIS什么的。
3:报ABENDED错误,如果报了这个错误的话,错误的原因可能有多种,具体需要进入SDSF中查看,这大多是跟你写的程序逻辑错误有关,如程序里文件定义的记录长度和JCL中文件记录长度不一致;程序找不到输入,输出文件等
IEFC605I UNIDENTIFIED OPERATION FIELD
第六行漏了个逗号,因此就找不到操作区域了,看见了这个警告可以检查一下逗号 2 IEFC605I UNIDENTIFIED OPERATION FIELD
3 IEFC019I MISPLACED DD STATEMENT
第二行漏了PGM关键字,连“PGM”字段都漏了,肯定DD语句位置错误啦。
IGD17001I DUPLICATE DATA SET NAME ON VOLUME USER02
数据集有重名,意思就是要创建的数据集已经存在,这个错误常常是因为自己的疏忽导致的。。。
? 01.49.36 JOB09455 \HASP165 ST143P ENDED AT N1 - ABENDED S806 U0000 CN(INTERNAL)
REQUESTED MODULE IEBCORY NOT FOUND
IEBCOPY写错了一个字母,出现挂起现象时问题一般很难解决,一般是很搞的问题,就比如,IEBCOPY写成了IEBCORY,多像哈。。
? CONTROL STATEMENT ERROR
控制语句错误
? 5 IEFC006I POSITIONAL PARAMETERS MUST BE SPECIFIED BEFORE KEYWORD PARAME
DD语句中漏了“DD”字段
? SPACE NOT SPECIFIED FOR ALLOCATION OF DATA SET
漏了DISP语句
关键字错误
? IEB344I WARNING- INVALID STATEMENT LABEL
UTILITY的控制语句关键字不能顶格写
? IEFC630I UNIDENTIFIED×××××
某些关键字或字段拼写错了,导致不认识。。
? 碰到过两次I/O ERROR,这个一般是语病错误,而不是语句的错误了,一次是在IEBPTPCH中数据集类型和里面的MEMBER指定错了,还有一次是指定数据集的RECFM类型出了问题。。
? 还有一个经常碰见的错误是提示关键字参数应该放在位置参数之前,这时候可以检查一下关键字参数里面有没有漏“=”号,或者“,”号
? 如果实在查不出什么地方错误的话,可以检查一下数据集的类型是不是定义错了,一般来说定义的是FB型的,有一次在做SORT功能的时候,因为类型定义成了VB,结果怎么都不能正常排序。。。
因此呢,推荐大家以后建DATASET的时候直接用JCL语句建,这样建出来的都是一摸一样的,而且多快好省,就不会出现定义错误数据集的类型的事情了。。。。
下面贴一下我用来建输入,输出文件
顺序文件:
//RUNJOB JOB ,,CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//DEFINE EXEC PGM=IEFBR14
//DEFFILE DD DSN=FNSAP13.ETQD304,DISP=(,CATLG),
// DCB=(RECFM=FB,LRECL=68,DSORG=PS),
// VOL=SER=BDMTS1,SPACE=(CYL,1)

 
收藏到Google书签 收藏到QQ书签 Yahoo书签 收藏到百度搜藏 收藏到奇客diglog
主办单位:大型机官方培训部
地址: 北京市海淀区中关村南大街48号B座
Copyright2004-2008 by www.daxingji.net. All rights reserved. 京ICP备09083121号