1

我已经在 ISPF 的 JCL 中提交了以下代码,并且在提交时显示“输入作业名称字符”。

在输入诸如“j”之类的字符时,它会在“j”后面加上 jobname.. 但这意味着什么?为什么它要求输入它,一旦作业提交成功,接下来会发生什么?我们可以用附加的作业名做什么?

代码如下:

//TRC186 JOB (TRC,TRC,TRC186,D2,DT99X),CLASS=A,MSGLEVEL=(1,1), 
// MSGCLASS=A,NOTIFY=&SYSUID 
//STEP1 EXEC PGM=IEFBR14 
//SYSPRT1 DD DSN=TRGXXX.TEST.COBOL,DISP=(NEW,CATLG,DELETE), 
// SPACE=(TRK,(1,2,1),RLSE), 
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800) 
//SYSOUT DD SYSOUT=* 
//

保存并提交时显示

ENTER JOBNAME CHARACTERS
J(我输入的随机字符)
状态是作业 TRC186J 提交成功。

4

3 回答 3

4

TRC186是您的 TSO 用户 ID。

当您登录到 TSO 时,会启动一个名为 TRC186 的 JOB。

事实证明,当使用 TSO SUBMIT 命令时(当您键入 SUBMIT 时会发生这种情况),您无法汇总与您的 TSO id 同名的 JOB。

您的站点可以安排同名的 JOB 只能连续运行。因此,与您的 TSO id 同名的工作只有在您注销后才会运行。

它可能记录在某处,是否说明原因是您可以调查自己的事情,如果您热衷的话。

我从来没有只用我的用户名提交过工作,所以不知道会发生这种情况。

使用 SUBMIT 时,您可以获得生成的 JOB 语句。如果您不小心提交了一个程序源,您将被问到与您相同的问题,因为生成的工作卡将以您的用户 ID 开头。在奇怪的场合做过。

于 2014-10-07T11:23:50.320 回答
4

这是 Bills Answer 的扩展,为感兴趣的人解释 zOS 登录过程。

当您登录到TSO时,在登录屏幕上,有一个proc(或过程)选项。该字段包含一个驻留在SYS1.PROCLIB中的JCL-Procedure。大多数用户将只被允许使用一个登录JCL 程序

示例 TSO 登录屏幕: 在此处输入图像描述

当您登录时,zOS 使用您的用户名提交一个作业,该作业调用您登录时指定的JCL 过程。如果您查看您的登录程序,您将看到

  • 运行 TSO 的步骤
  • SYSIN、SYSPRINT 等被分配给终端
  • 可能是要运行的初始 Rexx/Clist 程序
  • 其他的可能不多

可以在JCL-Procedure中分配各种文件/库(过去曾这样做过),但是:

  • 如果在JCL 过程中指定的数据集删除,您将收到JCL 错误并且用户无法登录
  • 在初始 Rexx 过程中分配数据集要安全得多

Jcl 登录过程可能看起来像(这个例子有点过时了):

//IKJACCNT PROC                                      
//IKJACCNT EXEC PGM=IKJEFT01,DYNAMNBR=500,PARM=ISPPDF
//SYSPROC  DD DISP=SHR,DSN=IBMUSER.LINDY.REXX     
//SYSIN    DD TERM=TS
//SYSPRINT DD TERM=TS,SYSOUT=*    

. 其中ISPPDF是驻留在 IBMUSER.LINDY.REXX 中的初始化 rexx 程序。


对于用户,您可以通过执行所需的任务然后将其注销来锁定登录,例如

/* Rexx locked down User initial program */

    /*  Do some allocations here */  

    'ispf panel(userMenu)' /* display a menu of there options to the user */

    'logoff'
于 2014-10-08T21:12:57.570 回答
1

虽然不是您问题的直接答案,但当我不小心遗漏了 JCL 中的第一个 / 时,我也遇到了这个错误。

    /TRC186J JOB (TRC,TRC,TRC186,D2,DT99X),CLASS=A,MSGLEVEL=(1,1),
    // MSGCLASS=A,NOTIFY=&SYSUID  

把 / 放回去解决了这个问题。

    //TRC186J JOB (TRC,TRC,TRC186,D2,DT99X),CLASS=A,MSGLEVEL=(1,1),
    // MSGCLASS=A,NOTIFY=&SYSUID  
于 2014-10-30T22:04:53.383 回答