概述:如何定义 CICS DB2 连接
定义 CICS DB2 连接涉及三个不同的 CICS 资源定义: DB2CONN ( DB2 连接定义) , DB2ENTRY ( DB2 条目定义) 和 DB2TRAN ( DB2 事务定义)。
CICS DB2 连接由 CICS 与 DB2之间的整体连接以及称为线程的各个连接组成。 您可以使用这些资源定义来定义整体连接的属性以及不同类型的线程的属性。 如果您为关键事务专门定义了条目线程,那么可以告知 CICS DB2 连接设施哪些 CICS 事务可以使用这些线程。
- 使用 IBM® CICS Explorer®定义并安装 DB2CONN, DB2ENTRY和 DB2TRAN 对象。
- 使用 CICSPlex SM 定义对象。
- 使用 RDO 定义并安装 DB2CONN, DB2ENTRY和 DB2TRAN 对象。
- 使用 CICS 批处理实用程序 DFHCSDUP 定义对象。
每个对象的作用域如下:
DB2CONN
DB2CONN 是 CICS DB2 连接的主定义。 必须先安装 DB2CONN 资源定义,然后才能启动 CICS DB2 连接。 使用 DB2CONN 定义来定义以下项:
- 整体 CICS DB2 连接的属性:
- CICS 连接到的 DB2 子系统,或者 DB2 从中选取活动成员以供 CICS 连接到的 DB2 子系统的数据共享组。
- 如果与 DB2 的连接失败,那么无论 CICS 是否自动重新连接,以及如果您正在使用组连接设施,那么无论 CICS 是否重新连接到同一 DB2 子系统。
- CICS DB2 连接设施的通用授权标识,用于登录到线程 (如果该线程不需要其他授权)。
- CICS 可用于在任何时候将线程运行到 DB2 中的 TCB 总数的限制。
- 在终止前保留受保护线程的时间长度。
- 在线程被终止之前可以复用的次数限制。
- 将错误消息传递到 CICS的方式,以及事务在其线程失败时应执行的操作。
- 发送消息和统计信息的位置。
- 命令线程的属性,它们是 DSNC 事务用于发出 DB2 命令的特殊线程:
- 对 CICS 可以在任何时间使用的命令线程数的限制。
- 请求命令线程时 DB2 检查的授权标识类型 (例如,用户标识,事务标识和通用 CICS DB2 连接设施标识)。
- 池线程的属性,它们是在事务不需要特殊命令或条目线程时或在没有特殊线程可供事务使用时使用的通用线程:
- 请求池线程时, DB2 将检查哪种类型的授权标识 (例如,用户标识,事务标识,通用 CICS DB2 连接设施标识)。
- 线程 TCB 相对于 CICS 主 TCB 的优先级。
- 对 CICS 可以在任何时候使用的池线程数的限制。
- 如果事务无法获取池线程,那么是应该等待一个线程,还是异常终止。
- 用于池线程的应用程序计划或动态计划出口 (请参阅 计划,程序包和动态计划出口)。
- 在事务使用线程 DB2 记帐记录期间的哪个时间点生成。
- 如果存在死锁,那么是否回滚使用线程的事务所做的更改。
一次只能在 CICS 系统中安装一个 DB2CONN 定义,并且系统中安装的所有 DB2ENTRY 和 DB2TRAN 定义都与 DB2CONN 定义相关联。 如果废弃 DB2CONN 定义,那么还将废弃所有 DB2ENTRY 和 DB2TRAN 定义。 当 CICS 连接到 DB2时,无法废弃 DB2CONN 定义并安装另一定义。
请勿将 DB2CONN 资源定义与 DB2CONN 系统初始化参数混淆,后者指定您是否希望 CICS 在初始化期间自动启动 DB2 连接。
您可以在仅安装了 DB2CONN 定义的情况下启动 CICS DB2 连接; 您不需要任何 DB2ENTRY 和 DB2TRAN 定义来建立连接。 如果执行此操作,那么没有用于密钥事务的特殊线程 (条目线程)。 所有事务都使用池中的通用线程,并且最重要的事务必须与最不重要的事务一样等待,才能将其单独连接到 DB2中。 要确保对重要事务划分优先级,请创建 DB2ENTRY ,并在必要时为其创建 DB2TRAN 定义。
DB2ENTRY
您可以设置许多 DB2ENTRY 定义以定义不同类型的条目线程。 您指定的事务可以使用条目线程来获取对 DB2 资源的优先级访问 (或专用访问)。 实际上,您将保留特定数量的线程,这些线程只能由这些事务使用。 您还可以保护各种类型的条目线程,这将提高大量使用的事务的性能。
在 DB2ENTRY 定义中,可以指定与 DB2ENTRY 相关联的特定事务或 (通过使用通配符) 一组事务,并且可以使用它定义的条目线程类型。 当这些事务请求线程时, CICS DB2 连接设施会为它们提供该类型的条目线程 (如果有)。 如果您希望其他事务使用相同类型的条目线程,那么可以为这些事务创建 DB2TRAN 定义,这将告知 CICS 这些事务与特定 DB2ENTRY相关联。
- 可以使用此类型的条目线程的事务,或者 (通过在名称中使用通配符) 一组事务。
- 此类型条目线程的属性:
- 在请求此类型的条目线程 (例如,用户标识,事务标识和通用 CICS DB2 连接设施标识) 时, DB2 将检查哪种类型的授权标识。
- 线程 TCB 相对于 CICS 主 TCB 的优先级。
- 对 CICS 可以在任何时候使用的此类型的条目线程数的限制。
- 在一段时间内未使用此类型的条目线程时受保护的条目线程数。
- 如果与 DB2ENTRY 关联的事务无法获取此类型的条目线程,那么它应该等待此类型的条目线程,溢出以使用池线程还是异常终止。
- 用于此类型的入口线程的应用程序计划或动态计划出口 (请参阅 计划,程序包和动态计划出口)。
- 在事务使用线程 DB2 记帐记录期间的哪个时间点生成。
- 如果存在死锁,那么是否回滚使用线程的事务所做的更改。
当事务使用该类型的条目线程时,不能废弃 DB2ENTRY 。 必须先将其禁用,以在 DB2ENTRY上停顿活动,然后将其废弃。 如果废弃 DB2ENTRY,那么与其关联的 DB2TRANs 是 "孤立的" ,其中列出的事务将使用池线程。
如果要使用命令级解释器事务 CECI 来测试应用程序中 CICS 命令的语法,请注意,在这种情况下, CICS 使用事务标识 CECI 来检查匹配的 DB2ENTRY 定义。 如果已为应用程序设置 DB2ENTRY ,并且要在使用 CECI 时进行复制,请为 CECI 事务设置具有相同属性的 DB2ENTRY 。
DB2TRAN
- DB2ENTRY的名称。
- 与特定 DB2ENTRY 相关联的事务,或者 (通过在名称中使用通配符) 一组事务,可以使用此类型的条目线程。
当这些事务请求线程时, CICS DB2 连接设施会看到它们与特定的 DB2ENTRY相关联,并将它们视为在 DB2ENTRY 定义本身上指定的一个或多个事务。