我如何“调试”JCL?是否有任何方法显示错误或警告消息?当我提交我的工作时,输出是MAXCC=8。但是我如何得到为什么或者必须搜索“错误”所在的位置呢?
发布于 2014-11-13 13:58:39
您实际上没有JCL问题。
首先,要处理MAXCC,因为这会造成很多混乱。
对于有经验的人来说,MAXCC只存在于IDCAMS中(用于文件和目录操作的实用程序,定义VSAM文件和与这些类型的事物相关的东西)。
MAXCC不存在于JCL中,也不存在于您将从工作中收到的任何输出中。
MAXCC来自于作业卡上的NOTIFY语句。我们已经看到通知到达了这么多次,我们从未读过它,但它确实显示了MAXCC。这只是因为MAXCC只发生在IDCAMS中,并且是从通知中发出的,所以告诉我们它是什么会让很多人感到困惑。
CC位是条件代码。每个工作步骤将生成一个条件代码。通常CC是00,没有报告,04,有些情况,不一定严重,08,有些情况可能很严重,12,一些严重的情况和16,一些非常糟糕的事情。
这些只是传统的用途,但IBM和独立软件供应商(ISV)的大多数实用程序都坚持这一惯例。你偶尔会看到20个,也许吧。可能是在地震的时候。
例如,如果您编译一个COBOL程序,00将意味着编译器没有发现任何问题。--这并不意味着您的程序可以工作。它只是意味着语法是可以的。04表示有“警告”。您应该始终检查这些信息,因为有些警告实际上是有问题的。08是严重的错误,虽然生成了对象代码(除非通过编译器选项请求),但是尝试执行它是愚蠢的(除了乐趣)。12和16,编译器刚刚放弃,不会生成代码。
与linkeditor/binder有类似的层次结构。00已经准备好运行(但不能保证它会做任何接近你想要的事情),04是一个小问题,但你会想知道什么,08是一个问题,这可能意味着你将无法执行程序。
所有这一切的缺点是,如果您有MAXCC=08作为通知的结果,那么您的工作至少有一个步骤,其CC值为08。您可能有多个步骤与08,你也可能有一个(S)与00或04。
这是,与JCL无关。CC是由您正在运行的程序确定的,在每种情况下,CC的含义都可能在细节上有所不同(例如,编译器到linkeditor/binder ),尽管分级通常是相当的。
还可以从应用程序中设置CC。在COBOL中,您将使用返回代码“特殊寄存器”。
MOVE 04 TO RETURN-CODE在执行时,假设返回代码以后没有收到任何其他值,则会从该程序的执行中获得一个CC值为04。
您的本地站点标准将规定应用程序如何指示错误:很有可能您永远不会使用返回代码。
更简短的是,您有一个程序错误,您需要执行piet.t建议的操作。
您可能会有与生成CC的步骤相关联的错误消息。一种快速简便的方法来了解更多关于消息的信息(除了COBOL编译器消息之外,这些消息是不言自明的(!))是使用IBM LookAt web服务:http://www-03.ibm.com/systems/z/os/zos/bkserv/lookat/。
粘贴邮件,单击“转到”按钮。有时,您需要指定z/OS版本。作为初学者,你总是可以这样做的。
为了调试JCL本身,在可能的范围内,您可以在工作卡上使用TYPRUN=SCAN,或者您的站点可能有JCL检查器产品,尽管这些错误都是错误的,因为这些错误是在更新的几年后才更新的,因为它们试图了解控制卡对标准实用程序的影响(TYPRUN=SCAN忽略控制卡)。
对您的JCL是否实际工作的真正测试是将其抛入并运行,从而创建实际测试所编码内容的条件。没有任何产品可以检查您在JCL中创建的关系(通过对.CC,它又回来了)是正确的。
发布于 2014-11-13 11:48:21
您不能“调试”JCL,因为JCL中几乎没有实际执行的东西--它主要用于启动一系列程序并定义它们各自的环境。条件代码是由执行的程序产生的,因此要找到错误的来源:
IEF142I-message。发布于 2015-09-05 18:57:47
首先,您应该知道返回代码的方法。
了解这些之后,如果您通过返回代码发现了错误,那么在学习如何修复JCL的错误(而不是调试)之后,首先,您应该检查语法。作业名称的位置,添加typrun=scan,您可以检查您的语法。如果TYPRUN=SCAN不返回错误消息,则可以在SDSF中看到作业日志。
按S键查看详细信息。因为JCL包含一个或多个步骤,所以您必须检查哪个步骤发生error.ensure哪个步骤,您可以看到详细的信息。
在命令行中输入M到底部。它在区域上有很大的误差,显示了误差的详细信息。
https://stackoverflow.com/questions/26907980
复制相似问题