共享分析器和转换器程序之间的数据

CICS® 在分析器和转换器程序之间传递三个参数,这些参数允许这些处理阶段共享数据。

user_data 指针
该参数包含阶段间传递的 32K 存储器块的地址。 在分析器程序的入口处,指针指向包含 HTTP 请求的存储器块。 完成转换器程序的编码功能后, CICS Web Support 将其用于查找包含 HTTP 响应的存储器块, 除非 EXEC CICS WEB API 命令已用于生成响应。

尽管您可以修改该指针所指存储器块地址的内容,但禁止更改分析器程序中的指针值。

在转换器程序和用户编写的应用程序之间,您可以将指针不更改地从一个阶段传递到另一个阶段,或者您可以在程序中发出 GETMAIN 命令并传递新获取的存储器地址(以指针的形式)。

user_data 长度
该参数是 user_data 指针定位的存储器的长度。
用户令牌
用户令牌是一个由分析器程序和转换器程序共享的 8 字节字段。 它可以包含任何您想要的信息:
  • 您可以在用户令牌里直接传递少量的共享信息。
  • 要传递更多的信息,您可以在某个程序中发出 GETMAIN 命令来获取共享工作区域的存储器。 然后使用用户令牌传递共享存储器的地址。
您可以在每个程序中更改用户令牌的内容:例如,用户令牌在从分析器程序传递到转换器程序的解码函数时可能有某种含义,而传递到编码函数时会有不同含义。

分析器程序可以修改参数列表中被传递到转换器程序的任何参数。 不能更改指针,但可以更改指针所指向的数据。 不应更改每个字段的长度。

注: 分析器和转换器程序在不同的 CICS 任务下执行。 因此,如果您在分析器程序中发出 GETMAIN 命令,而存储器要在转换器程序中可见的话,您必须对 SHARED 选项进行编码。 通常, CICS不会自动释放使用 SHARED 选项获取的存储器,因此当程序不再需要该存储器时,必须发出 FREEMAIN 命令。 但是,在将 HTTP 响应发送到 Web 客户机之后, CICS 将释放 user_data 指针所寻址的存储器。