IBM Support

IBM i 的作业结构

Technical Blog Post


Abstract

IBM i 的作业结构

Body

    上周, 笔者写了一篇关于分离假脱机文件的文章。在写那篇文章的时候,笔者开始讲述 IBM i 的作业结构。显然,作业结构的信息太多,不是那一篇博文可以容纳的,所以这周笔者继续回顾 IBM i 的作业结构。
    关于作业结构官方文档寥寥无几。在信息中心的“显示作业表命令(DSPJOBTBL)”和“创建作业结构应用程序接口”两个章节中可以从找到一些只言片语。 显示作业表命令的在线帮助信息(绿屏的帮助信息)大概包含了大部分关于作业结构的信息。
    系统上的每一个作业都有三个主要的部分, 笔者通常把它们称为作业结构:
  • 作业表中的一个作业条目
  • 永久的作业结构
  • 临时的作业结构
    作业表也被称为工作控制块表,它是系统用来追踪所有作业的最主要的数据结构。作业队列里的作业,活动的作业和已结束但保留脱机输出的作业都会占用作业表里的一个条目。作业表是有大小限制的,大概可以容纳485,000个条目;系统值最大作业数量(QMAXJOB)的上限即取决于此。像笔者上周描述的那样,运行接近最大数量的作业条目不是一个好的选择。系统的作业表应该保持一个合理的作业数量,通常情况下如果用户运行的作业数量基本稳定,系统会自动处理。
    当作业表的大小接近系统值QMAXJOB所设置的最大容量的时候,系统会激活内嵌的通知机制。默认情况下,当作业表容量超过90%的时候,系统会发送消息CPI1468(“系统作业表接近最大容量”)到消息队列QSYSOPR中(同时发送到消息队列QSYSMSG,如果该队列存在的话)。IBM提供了定制功能,用户可以定制这个百分比数值来激活消息的发送。5.4(SI29585)和6.1(SI30171)这两个系统补丁提供了这种定制的支持(这种定制的支持已经是7.1操作系统的一部分,不需要打补丁)。用户可以在QSYS中创建一个名称为QMAXJOBPCT的数据区域来控制这个激活发送警告信息的百分比。详细的指令请参考位于这篇博文结尾处的补丁说明书或者红皮书。
    如果系统中的作业数量超过以往常规的水平,并且有作业异常消息。用户可以去考虑压缩作业表。压缩作业表是初始程序载入时一个动作,并且可以运行很长一段时间。建议用户只有在必要的时候才去进行这样的操作。系统IPL的一个参数(压缩作业表)可以控制这一操作,默认值为*NONE, 也是被推荐的值。如果用户需要压缩作业表空间, 使用值*NEXT。 罗切斯特的支持中心有一些关于作业表和作业表压缩基础知识的文章,用户或许可以从中得到一些帮助。
    永久的作业结构,顾名思义--永久保存在系统中即使系统IPL。对于已结束但有输出的作业,作业结构被允许继续留存在系统中直到输出被删除或者被从作业中分离。永久的作业结构由三个主要的部分组成:
  1. 假脱机控制块
  2. 作业消息队列(针对作业日志消息)
  3. 本地数据区域
    临时作业结构是临时的,只跟活动的作业相关联,系统IPL时会删除。临时作业结构有很多部分,它们包括:
  1. 过程控制空间
  2. 针对作业的 qtemp 库
  3. 针对性能数据的作业性能数据空间
  4. ...和一些其他的结构
    永久的和临时的作业结构都是提前创建并由系统管理的。它们可以被循环利用。也就是说,一旦一个作业结束,临时的作业空间可以被另外一个作业使用。 一旦一个作业脱离系统(结束并且没有与之相关的假脱机文件),永久的作业结构也可以被另外一个作业使用。
    系统值QTOTJOB(全部作业)和QACTJOB(活动的作业)定义了全部永久作业结构和临时作业结构数量的初始值。系统值QADLTOTJ和QADLACTJ定义了当需要时有多少额外的永久和临时的作业结构可以被创建。
    如同笔者上周所写, 如果一个作业已经结束但是还有假脱机文件,这个作业会继续使用一个作业表条目和永久的作业结构。分离假脱机文件可以释放这些结构,其他作业才可以使用这些结构,同时减少系统中作业的数量。
    作业的作业日志可以是暂挂(作业日志暂挂)。关于作业日志暂挂笔者还没有写,但是有作业日志暂挂的作业会在作业表中占有一个条目,同时使用一个永久的作业结构。一个好的作业日志管理可以减少系统上作业的数量。关于作业日志管理笔者将来会写更多的文章。
    红皮书“管理IBM i作业和输出的最佳实践”里有更多关于这个主题的信息,还有系统控制作业结构管理有关系统值的推荐设置,作业表压缩需要考虑的一些事项,关于作业表报警补丁的更多信息,以及减少系统中作业数量的一些建议。 对于所有的IBM i管理员来说,笔者认为这本红皮书是必读的

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":""}]

UID

ibm11145962