TCP 事务请求消息用户数据
TCP 事物请求消息 (TRM) 用户数据编程模型允许在 TI 和主机 TP 之间直接交换数据和参数。 TCP TRM 用户数据模型基于 CICS 并发服务器模型。 标准侦听器使用两个网络交换来执行单个事务程序,并要求客户端:
将事务请求消息 (TRM) 发送到标准侦听器
从应用程序接收 TRM 回复
将应用程序请求数据流发送到服务器事务程序
从服务器事务程序接收应用程序回复数据
下图汇总了客户端、标准 CICS 侦听器和并发服务器。 括号中的数字指示事件发生的大致顺序。 数字后跟对事件的更详细的描述。
客户端用于启动默认侦听器的进程,其将调用传递给并发服务器,后者随后从客户端发送和接收数据
TCP TRM 用户数据编程模型的汇总工作流关系图
TCP TRM 用户数据编程模型的工作原理如下:
应用程序在组件服务或 .NET Framework 中配置的 TI .NET 对象中调用方法。
TI 运行时调用 TI 代理。
TI 代理将:
读取以前由 TI 设计器创建的程序集和元数据。
将 .NET Framework 数据类型映射到 COBOL 数据类型。
然后,TI 代理将:
调用转换例程,将应用程序数据转换为大型机 COBOL 类型。
生成表示 COBOL 声明或 copybook 的平展数据流缓冲区。
将消息传递给 TCP 传输组件。
TI TCP 传输使用大型机计算机的 Internet 协议 (IP) 地址和侦听器的端口地址将连接请求发送到标准侦听器。
标准侦听器接受连接请求,并告知 TI 运行时发送 TRM。 然后,标准侦听器等待 TRM。
TRM 是格式化的数据记录,用于标识要通过使用其 TRANID 调用的服务器 TP。 CICS 侦听器 TP 是一种特殊的大型机 TP,其主要功能是接收运行 TCP/IP 的客户端应用程序发送的服务器 TP 调用。
IBM 提供的标准侦听器 TP 的 TRANID 为 CSKL。 显示在程序控制表 (PCT) 中的侦听器 TP 的 TP 名称为 EZACIC02。
TI 运行时设置 TRM 的格式,并将其发送到标准侦听器。 TI 等待 TRM 回复。
标准侦听器接收 TRM,向 TI 运行时发送接收确认,然后读取 TRM 的内容。 侦听器解释 TRM 中的信息,并提取用于处理请求的并发服务器程序的事务 ID。
标准侦听器启动由 TRM(Mscmtics.cbl 示例应用程序)中的 TRANID 使用 EXEC CICS Start 标识的并发服务器 TP 程序。
Mscmtics.cbl 是 Microsoft 示例 TP 文件,用于使用 COMMAREA 在 TI 和服务器 TP 之间传递数据。 Mscmtics.cbl 示例 TP 由 Microsoft 开发,作为 Host Integration Server 软件的一部分提供。 它位于 $\Microsoft Host Integration Server\SDK\Samples\Comti\ProgrammingSpecifics\Tcp。 使用此模型之前,必须在大型机计算机上编译、链接和安装它。
注意
如果标准侦听器无法启动并发服务器,则侦听器将设置错误消息的格式,并将其发送回 TI TCP 传输。 侦听器无法启动的原因包括:
由于 CICS 资源有限(例如,超过最大的 CICS 任务数或并发服务器任务数)而拒绝连接
并发服务器的 TRANID 无效或已禁用
与事务 ID 相关联的并发服务器程序无效、已禁用或不可用
注意
CICS 侦听器提供的错误消息基于字符,始终以字母 EZY 开头。 错误消息的长度是可变的,消息的末尾由 CICS 侦听器关闭的套接字决定。
标准侦听器调用主机环境中的套接字应用程序协议接口 (API)。 标准侦听器无法发送 TRM 回复。 TRM 回复表示一个同步过程,该过程让事务程序有时间在客户端发送应用程序请求数据之前启动。 由于内部的 CICS 体系结构注意事项,此同步过程是必需的(不能保证事务程序在发出请求后启动)。
在标准 CICS 侦听器为并发服务器事务发出 start 命令后,标准侦听器位于应用程序处理循环之外,标准侦听器可以随意侦听另一个传入请求。
并发服务器运行后,它会读取标准侦听器发送的事务初始消息 (TIM)。
TIM 描述服务器正在其中运行的 TCP/IP 环境,并包含并发服务器用来与 COMTI TCP 传输进行通信的 TCP/IP 套接字信息,以及并发服务器用于自定义其执行行为的客户端消息标头。
并发服务器将:
设置 TRM 回复的格式。
向 TI TCP 传输发送 TRM 回复,通知它现在可以发送应用程序请求数据。
发出接收并等待应用程序请求数据。
发送 TRM 回复将完成标准侦听器交换序列的第 1 部分。
TI 对 TRM 进行评估,并将数据传递给并发服务器。 TI 还会发送套接字关闭,然后 TI 等待回复数据。
并发服务器收到应用程序请求数据后,服务器对数据执行业务逻辑。
服务器处理完请求并制定回复后,将准备回复数据,然后直接将响应发送到客户端。 处理完应用程序数据表示第二个交换序列结束。
并发服务器关闭套接字。
TI 代理接收回复数据并处理回复。 TI 代理将:
接收来自 TCP 传输组件的消息。
读取消息缓冲区。
TI 代理将:
将 COBOL 数据类型映射到 .NET Framework 数据类型。
调用转换例程,将大型机 COBOL 类型转换为应用程序数据。
TI 运行时将转换后的数据发送回调用方法的 .NET Framework 应用程序。
若要实现此模型,必须使用 IP 地址、端口号和 CICS 程序名称提供 TI,以执行并发服务器程序传递的应用程序 (Mscmtics.cbl)。 该模型要求在 CICS 中安装 IBM 提供的默认侦听器 (EZACIC02)。 CICS IBM 默认侦听器使用 IBM 提供的默认设置。
Host Integration Server 包含演示如何实现 TCP TRM 链接编程模型的示例代码。 示例代码位于 \install directory\SDK\Samples\AppInt。 启动 Visual Studio,打开任意所需的教程,并按照“自述文件”中的说明进行操作。
有关为 TCP/IP 配置大型机和编写服务器应用程序的信息,请参阅“适用于 MVS 的 TCP/IP V3R2:CICS TCP/IP 套接字接口指南”(IBM 文档 #SC31-7131)。
另请参阅
事务集成器组件
事务请求消息
将数据类型从自动化转换为 z/OS COBOL]
将数据类型从 z/OS COBOL 转换为自动化
CICS 组件
TI 运行时
选择适当的编程模型
编程模型