主机启动的处理

主机发起的处理 (HIP) 使主机应用程序能够调用 COM 或 .NET 对象的方法,将参数传递给 方法,并从 方法接收参数。 当数据首先从主机传递到客户端,然后从客户端传递到主机时,数据将从主机可理解的格式转换为适合客户端的格式

主机发起的处理在以下步骤中实现:

  1. HIP 服务进程(称为应用程序)开始侦听本地环境定义指定的终结点列表上的传入连接。

  2. 在主机上运行的客户端应用程序使用其中一个终结点启动与 HIP 系统的 TCP 连接

  3. HIP 服务进程检查终结点与客户端主机名或 IP 地址之间是否存在已建立的关联。 如果未找到任何关联,则中止连接。

  4. 关联唯一标识工作计划,该计划是要执行的工作流序列,以完成客户端请求。 有三种类型的工作计划:

    1. 终结点

    2. 事务请求消息

    3. 数据。

终结点

终结点工作计划由单个最终工作流组成。 关联直接映射到 COM 对象的方法,该对象要为客户端请求处理调用该方法。 终结点工作流执行以下操作:

  1. 接收客户端数据

  2. 解包数据并填充方法的参数

  3. 创建 对象并调用 方法

  4. 将返回的参数打包到客户端数据中

  5. 发送客户端数据

  6. 关闭连接。

事务请求消息

事务请求消息 (TRM) 工作计划由两个工作流组成:TRM 和最终工作流。 当客户端发送 TRM 时,TRM 工作流处理会话的初始部分,而工作流回复为 TRM 回复。 根据 TRM 的类型,TRM 工作流可以使用三个 TRM 处理程序之一:Microsoft 并发服务器、Microsoft Link、IBM Concurrent Server。 TRM 工作流执行以下操作:

  1. 使用分配的输入格式接收和解压缩 TRM

  2. 将 TRM 传递给分配的处理程序

  3. 处理程序返回解析信息和积极的 TRM 回复

  4. 应为字符数据的解析信息使用与主机环境关联的代码页转换为 Unicode

  5. 如果为解析信息定义了对象的方法的映射,工作流会查询数据库

  6. 如果未找到匹配项,则调用 处理程序以获取负 TRM 回复

  7. TRM 回复使用分配的输出格式打包并发送。 在负面情况下,连接已中止

  8. 工作流将控制权连同找到的方法标识一起传递给最终工作流

数据

数据确定因素工作计划由两个工作流组成:数据决定因素和最终工作流。 数据确定者工作流预处理客户端数据,以尝试查找与为关联定义的决定因素之一的匹配项。 行列符包括字符串和字符串在客户端数据中的位置。 每个行列因素都映射到 对象的方法。 启动时,决定因素会预先转换为与行线关联的主机的所有代码页。 强制执行规则,即终结点的决定因素 - 主机关联不会重复,或者一个行列因素不是另一个行列的一部分。 工作流遵循以下步骤:

  1. 给定终结点 – 主机组合的决定因素列表按长度和位置的总和按升序进行排序

  2. 从列表中获取第一个行列

  3. 接收客户端数据的一部分

  4. 如果数据与行列参数匹配,则会检查数据

  5. 如果不匹配,则从列表中获取下一个行列,根据需要接收更多客户端数据,数据与行列相比

  6. 当没有可用的确定因素与数据匹配时,连接将中止

  7. 如果找到行列因素,控件将连同方法标识和已读取的客户端数据一起传递到 Final 工作流。 可能存在以下情况:确定性数据位于映射到方法参数的客户端数据内,甚至在客户端数据之后。

注意

HIP MVS 客户端必须在套接字发送后和套接字接收之前立即执行套接字关闭。 无法立即执行套接字关闭会导致 TI 运行时拒绝数据、中断连接并记录 808 事件消息, (事务集成商 HIP 应用程序收到的数据超出预期 。) 服务器应用程序事件日志。 此外,包含要发送到工作站的数据的数据包可能看起来具有误导性:Microsoft 网络监视器显示数据包中的数据,并且数据长度不会过长。

另请参阅

Windows 启动处理
编程模型