WEB CLOSE

完成应用程序CICS®连接,作为 HTTP。

语法

WEB CLOSE

读取语法图跳过可视语法图WEBCLOSESESSTOKEN( data-value)

条件:NOTOPEN

此命令是线程安全的。

NOHANDLERESPRESP2是常用选项,可添加到所有 EXEC CICS 命令中以处理错误条件。 命令语法图和选项说明中没有明确包含这些选项。 有关这些常用选项和 EXEC CICS 命令语法的信息,请参阅 EXEC CICS 命令格式和编程注意事项.

描述

WEB CLOSE CICS 应用程序已经使用客户端 HTTP 连接与服务端完成连接。 会话令牌表示应用程序对连接的使用。 应用程序发出 WEB CLOSE 命令后,指定的会话令牌将不能继续使用。 必须有会话令牌才能接收来自服务器的响应以及读取该响应的 HTTP 头,因此在与服务器及其发出的响应的所有交互完成之前,不应发出 WEB CLOSE 命令。

当应用程序使用客户端 HTTP 连接完成后, CICS 可能会关闭连接,也可能不关闭:
  • 如果发出 WEB CLOSE 命令时连接仍处于打开状态,并且使用指定了连接池的 URIMAP 资源将其打开,那么 CICS 不会关闭连接。 CICS 会检查连接的状态,并将其放入池中以供复用。
  • 如果在发出 WEB CLOSE 命令时连接不适合连接池,因为服务器或应用程序先前已发出关闭连接的请求,或者未使用合适的 URIMAP 资源打开该连接,或者该连接未处于良好状态,那么 CICS 将关闭该连接,并且不会将其放入池中。
  • 如果不发出 WEB CLOSE 命令, CICS 将在任务结束时关闭连接。 关闭的连接无法放入池中。 要启用连接池,您的应用程序必须发出 WEB CLOSE 命令。

发出 WEB CLOSE 命令时, CICS 不会请求服务器关闭连接。 如果您未使用连接池,并且 CICS 将在应用程序完成后关闭连接,那么最好通过在最终 WEB SEND 或 WEB CONVERSE 命令上指定 CLOSESTATUS (CLOSE) 选项来请求服务器关闭连接。 指定此选项时, CICS 会在请求上写入 Connection: close 头,或者对于处于 HTTP/1.0 级别的服务器,会省略 Connection: keep-Alive 头。 头中的信息表示服务器可以在发送最终响应后立即关闭其连接,而不是在超时之前等待任何进一步的请求。 如果您正在使用连接池,请不要指定 CLOSESTATUS(CLOSE) 选项,因为已关闭的连接无法放入池中。

连接可能会在发出 WEB CLOSE 命令之前应服务器的请求而关闭。 如果您需要测试服务器是否已请求关闭连接,请使用 WEB READ HTTPHEADER 命令在来自服务器的最后一条消息中查找 Connection: close 头。

如果服务器确实请求关闭连接,那么与该连接相关的数据仍在 CICS 中保持可用,直到发出 WEB CLOSE 命令为止。 可用数据包括接收自服务器的最新消息,以及用于打开连接的参数(如服务器的方案和主机名)。 当服务器已关闭连接时,应用程序无法执行以下任务:
  • 使用 WEB SEND 或 WEB CONVERSE 命令在该连接上发送进一步的请求。
  • 使用 WEB WRITE HTTPHEADER 命令编写 HTTP 头。
但是,应用程序仍可以执行以下任务:
  • 使用 WEB RECEIVE 命令接收响应。
  • 使用 WEB READ HTTPHEADER 和 HTTP 头浏览命令检查 HTTP 头。
  • 使用 WEB EXTRACT 命令抽取连接信息。
发出 WEB CLOSE 命令时,将清除与该应用程序使用连接相关联的数据。

选项

SESSTOKEN(数据值)
指定会话令牌,这是一个8字节的二进制值,用于唯一标识应用程序CICS 和服务器之间使用客户端 HTTP的情况。 HTTP CICS WEB OPEN命令会返回该值。 当您对会话令牌标识的连接发出“关闭 Web”命令时 CICS 会清除与应用程序使用连接相关的数据,并使会话令牌失效,无法再供应用程序使用。 会话令牌 说明如何使用会话令牌。

条件

19 NOTOPEN
RESP2 值有:
27
无效的会话令牌。
144
一个或多个 Web 命令参数无效。