0

我有两个文件:第一个文件包含作业名和开始时间,如下所示:

ZPUDA13V STARTED - TIME=00.13.30
ZPUDM00V STARTED - TIME=03.26.54
ZPUDM01V STARTED - TIME=03.26.54
ZPUDM02V STARTED - TIME=03.26.54
ZPUDM03V STARTED - TIME=03.26.56

第二个文件包含 jobname 和 Endtime,如下所示:

ZPUDA13V ENDED - TIME=00.13.37
ZPUDM00V ENDED - TIME=03.27.38
ZPUDM01V ENDED - TIME=03.27.34
ZPUDM02V ENDED - TIME=03.27.29
ZPUDM03V ENDED - TIME=03.27.27

现在我正在尝试将这两个文件组合起来以获取像 JOBNAME START TIME ENDTIME 这样的报告。我使用 ICETOOL 来获取报告如果我得到 JOBNAME START TIME ,ENDTIME 是 SPACES 。如果我得到 Endtime ,JOBNAME START TIME 得到空格。请让我知道如何对 outrec 字段进行编码,因为我已经用几乎所有可能的方式编码以获得所需的字段。但我的输出仍然与我要求的不一样

4

2 回答 2

2

我不知道 ICETOOL 是什么(也不知道在 Google 中查找它的倾向 :-) 但这是一个经典的 COBOL 数据处理任务。

根据您的简单数据输入,算法将是:

for every record S in startfile:
    for every record E in endfile:
        if S.jobnname = E.jobname:
            ouput S.jobname S.time E.time
            next S
        endif
    endfor
endfor

但是,您可能需要考虑以下事实:

  • 白天可能会运行多个同名作业(文件中有多个条目)。
  • 多个同名作业可以同时运行。

您可以通过确保 E 记录紧随 S 记录(基于时间)来解决第一个问题。第二个问题很棘手。

如果您在 z/OS 上运行(根据作业名称,您可能是),您是否考虑过使用来自 SMF 记录的信息来进行此收集和分析。我很确定 SMF 30 型记录可以容纳您需要的一切。

假设这一个大型机问题,这是我工作中的一个朋友写的一本书的无耻插件,看看到底什么是大型机?大卫斯蒂芬斯 (ISBN-13 = 978-1409225355)。

于 2009-04-23T08:21:21.063 回答
0

我知道,我的决议来得太晚了,但可能对新来的 stackoverflow 有帮助

您可以利用JOINKEYS 使用DFSORTJCL。

JOINKEYS F1 FIELDS=(01,08,CH,A)
JOINKEYS F2 FIELDS=(01,08,CH,A)
REFORMAT FIELDS=(F1:01,33,F2:25,08)
SORT FIELDS=COPY
OUTREC FIELDS=(01,08,25,08,34,08)

outrec 将根据您的需要保存数据!

于 2011-11-17T17:33:32.560 回答