UPDATE TRAN 命令
使用 UPDATE TRAN 命令可更新事务资源。
子节:
环境
下表列出了可以从中发出 UPDATE TRAN 命令和关键字的环境 (DB/DC , DBCTL 和 DCCTL)。
| 命令/关键字 | DB/DC | DBCTL | DCCTL |
|---|---|---|---|
| 更新 TRAN | X | X | |
| 类 | X | X | |
| 名称 | X | X | |
| 选项 | X | X | |
| 范围 | X | X | |
| 集合 | X | X | |
| START | X | X | |
| STOP | X | X |
语法
关键字
以下关键字对 UPDATE TRAN 命令有效:
- 类 ()
- 选择与要更新的一个或多个指定类相关联的事务。
- 名称 (tranname)
- 指定事务的 1-8 字符名称。 可以为 tranname指定通配符。 tranname 是可重复的参数。 如果指定的 NAME 参数是特定或通配符名称,那么将针对处理的所有资源名称返回命令响应。 对于 NAME (*) 命令响应,仅针对导致错误的资源名称返回。 可以使用 NAME (*) 指定 OPTION (ALLRSP) 以获取所处理的所有资源名称的命令响应。
- 选项 ()
- 指定要执行的其他功能。 以下是其他函数的列表:
- 友协
- 对于 START (SCHD) 或 STOP (SCHD) ,友输入有效。
当与 START (SCHD) 配合使用时, OPTION (一起使用) 指示事务与 IMS 具有本地亲缘关系,并且应该执行通知请求以注册本地亲缘关系队列中的兴趣。 在共享队列 (SQ) 环境中,通过使用由附加了本地 IMSID 或 RSENAME (XRF) 的事务名称组成的队列名称,将与本地 IMS 具有亲缘关系的事务的消息放在耦合设施上。 除了正常事务注册外,还会执行由附加了本地 IMSID 或 RSENAME (XRF) 的事务名称组成的队列名称的本地亲缘关系注册,以及由附加了空白的事务名称组成的队列名称的注册。 当您在队列中注册兴趣时,会在将消息放入队列以进行处理时通知 IMS™ 。
当与 STOP (SCHD) 一起使用时, OPTION (一起使用) 指示 IMS 应该注销事务的本地亲缘关系队列中的兴趣。
在使用 OPTION (友协) 启动事务后,将设置本地亲缘关系状态 (友协) 并保持为该事务设置,直到 IMS 冷启动为止。 QUERY TRAN NAME (tranname) SHOW (ALL) 命令显示了友协 IN 的状态。 如果执行了后续的 UPDATE TRAN NAME (tranname) STOP (SCHD) 或 UPDATE TRAN NAME (tranname) START (SCHD) 命令,那么该命令将切换在正常和本地亲缘关系事务队列中的相关注册,而无论是否指定了 OPTION (API)。
在 IMS 冷启动时,不会维护本地亲缘关系状态。 在冷启动处理结束时,当共享队列通知完成时, IMS 仅注册对正常事务队列的兴趣。 它不会在本地亲缘关系队列中注册兴趣。 因此,无法调度本地亲缘关系队列上的消息。 UPDATE TRAN START (SCHD) OPTION (友元) 命令通过执行通知请求以在 IMSID 的本地亲缘关系队列中注册兴趣来更正此情况。
如果 DFSMSCE0 用户消息路由出口用于为共享队列环境中的输入事务消息设置本地亲缘关系,并且 IMS 控制区域已停止,并且随后冷启动,那么您需要执行 UPDATE TRAN NAME (tranname) START (SCHD) OPTION (API) 命令,以便执行通知请求以在 IMSID 的本地亲缘关系队列中注册兴趣。
- ALLRSP
- 指示将针对命令上处理的所有资源返回响应行。 缺省操作是仅针对导致错误的资源返回响应行。 它仅对 NAME (*) 有效。 对于其他 NAME 值,将忽略 ALLRSP。
- SCOPE ()
- 指定 IMS 应用更改的位置。 缺省值为 ALL。
- ALL
- 更改将应用于命令路由到的活动 IMS 系统。 如果指定要维护全局区域状态,那么还会通过更新 RM 所维护的值来全局应用更改。 RM 状态仅由命令主 IMS更新。 如果未维护全局区域状态,那么命令操作与 SCOPE (ACTIVE) 命令相同。
- 活动
- 更改将应用于命令路由到的活动 IMS 系统。
- SET ()
- 指定要更改的属性值。 在共享事务时定义事务的所有系统中,事务必须具有相同的特征。 这些特征包括:
- 非会话式或会话式
- SPA 大小 (如果是会话式)
- 单段或多段消息
- 非查询或查询
- 可恢复或不可恢复
- AOCMD
- 指定要更改的 AOI 选项,指示事务是可以发出 type-1 AOI CMD 调用还是发出 type-2 AOI ICMD 调用。 如果 AOCMD 定义为 CMD , TRAN 或 Y ,并且 AOI1 执行参数定义为 AOI1=N,那么不会执行授权检查,并且允许事务发出 CMD 和 ICMD 调用。
- CMD
- 指示允许事务发出 type-1 AOI CMD 调用和 type-2 AOI ICMD 调用。 如果 AOI1 执行参数定义为 C , R 或 A ,那么授权检查基于哪些事务可以发出特定命令。 在这种情况下,需要以用户身份将命令 (或命令的前三个字符) 定义到 RACF® 或等效产品。 必须将 type-1 AOI 事务定义为 TIMS 类下的概要文件,并且对于每个事务,必须指定它可以发出的命令。 定义 AOCMD (CMD) 要求您创建的用户标识少于为 AOCMD (TRAN) 定义创建的用户标识。 但是,定义 AOCMD (CMD) 要求您创建或修改更多资源概要文件。
- N
- 指示不允许事务发出 type-1 AOI CMD 调用。 允许事务发出 type-2 AOI ICMD 调用。
- 事务
- 指示允许事务发出 type-1 AOI CMD 调用和 type-2 AOI ICMD 调用。 如果 AOI1 执行参数定义为 C , R 或 A ,那么将使用事务代码进行授权。 第一次授权检查会导致正在构建的存取器环境元素 (ACEE)。 保留此环境以供将来的授权检查使用。 需要以用户身份将 type-1 AOI 事务定义到 RACF 或等效产品。 然后,将在 RACF PERMIT 语句上为允许它们从 type-1 AOI 事务发出的每个命令指定这些事务。 将 AOI 事务指定为 RACF 的用户可能会与已定义到 RACF的用户的名称相冲突。 如果发生此情况,那么需要更改事务名称或现有用户名。
- Y
- 指示允许事务发出 type-1 AOI CMD 调用和 type-2 AOI ICMD 调用。 如果 AOI1 执行参数定义为 C , R 或 A ,那么将使用用户标识或程序名进行授权。 对于某些环境,如果尚未执行 "获取唯一" 调用,那么将使用程序名进行授权。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
- 类
指定事务类,这是用于选择要调度的事务的属性。 如果存在可用于该类的消息处理区域,那么可以调度事务。 该值可以是从 1 到 999 的数字。 此值不得超过 IMSCTRL 宏的 MAXCLAS= 关键字上给定的值 (按规范或缺省值)。
使用与用于非 CPI-C 事务的消息类不同的消息类定义 CPI-C 事务。 IMS 将事务类中的所有 CPI-C 事务作为优先级零进行处理。
- CMTMODE
指定何时落实数据库更新和非快速输出消息。 此操作数会影响紧急重新启动。
- MULT
- 仅当应用程序正常终止时,当已达到处理限制计数时,或者对于伪 WFI 从属区域,当队列上没有更多消息时,才会落实数据库更新和非快速输出消息。 例如,如果在程序的单个调度期间处理了五个事务,那么仅当第五个事务完成并且程序终止时,才会落实所有五个事务。 在落实事务之前,不会释放已更新的数据库记录的锁定,也不会将非快速输出消息排队等待输出。 如果应用程序在落实其消息之前异常结束,那么紧急重新启动会使落实作用域内处理的所有消息都重新排队,并使它们可用于重新处理。
如果事务导致应用程序调用外部子系统(如 DB2® ),则外部子系统提供的 "提交验证 "出口可确定是否支持 CMTMODE(MULT)。 请参阅 "提交验证 "退出例程下的文档。
- SNGL
- 当应用程序完成处理每个事务时,将落实数据库更新和非快速输出消息。 IMS 在应用程序请求下一条消息 (向 IO-PCB 发出 GU) 或应用程序终止时调用落实处理。 如果应用程序在落实其消息之前异常结束,那么紧急重新启动会使落实作用域内处理的所有消息都重新排队,并使它们可用于重新处理。 如果应用程序在落实其消息之前异常结束,那么紧急重新启动会使异常结束之前正在处理的消息重新排队,并使其可用于重新处理。
关键字组合规则包括以下内容:
- CONV (Y) 和 CMTMODE (MULT) 互斥。
- WFI (Y) 和 CMTMODE (MULT) 互斥。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
- CONV
- 指定对话选项。
- N
- 事务不是会话式事务。
- Y
- 事务是会话式事务。 事务消息以会话式程序为目标。 对话式程序处理由几个步骤组成的事务。 会话式程序从终端接收消息,应答终端,但将事务中的数据保存在暂存区 (SPA) 中。 当终端的人员输入更多数据时,程序将其保存在 SPA 中的最后一条消息中的数据,因此可以继续处理请求,而无需终端的人员再次输入数据。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- CONV (Y) 需要 SPASZ 和 SPATRUNC。
- CMTMODE (MULT) 与 CONV (Y) 互斥。
- FP (E) 和 CONV (Y) 互斥。
- RECOVER (N) 和 CONV (Y) 互斥。
- SPASZ 和 CONV (N) 互斥。
- SPATRUNC 和 CONV (N) 互斥。
- CPRI
- 为事务的当前优先级指定新值。 BMP 事务不允许使用 CPRI 关键字,因为 BMP 事务应该始终具有优先级 0。 新的 CPRI 值将在下次调度事务时生效。 有效的 CPRI 参数是从 0 到 14 的数字值。
- DCLWA
- 指定日志预写选项。
- N
- IMS 不应执行日志预写。 如果不需要输入消息完整性以及输出消息与关联数据库更新的一致性,请指定 N。 DCLWA 不适用于响应方式或快速路径输入处理,并且在 IMS 执行期间将被忽略。
- Y
- IMS 应该对可恢复的非响应输入消息和事务输出消息执行日志预写。 这将确保以下内容:
- 在 IMS 确认接收输入之前,将使非响应输入事务在 IMS 故障之间可恢复。
- 在 IMS 发送关联的输出应答消息之前,可恢复数据库更改。
- 在将关联的输入应答或输出应答发送到终端之前,日志缓冲区中的信息将写入 IMS 日志。
为所有 VTAM ® 终端类型定义 DCLWA (Y)。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
- 路线
- 指定 MSC 定向路由选项。
- N
- 未向处理事务的应用程序通知发起该事务的系统。 源 LTERM 的名称放在 I/O PCB 中。
- Y
- 如果在多个 IMS 系统配置中使用 MSC 定向路由,那么将向处理事务的应用程序通知发起该事务的系统。 对应于返回到始发系统的逻辑路径的 MSNAME 放置在 I/O PCB 中。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
- 编辑 RTN
指定在程序接收消息之前编辑消息的事务输入编辑例程的 1-to 8 字符名称。 此名称必须以字母字符开头。 在执行 IMS 系统定义阶段 2 之前,指定的编辑例程 (装入模块) 必须位于 USERLIB 数据集中。 此例程不能与系统定义 TYPE EDIT = 参数定义的例程相同。
当事务路由到 IMS时, EDITRTN 用于快速路径潜在事务。
对于来自 LU 6.2 设备的输入,将调用用户编辑出口例程 DFSLUEE0 ,而不是 EDIT 中指定的事务输入编辑例程。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
要从事务定义中除去编辑例程名称,请指定 EDITRTN (0)。
FP (E) 和 EDITRTN 互斥。
- 编辑
- 指定 "编辑为大写" 选项。
- N
- 输入数据未转换为大写。 它可以由从终端输入的大写和小写字符组成。
- Y
输入数据将在呈现给处理程序之前转换为大写。 如果 FP (E) 或 FP (P) ,那么将在向编辑/路由出口例程显示之前将事务转换为大写。
为 VTAM 终端指定 EDITUC (Y) 可防止传输嵌入式设备控制字符。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
- EMHBSZ
指定运行快速路径事务所需的 EMH 缓冲区大小。 这将覆盖 EMHL 执行参数。 如果未指定 EMHBSZ ,那么将使用 EMHL 执行参数值。 该值可以是从 0 到 30 720 的数字。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- EMHBSZ> 0 需要定义快速路径。
- FP (N) 和 EMHBSZ> 0 互斥。
- 执行时间
- 指定 IMS 可用于取消输入事务的耗用时间 (以秒计)。 将事务提交到 IMS后,由于事务已停止或潜在的系统速度变慢,可能会延迟该事务进行处理。 在这种情况下,用户或客户机应用程序可能会在处理事务之前超时。 当 IMS 最终调度和处理事务时,不再需要响应消息。 通过为事务指定耗用时间, IMS 可以将输入事务标记为已到期,以便系统不会浪费 CPU 周期来处理不需要的事务。
该值可以是数字 (以秒计) ,范围从 0 到 65535。 缺省值为 0 ,这表示没有为此事务设置到期时间。 事务到期属性受所有 IMS TM 接口支持。
限制: 对于快速路径事务, IMS 会话式事务,程序间切换事务和 APPC 同步事务,不会在 GU 时间执行事务到期检查。 - FP
- 指定 "快速路径" 选项。
- E
- 事务仅作为快速路径进行处理。 程序必须定义为 "快速路径" 互斥。
- N
- 事务不是快速路径处理的候选者。 必须将程序定义为非快速路径。 当指定 FP (N) 时,任何使用快速路径资源或命令的尝试都可能产生不可预测的结果。
- P
该事务是快速路径处理的潜在候选者。 快速路径-潜在事务必须能够在两个应用程序下运行: 快速路径独占应用程序和非快速路径应用程序。 应定义可将此事务路由至的快速路径互斥应用程序。 快速路径-潜在事务必须由用户编辑/路由出口处理,以确定事务是否实际由 IMS 快速路径处理。 如果要由 IMS 快速路径进行处理,那么编辑/路由出口例程会将事务与路由代码相关联。 此路由代码标识要处理事务的快速路径应用程序。
不能将 PGM () 定义的程序定义为快速路径互斥。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
为了将事务从 FP (E) 更新为 FP (N) 或从 FP (N) 更新为 FP (E) ,还必须更新事务以指向具有相同 FP () 属性的程序。 如果不更新程序属性,那么该命令将由于程序冲突而失败。
如果正在将快速路径互斥 FP (E) 事务更新为快速路径潜在 FP (P) 或非快速路径 FP (N) 事务,并且未指定限制计数,那么将设置限制计数 65535。
关键字组合规则包括以下内容:
- CONV (Y) 和 FP (E) 互斥。
- EDITRTN 和 FP (E) 互斥。
- EMHBSZ>0 与 FP (N) 互斥。
- FP (E) 和 FP (P) 要求定义快速路径。
- MSGTYPE (MULTSEG) 和 FP (E) 互斥。
- MSGTYPE (MULTSEG) 和 FP (P) 互斥。
- MSNAME 和 FP (E) 互斥。
- RECOVER (N) 和 FP (E) 互斥。
- RECOVER (N) 和 FP (P) 互斥。
- RESP (N) 和 FP (E) 互斥。
- RESP (N) 和 FP (P) 互斥。
- SIDL 与 FP (E) 互斥。
- SIDR 和 FP (E) 互斥。
- INQ
- 指定查询选项。
- N
- 这不是查询事务。
- Y
这是一个查询事务。 如果指定了 INQ (Y) ,那么您还可以指定在 IMS 紧急重新启动期间还是使用 RECOVER () 参数正常重新启动期间应该恢复此事务。
应仅对那些在输入时不会导致任何数据库发生更改的事务指定此项。 在计划处理定义为 INQ (Y) 的事务时,禁止程序向数据库发出 ISRT , DLET 或 REPL 调用。
当使用 INQ (Y) 定义 IMS 事务时,应用程序无法执行 SQL INSERT , DELETE 或 UPDATE。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- RECOVER (N) 和 INQ (N) 互斥。
- LCT
- 指定限制计数。 这是与排队等待处理的输入事务数相比,确定是否将正常或限制优先级值分配给此事务的数字。 该值可以是从 1 到 65535 的数字。 缺省值为 65535。
对于 BMP 处理的事务,将忽略限制计数值。
在共享队列环境中,将忽略限制计数值。
限制计数值不适用于 FP 互斥事务,将被忽略。
- LOCK
- 指定将开启或关闭 LOCK 状态。 SET (LOCK (ON | OFF)) 不能与任何其他 SET 属性一起指定。 可以使用 START 或 STOP 关键字指定 SET (LOCK (ON | OFF))。
- ON
- 锁定事务并阻止对其进行调度。 不能为快速路径互斥事务指定 LOCK (ON) ,但可以为快速路径潜在事务指定 LOCK (ON)。 不能为 CPI 通信驱动的程序的事务指定 LOCK (ON)。
- OFF
- 解锁事务并允许对其进行调度。
- LPRI
指定限制优先级。 这是当排队和等待处理的输入事务数等于或大于限制计数值时,此事务将提高的调度优先级。 调度优先级是用于选择要调度的事务的属性。 如果使用同一类定义了优先级较高的事务,那么会将这些事务调度在优先级较低的事务之前。 该值可以是从 0 到 14 的数字。
当使用限制优先级并将调度优先级提高到限制优先级时,在处理所有为此事务名称排队的消息之前,不会将优先级降低到正常优先级。 如果不需要此事务的限制优先级,请为正常优先级和限制优先级定义相等的值,并将限制计数定义为 65535。
当事务仅由批处理消息程序 (BMP) 处理时,请将限制优先级定义为 0。 如果 PGM () 指定的程序是使用批处理程序类型定义的,那么将强制当前优先级为 0。 但是,批处理消息处理区域 (BMP) 可以处理当前调度优先级为 0 以外的事务。
此优先级还控制此事务创建并发送到远程系统中的目标的消息的优先级。 另见关于海安会在 NPRI 定义下的优先事项的讨论。
对于 BMP 处理的事务,将忽略限制优先级值。
在共享队列环境中,将忽略限制优先级值。
- MAXRGN
- 指定可为给定事务同时调度的最大区域数的新值。 事务必须符合并行调度 (负载均衡) 的条件。 MAXRGN 参数的值必须介于 0 与 MAXPST = 控制区域参数上指定的数字之间。
该关键字限制可同时调度以处理事务的消息处理程序 (MPP) 区域的数目。 当 MPP 区域的数量不受限制时,一个事务可能会垄断所有可用区域。 该值可以是从 0 到 MAXPST = 控制区域参数上指定的值的数字。 MAXRGN (0) 表示没有施加限制。
如果定义调度类型为 SERIAL 的应用程序,请省略 MAXRGN 关键字或将其定义为 0。
以下关键字组合是互斥的:
- PARLIM (65535) 和 MAXRGN 值大于 0
- SERIAL (Y) 和 MAXRGN 值大于 0
- MSGTYPE
指定消息类型 (单段或多段)。 它指定将入局消息视为完成并可路由到应用程序以进行后续处理的时间。
如果在多 IMS 系统配置中使用 MSC 定向路由,那么 IMS 不会确保消息和指定用于处理该消息的事务都是单段或多段。
- MULTSEG
- 入局消息的长度可以超过一个段。 在接收到消息结束指示或 MFS 创建完整消息之前,它不适合调度到应用程序。
- 单段
- 入局消息的长度为一个段。 当终端操作员指示分段结束时,它就有资格进行调度。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- FP (E) 和 MSGTYPE (MULTSEG) 互斥。
- FP (P) 和 MSGTYPE (MULTSEG) 互斥。
- MSNAME
指定多 IMS 系统配置 (MSC) 中逻辑链路路径的一到八个字符的名称。 逻辑链路路径是任何两个 IMS 系统之间的路径。 IMS 系统由与逻辑链路路径关联的远程系统标识和本地系统标识来标识。 远程系统标识标识将在其中处理使用此路径的消息的系统。 本地系统标识标识此系统。 对于将事务更改为远程事务或更改 MSC 路径的 UPDATE TRAN 命令,必须已定义新的 MSNAME。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- FP (E) 和 MSNAME 互斥。
- SIDL 和 MSNAME 互斥。
- SIDR 和 MSNAME 互斥。
- NPRI
指定正常调度优先级。 调度优先级是用于选择要调度的事务的属性。 如果使用同一类定义了优先级较高的事务,那么会将这些事务调度在优先级较低的事务之前。 当排队和等待处理的输入事务数小于限制计数值时,会将正常优先级作为调度优先级分配给事务。 该值可以是从 0 到 14 的数字。 缺省值为 1。
此优先级还控制此事务创建并发送到远程系统中的目标的消息的优先级。
当事务仅由批处理消息程序 (BMP) 处理时,将正常优先级编码为 0。
当事务仅由批处理消息程序 (BMP) 处理时,请将限制优先级定义为 0。 如果 PGM () 指定的应用程序是使用批处理程序类型定义的,那么将强制当前优先级为 0。 但是,批处理消息处理区域 (BMP) 可以处理当前调度优先级为 0 以外的事务。
对于远程事务,用于将事务发送到处理系统的优先级,称为 MSC 链路消息优先级。 三个 MSC 链路消息优先级组为:
- 低
- 中等
- High
低优先级组由输入终端系统中的主请求组成。 此组被分配从 0 到 6 的远程事务优先级。 介质组由辅助请求,响应,中间系统中的主请求和输入终端系统中的主请求组成。 为该组分配了远程事务优先级 7。 高组由输入终端系统中的主请求组成。 此组中的消息将被分配从 8 到 14 的远程事务优先级。 在每个组中,基于主请求的输入终端系统中事务或远程事务的当前优先级值,以及辅助请求和响应的最新处理系统,消息具有优先级。
在 MSC 配置中,事务优先级确定用于通过 MSC 链路发送由此事务插入的消息的优先级。 如果事务将多条消息插入同一目标 (例如,页面至打印机) ,并且这些消息必须按插入的顺序发送,那么正常优先级值和限制优先级值应该相同。 如果正常和限制优先级值不相同,那么以高于先前插入的消息的优先级插入的消息可能首先到达其目标。 (此限制不适用于同一消息的多个段。)
对于 BMP 处理的事务,将忽略正常优先级值。
- 议会
指定并行处理限制计数。 这是当前为此事务调度的每个活动消息区域当前可排队但尚未处理的最大消息数。 这是使用并行调度类型定义关联应用程序时要使用的阈值。 当当前事务入队计数超过 PARLIM 值乘以当前为此事务调度的区域数时,将调度另一个区域。
该值可以是从 0 到 32767 或 65535 的数字。 PARLIM (0) 指示任何输入消息都可能导致调度新区域,因为始终满足调度条件 (消息数大于零)。 如果指定 PARLIM (0) ,那么应指定 MAXRGN 值以限制可调度为处理特定事务的区域数。 PARLIM (65535) 表示已禁用并行处理,并且 IMS 允许一次仅在一个区域中调度事务。
为 PARLIM 指定的值仅适用于消息处理程序 (MPP); 批处理消息处理程序 (BMP) 不支持该值。
如果将应用程序定义为 SERIAL 或将调度类型定义为 SERIAL ,请定义 PARLIM (65535)。
在共享队列环境中 (当调度类型为 PARALLEL 时) ,当成功的连续 GU 计数超过 PARLIM 值乘以当前为此事务调度的区域数时,除 65535 以外的任何 PARLIM 值都会导致调度新区域。 对于共享队列环境,将使用成功的连续 GU 计数来代替队列计数。 将继续调度新区域,直至达到 MAXRGN 上指定的最大区域数。
注: 在共享队列环境中, PARLIM 值的行为与在非共享队列环境中的行为不同。 在非共享队列环境中,事务的队列深度 (当前排队的消息数) 将用作与 PARLIM 值进行比较以确定何时调度其他区域的值。 IMS 通过在队列增长时调度更多区域来响应不断增长的输入事务队列。在共享队列环境中,每个单独的 IMS 都不知道队列的深度,因为队列位于由公共队列服务器 (CQS) 管理的共享队列耦合设施结构中。 事务队列可能由许多不同的 IMS 系统添加到其中。 仅当将第一条消息放入队列中时 (即,当队列变为 不为空时) ,才会通知 IMS 。 对于第一条消息之后放入队列中的每条后续消息,不会通知 IMS 。 在共享队列环境中, PARLIM 比较是针对每个 IMS 保留该 IMS针对事务的成功连续 GU 调用数 (而不是队列深度) 的计数器进行的。 当 IMS 在请求时一致地从 CQS 获取消息时,会调度更多区域。 因此,在共享队列环境中, IMS 根据处理活动推断消息队列的深度,但它不知道队列的实际深度。
共享队列环境中的 PARLIM 值 0 是响应最大的设置。 PARLIM (0) 确保调度消息区域,直到从事务队列处理所有消息为止,或者直到达到最大区域值 (MAXRGN) 限制为止。 但是, PARLIM (0) 可能导致许多不必要的调度 (或 false 调度)。 当调度了消息区域并且在队列上找不到更多消息时,将发生错误调度。 这尤其发生在 PARLIM (0) 上,因为在每次成功获取唯一 (GU) 之后, IMS 必须始终调度其他区域来尝试读取队列以查看是否有更多消息。 此过程将针对每个成功的 GU 继续执行,直到队列变为空,此时连续的 GU 计数将重置为 0。 这是 IMS 不知道在事务队列上排队的消息数的结果。
将 PARLIM 设置为大于 0 的值可以减少错误调度的次数,因为 IMS 只有在连续获取了大量消息而队列变为空之后才会调度新的消息区域。 将 PARLIM 设置为值 2 或更大的值对于减少卷数较少且运行相对较快的事务的错误调度很有用 (因此队列深度通常为 1) ,因为这将避免调度第二个区域,直到第一个区域在一行中获取至少两条消息为止。 但是,请注意,虽然大于 0 的 PARLIM 值可以减少不必要的调度,但它的响应速度也较低。 如果事务长时间运行,或者其处理延迟 (例如,由于锁定争用) ,那么在事务执行期间不会更改连续 GU 计数,并且不会调度其他消息区域。 这可能会导致延迟处理此同一事务的其他消息,直到当前调度的消息完成为止。 即使消息区域可用于处理事务,也会发生此延迟。
关键字组合规则包括以下内容:
- MAXRGN>0 与 PARLIM (65535) 互斥。
- SERIAL (Y) 和 PARLIM 在 0 和 32767 之间是互斥的。
- PGM
指定与事务关联的应用程序的名称。 除非事务定义为 REMOTE (Y) ,否则程序必须存在。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
- PLCT
指定处理限制计数。 这是 IMS 发送到应用程序以进行处理而不重新装入应用程序的最大消息数。 该值必须是 0 到 65535 之间的数字。 PLCT (0) 表示发送到应用程序的最大消息数为 1 ,并且在接收后续消息之前重新装入应用程序。 PLCT (65535) 表示不限制在单个程序装入时处理的消息数。 值 1 到 65535 符合快速重新调度处理的条件。
该值用于确定允许应用程序在单个调度周期中处理的消息数。 当应用程序请求并接收指示的消息数时,任何后续请求都会产生以下两种情况之一。
- 如果满足以下任何条件,那么 IMS 指示 "不存在更多消息"。
- 该区域不是 MPP。
- 当前调度方式不是 CMTMODE (SNGL)。
- 同等或更高优先级的事务将排队等待该区域。
事实上, IMS 可能会有其他消息排队等待应用程序。 当应用程序接收到没有更多可用消息的指示符时,它将负责终止。 应用程序的终止使其占用的区域可用于重新调度。 此功能使 IMS 能够对在处理先前事务时进入系统的优先级较高的事务进行调度。 此外,如果有任何同等优先级的事务入队,那么它们将符合先入先出 (FIFO) 的调度条件。
- 该区域将执行快速重新调度,并将下一条消息返回给符合以下所有条件的应用程序。
- 该区域是 MPP。
- 事务为 CMTMODE (SNGL)。
- 没有相等或更高级别的事务入队。
- 消息仍在排队等待应用程序。
- 如果满足以下任何条件,那么 IMS 指示 "不存在更多消息"。
- PLCTTIME
指定处理限制计数时间。 这是允许处理单个事务 (或消息) 的时间量 (以百分之一秒为单位)。 该数字指定要在消息处理区域中处理的每条消息所允许的最大 CPU 时间。
批处理消息程序 (BMP) 不受此设置影响。
该值可以是一个范围从 1 到 6553500 的数字 (以百秒为单位)。 值 6553500 表示对应用程序没有时间限制。
如果使用 "快速路径" ,那么对于给定的事务名称,此关键字指定允许程序处理单个事务消息的时间量 (以百分之一秒为单位)。 该时间表示事务处理期间耗用的实时时间 (非累积任务时间)。 由于输入终端处于响应方式,并且在发送响应之前无法进入另一个事务,因此将使用实时。 在这种情况下,将忽略 PLCT ()。
该值控制应用程序循环。 您无需优化程序事务执行时间的值。 但是,分配的时间值不应小于每个事务的预期执行时间。 如果调度的应用程序超过了 PLCTTIME () 和 PLCT () 的乘积,那么应用程序将异常结束。 如果在 DFSMPR 过程上指定了 IMS STIMER 值 2 ,那么在完成 DL/I 调用之前,区域不会异常结束。
要点: 应用程序不得使用 STIMER 计时器服务。 IMS 使用 STIMER 计时器服务来计时事务的执行。 如果应用程序发出 MVS STIMER 宏,则会取消 IMS 设置的 STIMER 定时器服务。 请改为对应用程序计时器请求使用 STIMERM 宏。- 恢复
- 指定恢复选项。
- N
- 事务不应恢复。
- Y
- 应该在 IMS 紧急或正常重新启动期间恢复事务。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- CONV (Y) 和 RECOVER (N) 互斥。
- FP (E) 和 RECOVER (N) 互斥。
- FP (P) 和 RECOVER (N) 互斥。
- INQ (N) 和 RECOVER (N) 互斥。
- 远程
- 指定远程选项。
- N
- 事务不是远程事务。 事务是本地事务,并在本地系统上运行。
- Y
- 事务是远程的。 事务在远程系统上运行。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
本地事务必须将 SIDR 值设置为等于 SIDL 值。 将事务从远程更新为本地时,必须指定 SIDR 和 SIDL 关键字以及 REMOTE (N) ,以将远程 SYSID 设置为本地 SYSID。
关键字组合规则包括以下内容:
- REMOTE (Y) 需要 MSNAME 或 SIDR 和 SIDL。
- RESP
- 指定响应方式选项。
- N
- 事务不是响应方式。 对于指定或接受缺省值 OPTIONS=TRANRESP 的终端,输入此事务后不应停止输入。
- Y
- 事务是响应方式。 将保留从中输入事务的终端,并阻止进一步输入,直到接收到响应为止。 对于指定或接受缺省值 OPTIONS=TRANRESP 的终端,在输入此事务之后,将不允许其他消息,直到此事务将响应消息发送回该终端为止。 单个终端定义可以强制或否定响应方式。 对于未以响应方式运行的所有终端,在联机处理期间将忽略 RESP (Y)。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- FP (E) 和 RESP (N) 互斥。
- FP (P) 和 RESP (N) 互斥。
- SEGNO
- 指定段号。 这是每个来自应用程序的 Get Unique (GU) 调用允许进入消息队列的应用程序输出段的最大数目。 该值可以是从 0 到 65535 的数字。 如果定义了 SEGNO (0) ,那么执行时联机系统不会检查分段数。
不能为 CPI 通信驱动的事务指定 SEGNO。
- SEGSZ
指定段大小。 这是任何一个输出段中允许的最大字节数。 该值可以是从 0 到 65535 的数字。 如果定义了 SEGSZ (0) ,那么执行时联机系统不会检查分段大小。
LU 6.2 设备的最大输出消息段为 32767。 如果期望事务将输出发送到 LU 6.2 设备,那么 SEGSIZE 参数不应大于 32767。 但是,在处理命令期间不会强制执行此操作,因为 IMS 在输出时间之前无法确定消息目标的设备类型。
不能为 CPI 通信驱动的事务指定 SEGSZ。
- 序列
- 指定串行选项。
- N
- 不会按顺序处理事务的消息。 消息处理可以并行处理。 在 U3303 伪异常结束后,将消息放在暂挂队列上。 调度将继续,直到重复失败导致事务与 USTOP 一起停止为止。
- Y
- 将按顺序处理事务的消息。 U3303 伪异常终止不会导致将消息放置在暂挂队列上,而是放置在事务消息队列的前面,并且会使用 USTOP 停止事务。 当使用 /START 或 UPD TRAN 命令启动事务或类时,将除去事务的 USTOP。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- MAXRGN>0 和 SERIAL (Y) 互斥。
- PARLIM 值 0-32767 与 SERIAL (Y) 互斥。
- SIDL
指定多IMS 系统 (MSC) 配置中本地系统的系统标识 (SYSID)。 本地系统是返回响应的起始系统。 如果启用了 MSC ,那么该值可以是从 1 到 2036 的数字; 如果未启用 MSC ,那么该值可以是 0。 可以在任何或所有 MSNAME 或事务中定义本地 SYSID。
SIDL参数与MSPLINK宏语句中TYPE=关键字指定的链接类型(CTC、MTM、 TCP /IP、VTAM)无关。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- FP (E) 和 SIDL 是互斥的,除非 SIDL 和 SIDR 指定为一对且等于此 IMS的本地系统标识。
- MSNAME 和 SIDL 互斥。
- 必须对此 IMS定义 SIDL 值。
- 西德尔
指定多IMS 系统 (MSC) 配置中远程系统的系统标识 (SYSID)。 远程系统是执行应用程序的系统。 如果启用了 MSC ,那么该值可以是从 1 到 2036 的数字; 如果未启用 MSC ,那么该值可以是 0。 还必须为 MSNAME 定义指定的远程 SYSID。
SIDR参数与MSPLINK宏语句中TYPE=关键字指定的链接类型(CTC、MTM、 TCP /IP、VTAM)无关。
本地事务必须将 SIDR 值设置为等于 SIDL 值。 将事务从远程更新到本地时,必须将远程 SYSID 设置为本地 SYSID。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- FP (E) 和 SIDR 是互斥的,除非 SIDL 和 SIDR 指定为一对且等于此 IMS的本地系统标识。
- MSNAME 和 SIDR 互斥。
- 必须对此 IMS定义 SIDR 值。
- SPASZ
指定会话式事务的暂存区 (SPA) 大小 (以字节计)。 该值可以是 16 和 32767 之间的数字。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- CONV (N) 和 SPASZ 互斥。
- FP (E) 和 SPASZ 互斥。
- SPATRUNC
指定会话式事务的暂存区区域 (SPA) 截断选项。 这定义了在程序切换到使用较小的 SPA 定义的事务时应该截断还是保留 SPA 数据。
当对话初始启动时,当程序切换时,将检查 SPATRUNC 选项,并根据指定进行设置或重置。 如果设置了该选项,那么该选项将在对话的生命周期内保持设置,或者直到程序切换发生到指定要重置该选项的事务为止。
当发生程序切换时,将首先检查新事务的截断数据选项,并为对话设置该规范,并用于插入到输出消息中的 SPA。 如果没有为新事务指定选项,那么将使用当前对对话有效的选项。
- S
- IMS 会保留 SPA 中的所有数据,即使程序切换到使用较小的 SPA 定义的事务也是如此。 具有较小 SPA 的事务不会看到截断的数据,但当事务切换到具有较大 SPA 的事务时,将使用截断的数据。
- R
- 未保留截断的数据。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- CONV (N) 和 SPATRUNC 互斥。
- FP (E) 和 SPATRUNC 互斥。
- 传输
指定是否应为消息驱动的程序记录事务级别统计信息。 如果指定 Y,事务级统计信息将以X'56FA'日志记录的形式写入日志。
- N
- 不应记录事务级别统计信息。
- Y
- 应记录事务级别统计信息。
UPDATE TRAN 命令上的 TRANSTAT 关键字使用户能够覆盖 TRANSTAT 参数的系统缺省值或当前值。 如果在 UPDATE TRAN 命令中省略 TRANSTAT 关键字,那么当前事务级别统计信息设置保持不变。
- WFI
指定等待输入选项。 此属性不适用于快速路径事务,这些事务始终充当等待输入事务。
- N
- 这不是等待输入的事务。
- Y
- 这是等待输入的事务。 正常调度和调用处理 WFI 事务的消息处理或批处理应用程序。 如果要处理的事务定义为 WFI ,那么允许程序在处理可用输入消息后保留在主存储器中。 如果达到 PROCLIM 计数 (PLCT) ,那么会将 QC 状态码 (无更多消息) 返回到程序; 输入命令以更改已调度事务,数据库,程序或类的状态; 输入与事务所使用的数据库相关的命令,或者通过关闭检查点来终止 IMS 。
更新此属性将阻止消息在命令执行期间排队到事务。 将消息排队到事务的任何尝试都将被拒绝。 更新此属性还会阻止在执行命令时调度事务。 必须没有正在进行的工作,并且没有消息排队 (非共享队列) 才能成功完成该命令。
关键字组合规则包括以下内容:
- MODE (MULT) 和 WFI (Y) 互斥。
- START ()
- 指定要启动的属性。
- Q
- 更新本地和全局状态以开始对事务进行排队。 此更改适用于从网络或终端或者使用 QUEUE TRAN 命令输入到 DB/DC 或 DCCTL 环境的事务。
- SCHD
- 更新本地和全局状态以从调度开始事务。 此更改适用于在 DB/DC 或 DCCTL 环境中调度的事务。
在共享队列环境中, UPD TRAN START(SCHD) 命令将导致 IMS 注册对该事务的兴趣,这指示可以在该 IMS上调度该事务。 UPDATE TRAN NAME(*) START(SCHD) 命令不会注册已向 CQS 注册的事务。
- 暂挂
- 如果事务在暂挂队列上具有消息,那么会自动将该暂挂队列传输到就绪队列。
- 跟踪
- 启动事务跟踪,这将捕获指定事务的数据通信 (DC) 的 DL/I 部分。 此信息将作为 6701 日志记录写入 IMS 日志。
- stop()
- 指定要停止的属性。
- Q
- 更新本地和全局状态以阻止事务排队。 此更改适用于从网络或终端或者使用 QUEUE TRAN 命令输入到 DB/DC 或 DCCTL 环境的事务。
- SCHD
- 更新本地和全局状态以阻止调度事务。 此更改适用于在 DB/DC 或 DCCTL 环境中调度的事务。
UPDATE TRAN STOP(SCHD) 命令停止事务的调度; 但是,将继续处理事务,直到达到限制计数为止。 如果限制计数较大,那么处理时间间隔将较长。
在共享队列环境中, UPD TRAN STOP(SCHD) 命令会导致 IMS 注销对该事务的兴趣,这指示无法在 IMS上调度该事务。
- 跟踪
- 停止事务跟踪。
使用说明
除非使用 DELETE 命令将资源删除,否则这些资源将在 IMS 的生命周期内存在。 资源可通过 IMS 热启动或紧急重新启动进行恢复。 如果 IMS 处于冷启动状态,那么资源将丢失,除非冷启动会导入在 IMS 启动时导出的定义。
UPDATE TRAN 命令可在 IMS 热启动或紧急重新启动 (START (TRACE) 和 STOP (TRACE) 除外) 之间恢复。 如果 IMS 处于冷启动状态,那么对事务的定义属性的更新将丢失,除非将事务定义导出到 RDDS ,然后在冷启动时从 RDDS 导入。
只能通过 OM API 发出 UPDATE TRAN 命令。 此命令适用于 DB/DC 和 DCCTL 系统。
此命令在 XRF 备用区域或 FDBR 区域上无效。
如果 AOCMD、CMTMODE、CONV、DCLWA、DIRROUTE、EDITRTN、EDITUC、EMHBSZ、FP、INQ、MSGTYPE、MSNAME、PGM、RECOVER、REMOTE、RESP、SERIAL、SPASZ、SPATRUNC、TRANSTAT 或 WFI 值发生变化, UPDATE TRAN 命令将 MODBLKS 事务更改为动态事务。
每个事务都将单独更新,这与联机更改过程不同,在联机更改过程中,将更新所有事务或不更新任何事务。 仅当事务未在使用时,才能更新该事务的某些运行时资源定义值。
可以在事务正在使用时更新事务 (LOCK , START 和 STOP) 的状态。
如果对 MODBLKS 启用了联机更改,那么无法更新以下事务属性: AOCMD , CMTMODE , CONV , DCLWA , DEFAULT , DIRROUTE , EDITRTN , EDITUC , EMHBSZ , FP , INQ , MSGTYPE , MSNAME , PGM , RECOVER , REMOTE , RESP , SERIAL , SIDL , SIDR , SPASZ , SPATRUNC 和 WFI。
如果已经为资源定义了 UPDATE 命令指定的所有属性,那么不会实际进行更新,不会停顿任何资源,不会创建日志记录,并且会返回完成代码 0。 这可避免在不需要执行任何操作时产生不必要的开销。
在共享消息队列环境中,即使事务的共享消息队列上有消息, UPDATE TRAN 命令也会更新事务。 如果使用与此 IMS上正在更新的事务不同的对话,快速路径,响应方式或串行事务属性将消息放在共享消息队列上,那么此 IMS 将无法访问共享消息队列上的消息。
UPDATE TRAN NAME(tranname) SET(REMOTE(N),SIDR(localsysid),SIDL(localsysid)) 命令将远程系统标识设置为与本地系统标识相同。 它等同于命令 /MSASSIGN TRAN tranname TO LOCAL。 指定的不带 SIDR/SIDL 或 MSNAME 的 UPDATE TRAN NAME(tranname) SET(REMOTE(N)) 命令不会更改本地和远程系统标识,因此它不等同于 /MSASSIGN TRAN tranname TO LOCAL 命令。
等效的 IMS type-1 命令
下表显示了执行类似功能的 UPDATE TRAN 命令和 type-1 IMS 命令的变体。
| UPDATE 命令 | 类似的 IMS type-1 命令 |
|---|---|
| UPDATE TRAN (name) START (Q) STOP (SCHD) | /PSTOP TRAN 名称 |
| UPDATE TRAN NAME (name) START (SCHD) STOP (Q) | /PURGE TRAN 名称 |
| UPDATE TRAN NAME (name) START (Q , SCHD , SUSPEND) | /START TRAN 名称 |
| UPDATE TRAN NAME (name) STOP (Q , SCHD) | /STOP TRAN 名称 |
| UPDATE TRAN NAME (name) START (TRACE) | /TRACE SET ON TRAN 名称 |
| UPDATE TRAN NAME (name) STOP (TRACE) | /TRACE SET OFF TRAN 名称 |
| UPDATE TRAN NAME (name) SET (CLASS (new_class_number)) | /ASSIGN TRAN name 到 CLS new_class_number |
| UPDATE TRAN NAME (name) SET (CPRI (new_current_priority)) | /将 CPRI new_current_priority 指定为 TRAN 名称 |
| UPDATE TRAN NAME (name) SET (LCT (new_limit_count)) | /ASSIGN LCT new_lmct_number TO TRAN 名称 |
| UPDATE TRAN NAME (name) SET (LPRI (new_limit_priority)) | /ASSIGN LPRI new_lpri_number TO TRAN 名称 |
| UPDATE TRAN NAME (name) SET (NPRI (new_normal_priority)) | /ASSIGN NPRI new_npri_number TO TRAN 名称 |
| UPDATE TRAN NAME (name) SET (PARLIM (new_parallel_limit)) | /ASSIGN AN new_parmlim_number 到 TRAN 名 |
| UPDATE TRAN NAME (name) SET (PLCT (new_processing_limit)) | /ASSIGN PLCT new_plmct_number TO TRAN 名称 |
| UPDATE TRAN NAME (name) SET (SEGNO (new_segment_number)) | /ASSIGN SEGNO new_segno_number TO TRAN 名称 |
| UPDATE TRAN NAME (name) SET (SEGSZ (new_segment_size)) | /ASSIGN SEGSZ new_segsize_number TO TRAN 名称 |
| UPDATE TRAN NAME (name) SET (MAXRG (new_max_regions)) | /CHANGE TRAN 名称 MAXRGN 新_最大区域编号 |
输出字段
下表显示了 UPDATE TRAN 输出字段。 表中的列如下所示:
- 短标签
- 包含 XML 输出中生成的简短标签。
- 关键词
- 标识导致生成字段的命令上的关键字。 对于始终返回的输出字段,将显示 N/A。 对于仅在发生错误时返回的输出字段,将显示 error 。
- 含义
- 提供输出字段的简要描述。
| 短标签 | 关键词 | 含义 |
|---|---|---|
| 抄送 | 不适用 | 完成代码。 |
| CCTXT | 错误 | 简要说明非零完成代码含义的完成代码文本。 |
| CONVID | 事务 | 与事务相关的会话 ID,该会话导致更新失败,完成代码为C'1A'。 此信息可用于在再次尝试更新之前退出对话。 |
| 错误 | 错误 | 包含诊断信息的错误文本。 可以针对非零完成代码返回错误文本,并包含进一步说明完成代码的信息。 |
| GBL | SCOPE (全部) | 指示响应行用于全局更新。 |
| LU | 事务 | 与事务对话相关联的 APPC LU 名称,该事务对话导致更新失败,完成代码为C'1A'。 此信息可用于在再次尝试更新之前退出对话。 |
| MBR | 不适用 | 构建输出行的 IMSplex 成员。 显示其事务信息的 IMS 的 IMS 标识。 始终返回 IMS 标识。 |
| NODE | 事务 | 与事务对话相关联的静态节点的节点名,该事务对话导致更新失败,完成代码为C'1A'。 此信息可用于在再次尝试更新之前退出对话。 |
| TMEM | 事务 | 与事务对话相关联的 OTMA tmember 名称,该事务对话导致更新失败,完成代码为C'1A'。 此信息可用于在再次尝试更新之前退出对话。 |
| TPIP | 事务 | 与事务对话相关联的 OTMA tpipe 名称,该事务对话导致更新失败,完成代码为C'1A'。 此信息可用于在再次尝试更新之前退出对话。 |
| 事务 | 不适用 | 事务名称。 将始终显示事务名称。 |
| 用户 | 事务 | 与事务对话相关联的动态用户的用户名,该用户名导致更新失败,完成代码为C'1A'。 此信息可用于在再次尝试更新之前退出对话。 |
返回码,原因码和完成代码
下表包含返回码和原因码以及代码的简要说明。 针对该命令返回的返回码或原因码还可能指示来自 CSL 请求的错误。
| 返回码 | 原因码 | 含义 |
|---|---|---|
| X'00000000 ' | X'00000000 ' | 命令已成功完成。 命令输出包含每个资源的一行,并附有其完成代码。 如果在没有 OPTION (ALLRSP) 的情况下指定了 NAME (*) ,那么不会返回任何输出行。 有关详细信息,请参阅 表 5 。 |
| X'00000004 ' | X'00002008 ' | 关键字数无效。 需要 SET , START 或 STOP 关键字。 |
| X'00000008 ' | X'0000200C'' | 找不到要更新的资源。 指定的资源名称可能无效,或者没有与指定的过滤器匹配的资源。 确认发出了带有有效资源的 UPDATE TRAN 命令。 |
| X'00000008 ' | X'00002040 ' | 在 UPDATE TRAN 命令上指定了多个过滤器值。 请确认在命令上仅指定了 SET 或 START | STOP 过滤器中的一个。 |
| X'00000008 ' | X'00002044 ' | 未处理 UPDATE TRAN 命令,因为对 START 和 STOP 过滤器指定了相同的属性值。 只能在 START 或 STOP 上指定属性 "Q , SCHD" ,但不能同时在这两者上指定。 例如, UPDATE TRAN START(Q) STOP(Q) 无效,但 UPDATE TRAN START(Q) STOP(SCHD) 有效。 确认在命令上仅指定了一个 START | STOP 属性。 |
| X'00000008 ' | X'00002048 ' | 未处理 UPDATE TRAN 命令,因为指定了无效的 SET 属性。 确认在命令上指定了正确的 SET 属性。 |
| X'00000008 ' | X'0000204C' | 未处理 UPDATE TRAN 命令,因为指定的 CLASS 值无效。 确认在命令上指定了正确的 CLASS 值。 |
| X'00000008 ' | X'00002050 ' | 未处理 UPDATE TRAN 命令,因为指定的 CPRI 值无效。 确认在命令上指定了正确的 CPRI 值。 |
| X'00000008 ' | X'00002054 ' | 未处理 UPDATE TRAN 命令,因为指定的 LCT (限制计数) 值无效。 确认在命令上指定了正确的 LCT 值。 |
| X'00000008 ' | X'00002058 ' | 未处理 UPDATE TRAN 命令,因为指定的 LPRI 值无效。 请确认在命令中指定了正确的 LPRI 值。 |
| X'00000008 ' | X'0000205C' | 未处理 UPDATE TRAN 命令,因为指定的 MAXGN 值无效。 确认在命令上指定了正确的 MAXRGN 值。 |
| X'00000008 ' | X'00002060 ' | 未处理 UPDATE TRAN 命令,因为指定的 NPRI 值无效。 确认在命令上指定了正确的 NPRI 值。 |
| X'00000008 ' | X'00002064 ' | 未处理 UPDATE TRAN 命令,因为 PARLIM 值无效。 确认在命令上指定了 PARLIM 值。 |
| X'00000008 ' | X'00002068 ' | 未处理 UPDATE TRAN 命令,因为 PLCT 值无效。 确认在命令上指定了正确的 PLCT 值。 |
| X'00000008 ' | X'00002100 ' | CMTMODE (MULT) 与 WFI (Y) 互斥。 |
| X'00000008 ' | X'00002101 ' | CONV (Y) 与 CMTMODE (MULT) 互斥。 |
| X'00000008 ' | X'00002103 ' | CONV (N) 与 SPASZ>0 和 SPATRUNC 互斥。 |
| X'00000008 ' | X'00002104 ' | CONV (Y) 与 RECOVER (N) 互斥。 |
| X'00000008 ' | X'00002105 ' | CONV (Y) 需要 SPASZ 和 SPATRUNC。 |
| X'00000008 ' | X'00002108 ' | EDITRTN 名称无效。 |
| X'00000008 ' | X'0000210A' | EMHBSZ 无效。 发生了下列情况之一:
|
| X'00000008 ' | X'0000210C' | FP (E) 与 EDITRTN 互斥。 |
| X'00000008 ' | X'0000210E' | FP (E) 或 FP (P) 与 MSC 关键字 MSNAME 或 SIDR 和 SIDL 互斥。 |
| X'00000008 ' | X'0000210F' | FP (E) 或 FP (P) 与 MSGTYPE (MULTSEG) 互斥。 |
| X'00000008 ' | X'00002110 ' | FP (N) 与 EMHBSZ> 0 互斥。 |
| X'00000008 ' | X'00002111 ' | FP (E) 或 FP (P) 与 RECOVER (N) 互斥。 |
| X'00000008 ' | X'00002112 ' | FP (E) 或 FP (P) 与 RESP (N) 互斥。 |
| X'00000008 ' | X'00002116 ' | INQ (N) 与 RECOVER (N) 互斥。 |
| X'00000008 ' | X'00002119 ' | MSC 关键字 MSNAME 或 SIDL/SIDR 与定义为与此事务关联的快速路径互斥 (FP (E)) 的应用程序互斥。 |
| X'00000008 ' | X'0000211A' | 无效的 MSNAME 名称。 |
| X'00000008 ' | X'0000211B' | MSNAME 与 SIDL 和 SIDR 互斥。 |
| X'00000008 ' | X'0000211D' | MAXRGN>0 与 PARLIM (65535) 互斥。 |
| X'00000008 ' | X'0000211E' | MAXRGN>0 与 SERIAL (Y) 互斥。 |
| X'00000008 ' | X'00002121 ' | PARLIM 值与 SERIAL (Y) 互斥。 |
| X'00000008 ' | X'00002125 ' | 如果指定了 REMOTE (Y) ,那么 SIDR 值必须是远程 SYSID ,而 SIDL 值必须是本地 SYSID。 如果未显式指定 MSNAME 关键字以及 SIDR 和 SIDL 关键字,那么将使用现有事务定义中的 SIDR 和 SIDL 值。 如果指定了 REMOTE (N) ,那么 SIDR 值必须等于 SIDL 值。 如果未显式指定 SIDR 和 SIDL 值,那么将使用现有事务定义中的值。 不能使用 REMOTE (N) 指定 MSNAME 关键字。 |
| X'00000008 ' | X'00002126 ' | SIDL 值无效。 |
| X'00000008 ' | X'00002127 ' | 必须将 SIDL/SIDR 指定为一对。 单独指定了 SIDL 或单独指定了 SIDR。 |
| X'00000008 ' | X'00002128 ' | SIDR 值无效。 |
| X'0000000C' | X'00003000 ' | 对某些资源成功执行了命令。 命令输出包含每个资源的一行,并附有其完成代码。 如果在不使用 OPTION (ALLRSP) 的情况下指定 NAME (*) ,那么仅对具有非零完成代码的资源返回输出行。 有关详细信息,请参阅 表 5 。 |
| X'0000000C' | X'00003004 ' | 任何资源的命令都不成功。 命令输出包含每个资源的一行,并附有其完成代码。 有关详细信息,请参阅 表 5 。 |
| X'00000010 ' | X'0000400C' | 命令在 XRF 备用项上无效。 |
| X'00000010 ' | X'00004024 ' | 未定义快速路径, FP (E) , FP (P) 或 EMHBSZ> 0 无效。 |
| X'00000010 ' | X'00004120 ' | 联机更改阶段正在进行中。 |
| X'00000010 ' | X'00004300 ' | 不允许命令,因为已启用 MODBLKS 的联机更改 (DFSDFxxx 或使用 MODBLKS=OLC 定义的 DFSCGxxx ,或未定义 MODBLKS)。 |
| X'00000010 ' | X'00004310 ' | 无法获取事务输入编辑例程表的存储器。 需要冷启动才能修复此错误。 |
| X'00000010 ' | X'00004314 ' | 无法装入事务输入编辑例程。 |
| X'00000010 ' | X'00004318 ' | 无法添加新的事务输入编辑例程。 已达到 255 个例程的最大值。 |
| X'00000014 ' | X'00005004 ' | 无法获取 DFSOCMD 响应缓冲区。 |
| X'00000014 ' | X'00005008 ' | 无法获取 DFSPOOL 存储器。 |
| X'00000014 ' | X'0000500C' | 无法获取 AWE。 |
| X'00000014 ' | X'00005010 ' | 无法获取锁存器。 |
| X'00000014 ' | X'000050FF' | 由于内部错误, UPDATE TRAN 或 UPDATE TRANDESC 命令处理已终止。 |
| 完成码 | 完成代码文本 | 含义 |
|---|---|---|
| 0 | 已成功完成事务的命令。 | |
| 10 | 找不到资源 | 事务名称无效,或者指定的通配符参数与任何资源名称都不匹配。 |
| 17 | 另一个 CMD 正在进行中 | 正在对此事务执行另一个命令 (例如 DELETE 或 UPDATE)。 如果资源由多个特定或通配符参数指定,那么这也可能表示此命令。 或者,事务正在更新程序名,并且正在为该程序执行另一个命令。 |
| 19 日 | CMTMODE=MULT/WFI=Y 冲突 | 由于落实方式多个 CMTMODE (MULT) 选项与等待输入 WFI (Y) 选项冲突,因此事务更新失败。 |
| 1A | 在对话中 | 事务正在对话中。 将单独返回对话中的对话标识和终端。 终端可以是静态节点,节点和用户,动态用户, APPC luname 或 OTMA tmember 和 tpipe。 建议的操作: 终止对话。 |
| 1B | CONV = Y/CMTMODE=MULT 冲突 | 由于对话 CONV (Y) 选项与落实方式多个 CMTMODE (MULT) 选项冲突,因此事务更新失败。 |
| 1E | CONV=N/SPASZ/SPATRUNC 冲突 | 事务更新失败,因为非并置 CONV (N) 选项与 SPA 大小或 SPA 截断选项冲突。 |
| 1F | CONV = Y/RECOVER=N 冲突 | 事务更新失败,因为对话 CONV (Y) 选项与不可恢复的 RECOVER (N) 选项冲突。 |
| 2F | FP=E/BMPTYPE=Y 冲突 | 事务更新失败,因为快速路径互斥 FP (E) 选项与定义为批处理 BMPTYPE (Y) 的程序冲突。 |
| 30 | 仅队列事务 | UPDATE TRAN 命令对该资源无效,因为该事务是仅队列事务。 |
| 34 | 不允许用于 CPic TRAN | UPDATE TRAN 命令对于资源无效,因为该事务是 CPIC 事务。 |
| 35 | FP=E/EDITRTN 冲突 | 由于快速路径互斥 FP (E) 选项与编辑例程 EDITRTN 冲突,因此事务更新失败。 |
| 36 | FP=E/FP=N PGM 冲突 | 事务更新失败,因为快速路径互斥 FP (E) 选项与定义为非快速路径 FP (N) 的程序冲突。 |
| 38 | 不允许使用 BMP | UPDATE TRAN 命令对于资源无效,因为与事务关联的 PSB 是 BMP。 |
| 3A | FP=E 或 P/MSC 关键字冲突 | 事务更新失败,因为快速路径独占 FP (E) 或快速路径潜在 FP (P) 选项与 MSC MSNAME , SIDR/SIDL 选项冲突。 |
| 3B | FP/MSGTYPE=MULTSEG 冲突 | 由于快速路径互斥 FP (E) 或快速路径潜在 FP (P) 选项与消息类型多段冲突,因此事务更新失败 MSGTYPE (MULTSEG) 选项。 |
| 3C | MAXRGN/PARLIM=65535 冲突 | 事务更新失败,因为最大区域计数 MAXRGN 值与并行限制计数 PARLIM 值 65535 冲突,这意味着已禁用并行调度。 PARLIM (65535) 不允许 MAXRGN> 0。 |
| 3E | FP=N/FP=E PGM 冲突 | 事务更新失败,因为非快速路径 FP (N) 选项与定义为快速路径互斥 FP (E) 的程序冲突。 |
| 3F | FP=P/BMPTYPE=Y 冲突 | 事务更新失败,因为快速路径潜在程序 FP (P) 与定义为批处理 BMPTYPE (Y) 的程序冲突。 |
| 400 | PARLIM/SCHDTYPE=SERIAL 冲突 | 无法更改资源的 PARLIM ,因为与事务关联的 PSB 定义为不具有并行调度。 |
| 41 | FP=E 或 P/recover=N 冲突 | 事务更新失败,因为快速路径互斥 FP (E) 或快速路径潜在 FP (P) 选项与不可恢复的 RECOVER (N) 选项冲突。 |
| 42 | FP=E 或 P/resp=N 冲突 | 事务更新失败,因为快速路径互斥 FP (E) 或快速路径潜在 FP (P) 选项与响应方式 RESP (N) 选项冲突。 |
| 44 | 事务繁忙 | 无法为资源处理 UPDATE TRAN 命令,因为当前正在调度事务。 |
| 45 | 无效的 SidR 值 | 无法对资源完成 UPDATE TRAN 命令,因为 SID 编号无效。 |
| 49 | INQ=N/RECOVER=N 冲突 | 事务更新失败,因为非查询 INQ (N) 选项与不可恢复的 RECOVER (N) 选项冲突。 |
| 4A | 使用中 | 事务正在使用中。 正在进行排队,可以是终端输入,也可以是程序间切换。 |
| 4F | MAXRGN 值无效 | 最大区域 MAXRGN 值无效。 |
| 5E | MAXRGN GT 0/SERIAL=Y 冲突 | 事务更新失败,因为非零最大区域值与 serial SERIAL (Y) 选项冲突。 |
| 61 | DFSBCB 存储错误。 | 无法获取 DFSBCB 存储器。 |
| 6A | FP=P/FP=E PGM 冲突 | 要更新为快速路径潜在 FP (P) 的事务与已定义为快速路径互斥 FP (E) 的程序冲突。 |
| 6B | 参数/序列 = Y 冲突 | 由于并行限制 PARLIM 值与 serial SERIAL (Y) 选项冲突,因此事务更新失败。 |
| 6D | 程序名无效 | 指定的程序名无效。 |
| 73 | 已调度程序 | 已调度程序。 |
| 79 | REMOTE/SIDR/SIDL/MSNAME 冲突 | 事务更新失败,因为 REMOTE 值与 MSNAME 关键字或 SIDR 和 SIDL 值之间存在冲突。 |
| 来自 45 家供应商的 85 个工具 | 已暂挂 | 事务位于暂挂队列上。 |
| 87 | TRAN 队列 | 事务具有排队的消息 (非共享队列环境)。 |
| 89 | TRAN 已调度 | 已调度事务。 |
| 90 | 由于内部错误, UPD TRAN 命令未完成。 | |
| 99 | 未初始化 | 由于未成功初始化事务,因此事务更新失败。 QUERY TRAN STATUS(NOTINIT) 显示未初始化事务的原因,例如程序不存在。 请更正此问题并发出 UPDATE TRAN START(SCHD,Q) 命令以初始化事务。 |
| 9B | FASTPATH TRAN 不受支持 | 事务更新失败,因为事务是快速路径专用 FP (E)。 |
| B3 | 符合调度条件的 TRAN | 事务符合调度条件,无法更新。 在再次尝试 UPDATE 之前,您可能需要使用 UPDATE TRAN STOP(Q,SCHD) 命令停止事务。 |
| B5 | 路由代码已存在 | 事务更新失败,因为快速路径互斥 FP (E) 选项与该事务名称已存在的路由代码冲突。 |
| BF | FP=E/CONV 关键字冲突 | 快速路径互斥 FP (E) 与任何对话关键字 (包括 CONV (Y) , SPASZ 和 SPATRUNC) 互斥。 不能将 FP 互斥事务定义为会话式事务。 |
| 145 | 跨链接的消息正在进行中 | 事务更新失败,因为正在通过 MSC 链路进行事务的消息。 |
| 1D7 | 导入更改列表错误 | 正在从 IMSRSC 存储库 中的更改列表导入该资源,或者未成功从更改列表导入该资源。 在从存储库成功导入资源之前,无法更新该资源。 |
示例
以下是 UPDATE TRAN 命令的示例:
UPDATE TRAN 命令的示例 1
UPDATE TRAN NAME(BADNAME,AOBMP,APOL17,CPI%,BAD*) SET(WFI(Y))Response for: UPDATE TRAN NAME(BADNAME,AOBMP,APOL17,CPI%,BAD*)
Trancode MbrName CC CCText
AOBMP IMS1 0
APOL17 IMS1 19 CMTMODE=MULT/WFI=Y CONFLICT
BAD* IMS1 10 NO RESOURCES FOUND
BADNAME IMS1 10 NO RESOURCES FOUND
CPI1 IMS1 0
CPI2 IMS1 0
CPI3 IMS1 0
CPI4 IMS1 0 CMD(UPDATE TRAN NAME(BADNAME,AOBMP,APOL17,CPI%,BAD*) SET(WFI(Y)))<imsout>
<ctl>
<omname>OM1OM </omname>
<omvsn>1.3.0</omvsn>
<xmlvsn>20 </xmlvsn>
<statime>2006.312 00:07:49.667460</statime>
<stotime>2006.312 00:07:49.668362</stotime>
<staseq>BFAC164BEAE846C0</staseq>
<stoseq>BFAC164BEB20A400</stoseq>
<rqsttkn1>USRT011 10160749</rqsttkn1>
<rc>0200000C</rc>
<rsn>00003008</rsn>
<rsnmsg>CSLN054I</rsnmsg>
<rsntxt>None of the clients were successful.</rsntxt>
</ctl>
<cmderr>
<mbr name="IMS1 ">
<typ>IMS </typ>
<styp>DBDC </styp>
<rc>0000000C</rc>
<rsn>00003000</rsn>
<rsntxt>At least one request successful</rsntxt>
</mbr>
</cmderr>
<cmd>
<master>IMS1 </master>
<userid>USRT011 </userid>
<verb>UPD </verb>
<kwd>TRAN </kwd>
<input>UPDATE TRAN NAME(BADNAME,AOBMP,APOL17,CPI%,BAD*,AOBMP)
SET(WFI(Y)) </input>
</cmd>
<cmdrsphdr>
<hdr slbl="TRAN" llbl="Trancode" scope="LCL" sort="a" key="1"
scroll="no" len="8" dtype="CHAR" align="left" />
<hdr slbl="MBR" llbl="MbrName" scope="LCL" sort="a" key="2" scroll="no"
len="8" dtype="CHAR" align="left" />
<hdr slbl="CC" llbl="CC" scope="LCL" sort="n" key="0" scroll="yes"
len="4" dtype="INT" align="right" skipb="no" />
<hdr slbl="CCTXT" llbl="CCText" scope="LCL" sort="n" key="0"
scroll="yes" len="*" dtype="CHAR" skipb="yes" align="left" />
<hdr slbl="GBL" llbl="Global" scope="GBL" sort="d" key="2" scroll="yes"
len="1" dtype="CHAR" align="left" skipb="y" />
<hdr slbl="ERRT" llbl="ErrorText" scope="LCL" sort="n" key="0"
scroll="yes" len="*" dtype="CHAR" skipb="yes" align="left" />
<hdr slbl="CONVID" llbl="ConvID" scope="LCL" sort="n" key="0"
scroll="yes" len="4" dtype="CHAR" skipb="yes" align="left" />
<hdr slbl="NODE" llbl="NodeName" scope="LCL" sort="n" key="0"
scroll="yes" len="8" dtype="CHAR" skipb="yes" align="left" />
<hdr slbl="USER" llbl="UserName" scope="LCL" sort="n" key="0"
scroll="yes" len="8" dtype="CHAR" skipb="yes" align="left" />
<hdr slbl="LU" llbl="LUName" scope="LCL" sort="n" key="0"
scroll="yes" len="24" dtype="CHAR" skipb="yes" align="left" />
<hdr slbl="TMEM" llbl="TMember" scope="LCL" sort="n" key="0"
scroll="yes" len="16" dtype="CHAR" skipb="yes" align="left" />
<hdr slbl="TPIP" llbl="TPipe" scope="LCL" sort="n" key="0" scroll="yes"
len="8" dtype="CHAR" skipb="yes" align="left" />
</cmdrsphdr>
<cmdrspdata>
<rsp>TRAN(BADNAME ) MBR(IMS1) CC( 10) CCTXT(NO RESOURCES FOUND) </rsp>
<rsp>TRAN(AOBMP ) MBR(IMS1) CC( 0) </rsp>
<rsp>TRAN(APOL17 ) MBR(IMS1) CC( 19) CCTXT(CMTMODE=MULT/WFI=Y CONFLICT) </rsp>
<rsp>TRAN(CPI1 ) MBR(IMS1) CC( 0) </rsp>
<rsp>TRAN(BAD* ) MBR(IMS1) CC( 10) CCTXT(NO RESOURCES FOUND) </rsp>
<rsp>TRAN(CPI2 ) MBR(IMS1) CC( 0) </rsp>
<rsp>TRAN(CPI3 ) MBR(IMS1) CC( 0) </rsp>
<rsp>TRAN(CPI4 ) MBR(IMS1) CC( 0) </rsp>
</cmdrspdata>
</imsout> 说明: 更新要等待输入的多个事务。 多个事务的更新成功,如完成代码 0 所示。 由于 WFI (Y) 属性与已为 APOL17定义的 CMTMODE (MULT) 属性冲突,因此针对事务 APOL17 的更新失败,完成代码为 19。 事务 BADNAME 和完成代码为 10 的参数 BAD* 的更新失败,因为事务 BADNAME 不存在,并且没有以 BAD 开头的事务名称。
UPDATE TRAN 命令的示例 2
UPDATE TRAN NAME(APOL12) START(SCHD) OPTION(AFFIN)Trancode MbrName CC
APOL12 IMS1 0说明: 事务 APOL12 是通过亲缘关系启动的。
