TCP 增强侦听器消息用户数据
TCP 增强侦听器消息 (ELM) 用户数据模型允许在 TI 和服务器 TP 之间直接传递数据和参数。
下图汇总了客户端、增强 CICS 侦听器、并发服务器和大型机事务程序之间发生的工作流。 括号中的数字指示事件发生的大致顺序。 数字后跟对事件的更详细的描述。
TCP ELM 用户数据编程模型的摘要工作流
TCP ELM 用户数据编程模型
TCP ELM 用户数据编程模型的工作原理如下:
应用程序在 TI .NET 项目中调用方法。
TI 运行时调用 TI 代理。
TI 代理将:
读取以前由 TI 设计器创建的程序集和元数据。
将 .NET Framework 数据类型映射到 COBOL 数据类型。
然后,TI 代理将:
调用转换例程,将应用程序数据转换为大型机 COBOL 类型。
生成表示 COBOL 声明或 copybook 的平展数据流缓冲区。
将消息传递给 TCP 传输组件。
TI TCP 传输使用大型机的 Internet 协议 (IP) 地址和侦听器的端口地址将连接请求发送到增强侦听器。
增强侦听器接受连接请求,并告知 TI 运行时发送 ELM。 然后,增强侦听器将等待 ELM。
ELM 是格式化的数据记录,用于标识要通过使用其 TRANID 调用的服务器 TP。 侦听器 TP 是一种特殊的大型机 TP,其主要功能是接收由运行 TCP/IP 的客户端应用程序发送的服务器 TP 调用。
TI 运行时设置 ELM 的格式,并将其发送到增强侦听器。 然后,TI 会绕过等待 ELM 回复的传输逻辑,并立即在请求标头之后发送应用程序请求数据。 然后 TI 会等待 ELM 回复。
增强侦听器接收 35 字节 ELM,然后读取 ELM 标头的内容。 增强侦听器在事务初始消息 (TIM) 中放置 35 个字节,但不对其内容执行操作。
TIM 描述服务器正在其中运行的 TCP/IP 环境,并包含并发服务器用来与 TI TCP 传输进行通信的 TCP/IP 套接字信息,以及并发服务器用于自定义其执行行为的客户端消息标头。 标头包含要链接到的服务器程序的名称。
增强侦听器启动由 ELM 中的 TRANID 使用 EXEC CICS Start 标识的并发服务器 TP 程序(Mscmtics.cbl 示例应用程序)。
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)。 在增强侦听器为并发服务器事务发出 start 命令后,增强侦听器即不在应用程序处理循环中,可以随意侦听另一个传入请求。
并发服务器运行后,它会读取标准侦听器发送的事务初始消息 (TIM)。
TIM 描述服务器正在其中运行的 TCP/IP 环境,并包含并发服务器用来与 TI TCP 传输进行通信的 TCP/IP 套接字信息,以及并发服务器用于自定义其执行行为的客户端消息标头。
并发服务器将 TRM 发送到 TI 并等待应用程序请求数据。
TI 对 TRM 进行评估,并将数据直接传递给并发服务器程序 (Mscmtics.cbl)。 TI 还会发送套接字关闭,然后 TI 等待回复数据。
接收到数据后,服务器 TP 会对数据执行业务逻辑。 所有业务逻辑都是在服务器 TP 中定义的。
服务器 TP 准备答复数据,然后将响应直接发送到客户端。
并发服务器关闭套接字
TI 代理接收答复数据并处理答复。 TI 代理将:
接收来自 TCP 传输组件的消息。
读取消息缓冲区
TI 代理将:
将 COBOL 数据类型映射到 .NET Framework 数据类型
调用转换例程,将大型机 COBOL 类型转换为应用程序数据
TI 运行时将转换后的数据发送回调用了方法的 COM 或 .NET Framework 应用程序。
Host Integration Server 包括示例代码,其中显示了如何实现 TCP ELM 用户数据编程模型。 该示例代码位于 \安装目录\SDK\Samples\AppInt。 启动 Microsoft Visual Studio,打开需要使用的教程,并按照“自述文件”中的说明进行操作。
有关为 TCP/IP 配置大型机和编写服务器应用程序的信息,请参阅“适用于 MVS 的 TCP/IP V3R2:CICS TCP/IP 套接字接口指南”(IBM 文档 #SC31-7131)。
另请参阅
事务集成器组件
事务请求消息
将数据类型从自动化转换为 z/OS COBOL]
将数据类型从 z/OS COBOL 转换为自动化
CICS 组件
TI 运行时
选择适当的编程模型
编程模型