在运行时显示loadlib

时间:2018-04-24 17:56:22

标签: cobol mainframe zos

目前在我的商店里,我们有一个标准的SYSOUT标题,显示了一堆有用的信息,例如:

  • 计划名称
  • 环境
  • 开始时间
  • 编制程序时

对我们来说非常有用的一件事是显示当前程序正在运行的加载库。我能够使用IBM内部函数WHEN-COMPILED获取编译日期时间,但是我找不到任何可以让我获得loadlib的内容。

接近这个的正确方法是什么?

2 个答案:

答案 0 :(得分:7)

从我在ibm-main listserv上看到的,这个问题没有一般解决方案可以在所有情况下使用。话虽如此,您的具体案例可能有一个解决方案,如Peter Relson在https://groups.google.com/d/msg/bit.listserv.ibm-main/-kkUfvDpprk/L5PHW_HOyxMJ所建议的那样:

模仿系统搜索顺序,并对相关成员的每个数据集执行BLDL。找到该成员后,您可能知道它是从哪个库加载的。我说"可能"因为可能该成员已加载,然后有人将其从库中删除。然后可能会将其添加到不同的库中。

如果您按照讨论主题进行操作,您将看到一位成员成功创建了一个Assembler模块,以执行我认为您正在询问的内容。也许他们愿意分享他们的代码,或者已经拥有CBTTAPE网站。

答案 1 :(得分:0)

您可能可以进行控制台转储并查看当前打开的加载模块。一旦有了,就可以将日期时间戳记与不同的loadlib进行比较,以找到loadlib。

1。在SDSF中, 控制台转储DUMP COMM =(循环转储)。这将返回ID。

2。输入命令: R id,JOBNAME =(您的工作名称),SDATA =(CSA,GRSQ,LPA,LSQA,NUC,PSA,RGN,SQA,SWA,TRT),END

3。将转储导入abend-aid

4。找到您感兴趣的模块

5。比较日期时间和不同的loadlibs