管理作业队列

提交作业后,批作业管理器 (CMNGJOB) 取得控制权并控制执行。

CMNGJOB 尝试启动提交的作业。为了控制该流程,系统提供了一个或多个作业队列用于执行作业。为了避免批处理器超载,每个队列对允许并行执行的作业数具有最大限制。在作业队列。打开 (MNS300) 中进行此设置。

由 CJBCMD 中的作业控制记录确定队列。没有特定队列分配的作业放置在默认队列 QBATCH 中。

提交的作业按优先级顺序执行。首先执行所有优先级为 1 的作业,然后是所有优先级为 2 的作业,以此类推。

示例:

队列 A 有 100 个优先级为 1 的作业和 70 个优先级为 2 的作业。队列 B 有 50 个优先级为 1 的作业。

执行顺序为:

  1. 队列 A,优先级 1(100 个作业)
  2. 队列 B,优先级 1(50 个作业)
  3. 队列 A,优先级 2(70 个作业)

不同作业类型的作业队列和子系统

为不同类型的作业创建单独的队列是一个好主意,即一个特殊队列用于具有长执行时间的作业,另一用于中等和另一用于快速运行作业的队列。还可以为给定的作业组分配特定队列。不同的队列与最大作业数的适当限制相结合是提高系统利用率和可用性的强大而又简单的方法。

每个子系统的最大作业数

实际可启动的作业数由每个子系统的最大作业数设置控制。这些设置在 M3.properties 文件和 M3 脚本文件中定义。

  • boot.server.maxsubs=0

    服务器可以启动的子系统的最大数量(0 - 无限制

  • boot.supervisor.balanceload

    应使用 M3 子系统之间的负载平衡吗?值 0 = False,1 = True。

  • boot.subs.maxjobs

    可以同时在 M3 子系统中启动多少作业?此属性可用于在不同 M3 服务器中运行的不同子系统之间实现负载平衡。值 0 = 无限制

注意

此设置不再使用,必须设置为零。

boot.subs.maxjobs=0

在 M3 脚本文件中进行设置

示例

如果在 SUB:B 子系统中允许 20 个作业,并且分别最多有 8、3 和 1 个并行作业的三个作业队列连接到该子系统,则该子系统上的负载最多为 8 +3 +1 = 12 个作业。

如果在 SUB:B 子系统中允许 10 个作业,并且分别最多有 8、3 和 1 个并行作业的三个作业队列连接到该子系统,则该子系统上的负载最多为 8 +3 +1 = 12 个作业。超过允许数量 2 个。此处可以使用 M3 子系统之间的负载平衡,具体根据 M3.properties 文件中的设置。

准备要放入作业队列中的作业

按照以下步骤准备要放入作业队列(在文件中)的作业,而不是直接批量运行。

必须在子系统中设置和启动作业。详细信息请参阅M3 Business Engine 自动启动作业描述

定义作业队列

  1. 启动作业队列。打开 (MNS300)。为作业队列指定 ID
  2. 打开 E 屏幕。填写在此作业队列中同时运行的最大活动作业数

    按“下一步”。

将作业放入作业队列

启动作业。连接作业队列 (MNS310)。在“作业”字段中指定作业。“用户/组”字段表示对数据库作业启动的控制。空白用户表示所有用户。

  1. 打开 E 屏幕。选择应放置此作业的作业队列。为作业选择优先级

    选择是否希望用户确认作业开始以及要使用的确认类型。选择是否应将作业历史记录保存在作业历史记录文件中。保存的作业显示在 (MNS320) 中。单击“下一步”。