每天在大型机上运行一些作业,我需要自动获取其他jcl或rexx的开始和结束时间,是否可能?
答案 0 :(得分:3)
是的,这是可能的。正如@SaggingRufus所示,您的作业调度程序(CA JMR,Control-M等)可能会提供此功能 - 请与您的技术人员交谈并询问。
可以通过Rexx interface to SDSF执行此操作,然后安排作业执行Rexx代码。执行Rexx代码的ID必须有权查看要为其检索信息的作业。还有Java interface to SDSF。
您可以使用的另一种机制是SMF,但除非您还拥有MXG,否则这不会是一条轻松的道路。
与您的技术人员交谈并解释您想要什么以及为什么,他们可能已经解决了这个问题。
答案 1 :(得分:2)
执行所需操作的标准方法是使用SMF 30条记录。您可以在REXX中执行此操作,但如果您不了解SMF记录的格式,则会有点棘手。您的网站可能有一个像SAS这样的工具,这将使它变得微不足道。
还有其他几种子类型记录,例如作业步骤终止增量。 SMF 30s包含您可能想要了解的有关批处理作业的所有内容。如果您只想知道作业已经过了多少时间或CPU时间,那么只需阅读子类型5并查看性能部分。
如果你真的必须使用REXX,那么有些产品可以使用REXX API访问SMF数据,例如IBM Transaction Analysis Workbench for z/OS。免责声明:我是该产品的开发者之一。
答案 2 :(得分:1)
如果您的网站使用CA JMR
,此解决方案将有效//SCANJMR JOB (11111),'JMRSCAN',
// CLASS=T,MSGCLASS=X,MSGLEVEL=(1,1),
//SCAN EXEC JMRSCAN
//JMRPRINT DD DSN=&&OUTDATASET,
// DISP=(NEW,CATLG,),
// UNIT=SYSDA,SPACE=(TRK,(20,20)),
// DCB=(LRECL=133,RECFM=FB,BLKSIZE=6118)
//JMRIN DD *
FUNCTION LIST=ALL JOBMASK=* SDATE=16/11/16
EDATE=16/11/16
/*
然后您需要做的就是计算此文件中有多少条记录。
如果没有,其他作业调度程序可能会提供类似的功能。
答案 3 :(得分:0)
另一种方法是向运行存储日期的Rexx程序的作业添加一个简单的步骤。
这些步骤甚至不需要在实际的生产工作中,您可以将它们安排为生产作业作为后续作业然后作为前任的作业。
Rexx具有内置时间和日期功能,其使用示例如下: -
rc = audit('OACG22X Invoked by' userid() 'at' time() 'on' date()'.')
您可以使用DIS的MOD或通过读取来更新报告数据,然后使用添加的新记录重写它。 EXECIO 是您正在使用的rexx功能。
当你运行报告时,这将清除数据或者循环GDG(创建一个空的+1)。
以下Rexx与可以使用的内容非常接近(虽然非常夸张,即您基本上对 EXECIO 和 out.1 (使用当前日期和时间),(这只在输出中保留1条记录)): -
/* REXX - CYCLE TAPES WITHIN A POOL FOR EMHA800W BATCH JOB */
/*--------------------------------------------------------------------*/
/* read in data from tape cycle dataset */
/*--------------------------------------------------------------------*/
"EXECIO 1 DISKR CYCTAPE (stem in. FINIS"
LastTape = SUBSTR(in.1,1,6)
If LastTape = "XXXXXX" Then NewTape = "SAP001"
Else Do
TapeNum = SUBSTR(in.1,5,2)
If DATATYPE(TapeNum,"N") Then Do
NewNum = TapeNum + 1
If Newnum > 4 Then NewNum = 1
RetCde = NewNum
Newnum = RIGHT(Newnum,2,"0")
NewTape = "SAP0"||NewNum
End
Else RetCde = 100
End
out.1 = NewTape||" "||DATE("E")||" "||TIME("N")
"EXECIO 1 DISKW CYCTAPEO (stem out. FINIS"
Say "Return Code will be "||RetCde
Return RetCde
通过批处理运行Rexx详见How can I run my Rexx program as a batch job?。
我没有使用过Zeke,但是从一个非常简短的搜索中可以看出你可以检查 EMR (事件主记录)。