管理任务调度程序中的多线程

管理任务调度程序使用一个执行线程池,使其能够同时执行多项任务。

管理任务调度程序是多线程的。 管理任务调度程序开始执行计划任务,并等待任务完成。 任务执行由管理任务调度程序委托给一个子线程,子线程启动执行,等待执行完成,并收集执行状态。 每个子线程可用于任何类型的工作。

子线程的最大数量由启动任务的MAXTHD参数决定,默认值为99。 因此,管理任务调度程序最多可同时执行99个任务。 为了减少管理任务调度程序的内存使用量,请通过为MAXTHD参数指定一个较小的值来减少子线程的数量。 您可以在启动任务的JCL中指定此参数。 JCL与作业DSNTIJMV中定义的管理任务调度程序同名。

图 1。 管理任务调度程序中的多线程
开始图描述。 管理任务调度程序使用多线程技术,可同时执行多达99个不同的任务。 结束图描述。

MAXTHD参数的最低允许值为1,但该值不应低于您希望同时执行的任务的最大数量。 如果同时需要执行的任务数量超过了可用的子线程数量,那么部分任务将无法立即开始执行。 在任务计划执行的一分钟内,管理任务调度程序会尝试寻找可用的子线程。 因此,多个短任务可能会在同一子线程中连续执行,前提是它们的执行时间总和不超过这一分钟。

启动任务的参数不是位置参数。 将参数放在一个字符串中,用空格隔开。

如果任务在开始后一分钟后仍未开始执行,则跳过该任务,并将其上次执行状态设置为“未运行”。 操作员控制台上显示以下信息。

DSNA678I csect-name 同时执行的任务数 
由管理调度程序执行的 proc-name 超过了 max-threads

如果您收到此消息,请增加MAXTHD参数值并重新启动管理任务计划程序。