命令存储器保护
CICS® 可以保护自身免受传递无效地址 (可能导致 CICS 导致存储器违例) 的应用程序的影响。 此保护独立于其他存储保护和事务隔离功能。
当应用程序发出 EXEC CICS 命令导致 CICS 代表该程序修改存储器,但该程序不拥有该存储器时,会发生传递无效地址的情况。 执行命令时发生存储器违例。
通过命令地址检查, CICS 将验证存储器的开始地址,并确定应用程序在执行命令之前对以该地址开头的存储器具有写访问权。 如果程序将无效地址作为 API 上的输出字段传递到 CICS ,那么会发生 AEYD 异常终止。
下表列出了 CICS 验证应用程序提供的地址所提供的保护级别。
| 环境 | 受影响程序的执行密钥 | 导致 AEYD 中断的应用程序引用的存储类型 |
|---|---|---|
| 只读存储 (RENTPGM 系统初始化参数=PROTECT) | CICS -密钥和用户密钥 | CICS 密钥 0 只读存储 |
| 子系统存储保护 (STGPROT 系统初始化参数=是) | 用户钥匙 | 所有 CICS - 密钥存储 |
| 事务隔离 (TRANISO 系统初始化参数=是) | 用户密钥和隔离(是) | 任务终生存储所有其他事务 |
| 事务隔离 (TRANISO 系统初始化参数=是) | 用户密钥和隔离(否) | 除其他用户密钥和 ISOLATE(NO) 事务之外的所有事务的任务生命周期存储 |
| 基础 CICS (所有存储均为 CICS key 8 存储) (RENTPGM 系统初始化参数=NOPROTECT; STGPROT 系统初始化参数=NO; TRANISO 系统初始化参数=NO ) | CICS -密钥和用户密钥 | 仅 MVS 存储 |
您可以使用 CMDPROT 系统初始化参数来控制命令地址检查。 不存在与存储保护和事务隔离的依赖关系或交互。