START
在指定时间启动任务。
条件: INVREQ , IOERR , ISCINVREQ , REGERR , NOTAUTH , RESUNAVAIL , SYSIDERR , TERMIDERR , TRANSIDERR 和 USERIDERR
描述
START 在指定时间在本地或远程系统上启动任务。 该时间由 INTERVAL , AFTER , AT 或 TIME 指定。 请参阅 时间间隔控制中有关到期时间的部分。
启动任务可以将数据传递到启动任务。 启动任务还可以指定要由启动任务用作其主体设施的终端。
缺省值为 INTERVAL ($TAG1) ,但对于 C ,缺省值为 AFTER HOURS (0) MINUTES (0) SECONDS (0)。
CEDF 是 START 命令的例外,作为 TRANSID 名称无效。 因此,请勿尝试以此方式启动 CEDF。
EXEC CICS START TIME(123000)此命令在周一 05:00 或 07:00 发出,将在同一天的 12:30 到期。
EXEC CICS START TIME(020000)由于指定的时间在先前的 6 小时内,因此在周一 05:00 或 07:00 发出的此命令将立即到期。
有关更多信息,请参阅 到期时间。
您可以使用 RTRANSID , RTERMID 和 QUEUE 选项将更多数据传递到启动式任务。 这些选项可以包含任意数据值,其含义取决于启动任务和启动任务中指定的内容。 使用它们的一种可能方法是在以下情况下。 一个任务可以启动第二个任务,向其传递事务名称和要在第二个任务启动第三个任务时使用的终端名称。 第一个任务还可以传递要由第二个任务访问的队列的名称。
如果您正在使用 IPIC 连接,那么 FROM 数据区的最大长度为 32,500 字节。 此限制允许使用 32,500 字节的 FROM 数据区和头空间。
指定了 TERMID 的 START 不会传播源数据记录 (ODR) ,因此任务始终在新的源点启动。
- 指定的时间间隔必须已过去,或者必须达到指定的到期时间。 有关更多信息,请参阅 时间间隔控制。 当要在远程系统上运行事务时,请指定 INTERVAL 或 AFTER 选项,以避免在本地系统和远程系统处于不同时区时出现复杂情况。
- 如果指定 TERMID 选项,那么指定的终端必须存在且可用。 如果指定的终端在时间间隔到期时不存在,那么将废弃 START。
- 如果指定 PROTECT 选项,那么启动任务必须采用成功的同步点。 此选项与系统表的扩展相结合,可减少由于启动任务失败而导致丢失或重复数据的风险。
- 如果要运行的事务位于远程系统上,那么必须将数据的格式声明为与本地系统上的数据相同。 使用 RDO 选项 DATASTREAM 和 RECORDFORMAT。 对于 CICS ® 到 CICS ,这些选项始终是缺省值。 对于 CICS-to-IMS/VS ,请确保指定正确的值。
运行用于在本地系统中命名事务的 START 命令将取消由启动任务运行的任何未完成 POST 命令。
可以通过在 RDO TRANSACTION 资源定义上指定 LOCALQ 选项来对 START 命令进行排队,如 TRANSACTION 属性中所述。
按时间间隔控制传递数据
如果要通过时间间隔控制 (通过使用 FROM 选项) 传递数据,那么它将在临时存储器队列上排队。 使用 REQID 选项来指定要使用的临时存储器队列的名称。 此标识可能可恢复 (在临时存储器中) 或不可恢复。 有关如何定义可恢复临时存储器队列的更多信息,请参阅 TSMODEL 资源。
如果还指定了 PROTECT 选项,那么必须将 REQID 选项标识的临时存储器队列定义为可恢复。 如果未指定 PROTECT 选项,请不要将临时存储器队列定义为可恢复。 如果不遵循这些规则,那么可能会发生不可预测的结果。 请参阅 恢复 START 请求。
如果指定 FROM 而不是 REQID 选项,那么将使用缺省 "DF" 前缀临时存储器队列。 与先前列示的相同规则适用; 仅当您将 "DF" 前缀临时存储器队列定义为可恢复时,才指定 PROTECT 选项。
如果任务的 FROM 数据未被 RETRIEVE 读取,那么从具有相同 REQID 的 START 本身启动的任务发出的带有 REQID 的 START 命令将返回 AEIQ 异常终止 (IOERR 条件)。
如果一个或多个具有相同 REQID 的 START 命令由同一 CICS 系统中的一个或多个任务发出,那么您也会收到此错误。 CICS TS 区域始终使用 IOERR 拒绝任何指定重复 REQID 的 START 命令。
没有数据的已启动任务在没有设施地址的情况下运行。 使用 ICE 的设施地址运行数据的已启动任务,直到检索数据为止。
如果使用 ICRX ,那么将在重新启动后保存该 ICRX。 如果随后取消了启动请求,那么将删除 ICRX。
错误检查和性能注意事项
NOCHECK 选项指定启动事务不期望任何响应 (对 START 命令的运行)。 对于指定要在本地系统上启动的任务的 START 命令,将返回错误条件; 对于要在远程系统上启动的任务,不会返回错误条件。 NOCHECK 选项允许 CICS 在必须将 START 命令交付到远程系统时提高性能; 如果 START 命令的交付在建立与远程系统的链接之前排队,那么这也是先决条件。
在没有终端的情况下启动任务
EXEC CICS START
TRANSID('TRNL')
INTERVAL(10000)
REQID('NONGL')
⋮
EXEC CICS START
TRANSID('TRNL')
AFTER HOURS(1)
REQID('NONGL')
⋮
使用终端启动任务,但没有数据
如果多个 START 命令 (每个命令指定相同的事务和终端) 同时或在终端可用之前到期,那么仅启动一个任务。
EXEC CICS START
TRANSID('TRN1')
TIME(185000)
TERMID('STA5')
⋮
EXEC CICS START
TRANSID('TRN1')
AT HOURS(18) MINUTES(50)
TERMID('STA5')
⋮
使用终端和数据启动任务
如果指定了一个或多个 FROM , RTRANSID , RTERMID 和 QUEUE 选项,那么会将数据传递到启动式任务。 此类数据由启动式任务使用 RETRIEVE 命令进行访问。
通过发出多个 START 命令 (每个命令指定相同的事务和终端) ,可以将许多数据记录传递到新任务。
运行第一个 START 命令最终会启动新任务,并允许它检索该命令上指定的数据。 新任务还能够检索在新任务结束之前到期的后续 START 命令上指定的数据。 如果事务已定义为可重新启动 (通过将事务定义为使用 RDO 选项 RESTART (YES)) ,并且在新任务结束之前未检索到此类数据,那么将启动另一个新任务,并且可以检索未完成的数据。
如果事务异常终止并且未定义为可重新启动,那么不会启动任何新任务,并且会废弃数据。
EXEC CICS START
TRANSID('TRN2')
TIME(173000)
TERMID('STA3')
REQID(DATAREC)
FROM(DATAFLD)
LENGTH(100)
⋮
EXEC CICS START
TRANSID('TRN2')
AT HOURS(17) MINUTES(30)
TERMID('STA3')
REQID(DATAREC)
FROM(DATAFLD)
LENGTH(100)
⋮
使用 C 语言时,请使用 AFTER/AT HOURS , MINUTES 和 SECONDS 选项,因为 C 不提供压缩十进制数据类型。 您可以使用 INTERVAL 或 TIME ,但如果指定的值 不是 整数常量,那么应用程序负责确保传递给 CICS 的值采用压缩十进制格式。
START 命令启动的路由事务
可以将部分 START 命令启动的某些事务动态路由到远程区域。 有关动态事务路由的常规信息以及有关 START 命令启动的哪些事务适合动态路由的特定信息,请参阅 START 命令调用的路由事务。
对于延迟的 START 请求,如果要启动的用户事务符合动态路由的条件,那么将创建时间间隔控制元素 (ICE) 并将其保留在事务标识为 CDFS 的请求区域中。 当 ICE 到期时, CDFS 将运行并启动用户事务。 将根据事务定义的状态和此时的综合系统来路由请求。 确保正确配置了 CDFS 的安全性。
没有异常条件的 START 故障
- 当 CICS 尝试创建任务时,事务或其初始程序不可用时。
- 当 START 指定终端和到期时间时,并且在到期时间未定义该终端 (并且 XICTENF 或 XALTENF 出口无法找到该终端)。
- 当 START 指定在 CICS 尝试创建任务时未定义 (并且 XICTENF 或 XALTENF 出口无法找到) 的终端时。
- 对于延迟的 START,当系统事务 CDFS 的安全性检查失败时。
这些风险是由于 START 命令的运行与任务创建时间之间的延迟所导致的。 即使在 START 是即时的情况下, CICS 也会延迟创建该任务,原因可能是必需的终端不可用,也可能是由于其他系统约束。
您可以使用 INQUIRE 命令来确保在 START 命令时启用事务和程序,但在创建任务之前可能会变为不可用。
如果请求的终端在 START 时不存在,那么您将获得 TERMIDERR 条件,但如果稍后将其删除,就像用户注销时一样,您的 START 请求将随终端定义一起废弃。
应用程序上下文传播
应用程序上下文传播是将应用程序上下文数据从发出 START 命令的任务传递到运行已启动事务的任务的过程。 该数据用于监视和测量应用程序资源使用情况。 初始和当前应用程序上下文都在应用程序之间传递。 应用程序上下文数据 未 使用以下 START 命令进行传播:
- 从瞬时数据 (TD) 触发器生成的本地 EXEC CICS START 命令。
- 从事件处理 (EP) 适配器接收到本地异步 EXEC CICS START 命令。
- 用于指定 TERMID 或 USERID 参数值的 EXEC CICS START 命令。
有关更多信息,请参阅 应用程序上下文。
选项
- AFTER
- 指定启动新任务之前要经过的时间间隔。以两种方式输入 AFTER 和 AT 下的时间:
- 至少两个 HOURS ($TAG1-99) , MINUTES ($TAG2-59) 和 SECONDS (0-59) 的组合。 HOURS (1) SECONDS (3) 表示 1 小时 3 秒 (分钟缺省为零)。
- 作为 HOURS ($TAG1-99) , MINUTES ($TAG2-5999) 或 SECONDS (0-359999) 之一。 HOURS (1) 表示 1 小时。 MINUTES (62) 表示 1 小时 2 分钟。 SECONDS (3723) 表示 1 小时, 2 分钟和 3 秒。
- AT
- 指定要启动新任务的时间。 有关输入时间的方法,请参阅 AFTER 选项。
- FMH
- 指定要传递到启动式任务的用户数据包含函数管理头。 FMH 对于 LUTYPE2 终端无效。
- FROM (数据区)
- 指定要为将来某个时间启动的任务存储的数据。
- HOURS (data-value)
- 指定 0-99 范围内的全字二进制值。 HOURS 是 AFTER 和 AT 选项的子选项。 有关其用途和含义,请参阅 AFTER 选项。
- INTERVAL (hhmmss)
- 将到期时间指定为从发出 START 命令的时间起经过的时间间隔。 mm 和 ss 都在 0-59 范围内。 运行命令时, CICS 会将指定的时间添加到当前时钟时间,以计算到期时间。
- LENGTH (data-value)
- 指定半字二进制数据值,该值是要为新任务存储的数据的长度。 请参阅 CICS 命令中的 LENGTH 选项 ,以获取有关设置 LENGTH 选项时的限制的指导信息。
- MINUTES (data-value)
- 将用于 AFTER 或 AT 的分钟数指定为全字二进制值。 如果同时指定了 HOURS 或 SECONDS ,那么该值必须在范围 $TAG1 到 59 之间,否则必须在范围 $TAG2 到 5999 之间。 MINUTES 是 AFTER 和 AT 选项的子选项。 有关其用途和含义,请参阅 AFTER 选项。
- NoCheck
- 指定对于远程系统, CICS 通过提供较少的错误检查和稍少的功能来提高 START 命令的性能。 有关更多信息,请参阅 提高系统间 START 请求的性能
- 保护
- 指定在启动任务获取同步点之前不启动新任务。 如果在执行同步点之前启动任务异常终止,那么将取消启动新任务的请求。 如果还指定了 REQID 选项,那么请求标识必须是定义为可恢复到临时存储器的名称。 如果启动的事务是远程事务,那么 PROTECT 指定在本地事务成功完成同步点之前不得对其进行调度。 有关带有远程事务的 PROTECT 选项的更多信息,请参阅 提高系统间 START 请求的性能
- QUEUE (名称)
- 指定传递到启动式任务的名称 (1-8 个字符)。 如果此名称表示临时存储器队列,那么该队列必须是启动式任务的本地队列。 未传递队列的内容。
如果还在指定 REQID ,请确保 REQID 的名称与 QUEUE 的名称不同。
- REQID (名称)
- 指定必须唯一的名称 (1-8 字符) 以标识命令。 当要为另一个任务提供取消未到期命令的功能时,可以使用此选项。
如果省略此选项,那么 CICS 将在 EXEC 接口块的 EIBREQID 字段中生成唯一请求标识,除非您指定 NOCHECK 选项,在这种情况下,字段 EIBREQID 设置为空,并且以后无法用于取消 START 命令。
如果包含任何数据选项 (FROM , RTERMID , RTRANSID 或 QUEUE) ,那么将使用指定的 REQID 名称 (或 CICS 生成的名称) 作为标识将数据存储在 TS 队列中。 因此标识的队列记录必须是处理 START 命令的 CICS 系统的本地记录。 在由 SYSID 选项标识的系统上处理 START 命令,如果省略 SYSID 选项,那么在与 TRANSID 选项关联的系统上处理 START 命令。
- RTERMID (名称)
- 指定在 START 命令的 TRANSID 选项中指定的事务启动时可检索的值 (1-4 字符) ,例如终端名称。
检索时,可以在后续 START 命令的 TERMID 选项中使用该值。
- RTRANSID (名称)
- 指定在 START 命令的 TRANSID 选项中指定的事务启动时可检索的值 (1-4 字符) ,例如事务名称。
检索时,可以在后续 START 命令的 TRANSID 选项中使用该值。
- SECONDS (data-value)
- 当同时指定 HOURS 或 MINUTES 时,指定 $TAG1-59 范围内的全字二进制值,当 SECONDS 是唯一指定的选项时,指定 0-359999 范围内的全字二进制值。 SECONDS 是 AFTER 和 AT 选项的子选项。 有关其用途和含义,请参阅 AFTER 选项。
- SYSID (systemname)
- 指定将请求定向到的系统的名称。
- TERMID (名称)
- 指定与要作为 START 命令的结果启动的事务相关联的主体设施的符号标识 (1-4 字母数字字符)。 此主体设施可以是终端 (通常情况下) 或 APPC 会话。 在指定 APPC 会话的情况下,将使用连接 (或方式集) 名称来代替终端标识。 当要启动的事务必须与终端通信时,需要此选项; 否则应省略此选项。
将终端标识定义为在事务启动生效时运行 START 命令的系统上的本地或远程终端。
在收集的先前中继段数据中使用 TERMID 选项。 有关将 TERMID 选项与先前中继段数据配合使用的更多信息,请参阅 先前中继段数据特征。
如果您正在使用身份传播,请勿使用 TERMID 选项。
- 时间 (hhmmss)
- 指定启动新任务的时间。
使用 C 语言时,请使用 AFTER/AT HOURS , MINUTES 和 SECONDS 选项,因为 C 不提供压缩十进制数据类型。 您可以使用 TIME ,但如果指定的值 不是 整数常量,那么应用程序将负责确保传递到 CICS 的值采用压缩十进制格式。
- TRANSID (名称)
- 指定要由作为 START 命令结果启动的任务运行的事务的符号标识 (1-4 字符)。
如果指定 SYSID 并命名远程系统,那么无论该事务是否定义为远程,都将假定该事务位于该系统上。 否则,将使用事务资源定义来确定事务是在本地系统上还是在远程系统上。
TRANSID 选项用于收集的先前中继段数据。 有关更多信息,请参阅 先前中继段数据特征。
- USERID (data-value)
- 如果已启动事务未与终端关联 (即,未指定 TERMID 时) ,那么指定要在其权限下运行已启动事务的用户标识。 此用户标识称为 userid1。
如果同时省略 TERMID 和 USERID ,那么 CICS 将改为使用用于运行发出 START 命令的事务的用户标识。 此用户标识称为 userid2。
通过使用 userid1 或 userid2, CICS 可确保启动的事务始终以有效用户标识运行,该用户标识必须有权使用启动的事务所引用的所有资源。
CICS 针对 userid2 执行代理安全性检查,以验证此用户是否有权使用 userid1。 如果未授权 userid2 ,那么 CICS 会返回 NOTAUTH 条件。
如果您正在使用身份传播,并且任务具有与其安全上下文相关联的分布式用户标识,那么不会将此信息传播到使用 USERID 选项启动的任务。
条件
- 16 INVREQ
- RESP2 值:
- 4
- 在 HOURS 中为 AFTER 或 AT 选项指定的值或为 INTERVAL 指定的 hh 值超出范围。
- 5
- MINUTES 中为 AFTER 或 AT 选项指定的值,或为 INTERVAL 指定的 mm 值超出范围。
- 6
- 为 AFTER 或 AT 选项指定的秒数值或为 INTERVAL 指定的 ss 值超出范围。
- 17 日
- START 操作已启动的事务未启用关闭,并且 CICS 区域正在关闭。
- 18 日
- 指定了 USERID ,但未初始化 CICS 外部安全性管理器接口。
- 200
- START 命令由分布式程序链接 (DPL) 服务器程序发出,并使用 TERMID 选项,该选项的值与系统间会话的标识相匹配。 其中 TERMID 等于 EIBTRMID (即,发出任务的主要设施是会话而不是终端) , START TERMID 不在 DPL 服务器程序允许的命令子集中。
在下列任何情况下也会发生 INVREQ (未设置RESP2 ):- START 命令对于 CICS 处理无效。
- INTERVAL 选项中指定的值超出范围。
缺省操作: 异常结束任务。
- 17 IOERR
- 在下列任何情况下发生:
- START 操作期间发生输入/输出错误。
- 当 DFHTEMP 数据集已满时, START 操作尝试写入临时存储器队列。
- START 操作使用存在的 REQID 名称。 仅当还使用了 FROM 选项时,才会发生此情况。
缺省操作: 异常结束任务。
- 54 ISCINVREQ
- 当远程系统指示不符合已知条件的故障时发生。
缺省操作: 异常结束任务。
- 22 LENGERR
- 在 LENGTH 不大于零时发生。
缺省操作: 异常结束任务。
- 70 NOTAUTH
- RESP2 值:
- 7
- 对 TRANSID (name)进行资源安全性检查失败。
- 9
- 对 USERID (name)进行代理用户安全性检查失败。
发出该命令的事务的安全访问功能不允许使用 USERID 选项中指定的值执行该命令。 事务的安全访问能力已由外部安全管理器根据用户安全性建立,并且是否已使用链路安全性或执行诊断设施 (EDF)。
缺省操作: 异常结束任务。
- 121 RESUNAVAIL
- RESP2 值:
- 121
- 要启动的事务所需的资源在目标区域上不可用。 RESUNAVAIL 条件仅适用于动态路由的非终端相关 EXEC CICS START 请求。
如果 XICERES 全局用户出口程序指示目标区域上的必需资源不可用,那么将在目标区域中的镜像运行的 EXEC CICS START 命令上返回 RESUNAVAIL。 不会将其返回到应用程序。
缺省操作: 针对路由选择失败重新调用分布式路由程序。
- 53 个 SYSIDERR
- 当 SYSID 选项指定既不是本地系统也不是远程系统 (通过定义 CONNECTION 使 CICS 知道) 的名称时发生。 当到远程系统的链接已知但不可用时,也会发生 SYSIDERR。以下错误由 RESP2 值指示:
- 1
- 动态路由程序拒绝了 START 请求。
缺省操作: 异常结束任务。
- 11 个 TERMIDERR
- 如果未向 CICS 定义 START 命令中的终端标识,那么会发生此情况。 如果指定不是 ISC 或 MRO 连接的连接的名称,那么可以生成此条件。
缺省操作: 异常结束任务。
- 28 TRANSIDERR
- 当未向 CICS 定义 START 命令中指定的事务标识时发生。
- 69 个用户标识
- RESP2 值:
- 8
- 外部安全性管理器不知道指定的 USERID。
- 10
- 外部安全性管理器处于以下状态: CICS 无法确定指定的 USERID 是否有效。
- 19 位
- 指定的 USERID 已撤销。
缺省操作: 异常结束任务。
