CICS Web Support 的任务结构

当 CICS® Web Support 在 CICS 区域中处于活动状态时,对于作为 HTTP 服务器的 CICS ,将使用单独的任务来侦听入站连接请求; 从套接字接收数据并执行初始处理; 以及覆盖应用程序通过请求执行的工作。 对于作为 HTTP 客户机的 CICS ,仅应用一个任务,即发出 HTTP 请求的应用程序的任务。

套接字侦听器任务(CSOL)

这是一个长时间运行的 CICS 任务。 CICS 系统中有一个套接字侦听器任务实例。

该任务会在定义到 CICS的所有端口上检测入站 TCP/IP 连接请求,并启动与该端口关联的 CICS 服务。 当该端口用于 CICS Web Support (即,将 HTTP 或 USER 指定为协议) 时, Web 连接任务将定义为该端口的 TCPIPSERVICE 资源定义中的事务。 侦听器会连接 Web 连接任务,或者如果请求符合资格,那么会直接连接该请求的用户事务。 有关哪些请求符合条件的更多信息,请参阅 使用直接连接的用户事务处理 HTTP 请求

Web 连接任务(CWXN、CWXU 或别名)

当端口的 TCPIPSERVICE 定义具有协议 HTTP 时,Web 连接任务的缺省事务标识为 CWXN。 当协议为 USER 时,缺省值为 CWXU。 可改为使用别名,但事务始终运行程序 DFHWBXN。

当 Web 连接任务由套接字侦听器任务启动时,它要做的第一件事是发出 SOCKET RECEIVE 请求以从 Web 客户机接收数据。 当接收到一些数据时,Web 连接任务将安排 Web 客户机请求的初始处理。
  • 对于 HTTP 请求(在 HTTP 协议上),初始处理包括 URIMAP 匹配、HTTP 头的代码页转换、请求的分析和消息体的代码页转换。 该任务还会预处理从 Web 客户机接收的分块消息和由管道传送的消息。 如果使用分析器程序,那么该事务包含它。
  • 对于非 HTTP 请求(在 USER 协议上),不执行初始处理。

如果为 HTTP 请求提供静态响应(使用 URIMAP 定义),那么 Web 连接任务也会执行该处理。 如果需要应用程序生成的响应,那么 Web 连接任务将连接一个别名事务。

在将来自 Web 客户机的请求传递到别名事务之后或传递静态响应之后, CWXN 事务将终止。 套接字侦听器任务监控套接字,并在持续连接上为每个请求启动 CWXN 的新实例。 当保留在系统中的 CWXN 事务无法连接别名事务来处理更多请求时,该行为(称为异步接收)会避免在达到最大任务规范 (MXT) 的情况下出现死锁。

应用程序生成的响应的别名事务

当 Web 连接任务完成请求的初始处理时,如果将产生应用程序生成的响应,那么 Web 连接任务会连接为该请求的剩余处理阶段指定的别名事务。 CICS 为缺省别名事务 CWBA 提供资源定义。 在提供静态响应的情况下不使用别名事务。 可能通过侦听器任务来连接别名事务。 有关更多信息,请参阅 使用直接连接的用户事务处理 HTTP 请求

别名事务将执行应用程序生成的响应的处理阶段,包括接收请求、运行应用程序业务逻辑、构造 HTTP 响应和转换 HTTP 响应的代码页。 如果转换器程序用于处理请求,那么别名事务也处理它。 每个 处于这些处理阶段的 HTTP 请求都有一个别名事务实例。

作为 HTTP 客户机的 CICS

对于作为 HTTP 客户机的 CICS ,由发出 HTTP 客户机请求的应用程序所导致的所有活动都由单个任务覆盖。 这包括应用程序的操作, CICS 在发送请求和接收响应方面的操作以及套接字活动。 如果应用程序使用 EXEC CICS LINK 命令链接到其他程序,那么任务也会涵盖这些程序。 该任务具有触发应用程序的事务标识。

该任务从应用程序的活动的开始到结束都保留在系统中。 该任务可能涉及多个请求和响应,并且应用程序可打开和保持到服务器的多个连接。 当该任务结束时,会自动关闭所有打开的连接。