CICS 提供的样本分析器程序 DFHWBADX

CICS® 提供工作样本分析器程序 DFHWBADX。 如果您需要通过分析器程序提供请求处理程序,又或者替代通过 URIMAP 定义,您可以将 DFHWBADX 用作编写您自己的分析器程序的起点。

注意: 本主题包含产品敏感的编程接口和关联的指导信息。
CICS 提供多种语言的源代码:
  • DFHWBADX (汇编语言)
  • DFHWBAHX (C)
  • DFHWBALX (PL/I)
  • DFHWBAOX (COBOL)

已发现匹配请求的 URIMAP 定义后,即使 URIMAP 指定 ANALYZER(YES),所提供的 DFHWBADX 也不执行请求的任何分析。 这意味着为别名事务在 URIMAP 定义中指定设置,自动接受转换器程序和应用程序,并将它们用于确定后续处理阶段。

DFHWBADX 使用 wbra_urimap 输入参数测试 URIMAP 定义是否存在,如果结果是存在,那么不对请求 URL 执行任何分析就返回。 如果编写您自己的分析器程序并希望它与 URIMAP 定义交互,那么不要复制 DFHWBADX 处理的这一方面。 为了以其他方式修改分析器程序的处理,您可能要测试 wbra_urimap 输入参数。 例如,您可以测试该参数以决定是根据来自 URIMAP 定义的输入参数执行分析,还是直接对请求 URL 执行分析。

DFHWBADX 如何解释请求 URL

DFHWBADX 解释 HTTP 请求,这些请求中的 URL 路径部分有以下语法:
图 1。 DFHWBADX 解释的路径部分语法
读取语法图跳过可视语法图/转换器/alias /程序/ignored?token
分析器程序处理的所有字段都转换为大写。 转换之后:
转换器
指定用于请求的转换器程序的名称。 它最多可以有 8 个字符。

作为特例,值 'CICS'(由四个字符组成)表示不使用转换器程序。 请参阅 转换器程序 ,以获取有关如何将转换器程序与 URIMAP 定义配合使用的信息。

alias
指定用于后续请求处理的别名事务的事务标识。 它最多可以有 4 个字符。
程序
指定要用于为请求提供服务的 CICS 应用程序的名称。 它最多可以有 8 个字符。
ignored
DFHWBADX 忽略这部分路径(但是转换器程序或应用程序可能使用它)。
token
前 8 个字节指定要传递给转换器程序的用户令牌。 DFHWBADX 忽略令牌的前八个字节后的数据(但转换器程序或应用程序可能使用它)。
在示例路径 /cics/cwba/dfh$wb1a 中:
  • 未使用转换器程序。
  • 别名事务是 CWBA。
  • CICS 应用程序是 DFH$WB1A。
除了原始 HTTP 请求派生的输出之外,DFHWBADX 还设置下列输出:
  • 代码页转换模板为 DFHWBUD。 这个模板在样本转换表 DFHCNVW$ 中定义,它在 ASCII Latin-1 字符集(代码页 ISO 8859–1)和 EBCDIC Latin 字符集(代码页 037)之间转换数据。 无需进行任何配置就可以使用样本转换表,但是请注意,可以使用输出参数 wbra_charactersetwbra_hostcodepage 来代替 wbra_dfhcnv_key 输出参数以提供更好的控制,并避免使用转换表。
  • DFHWBADX 以转义形式传递请求,并设置 WBRA_UNESCAPE_NOT_REQUIRED。

来自 DFHWBADX 的响应

DFHWBADX 产生的响应含义如下:
URP_OK
分析器发现请求符合缺省 HTTP 请求格式,并生成适合该别名的输出。
URP_EXCEPTION
分析器发现请求不符合缺省格式。 提供的原因码如下:
1
资源的长度小于 6。 (使用 DFHWBADX 识别的 URL 格式,最短可能的资源规范为 /A/B/C,要求在事务 B 下使用转换器 A 运行程序 C。) 响应和原因是当进入请求不是 HTTP 请求时的响应和原因。
2
资源规范未以 /开头。
3
资源规范包含一个 /,但少于三个。
4
资源规范中转换器名称的长度为 0 或大于 8。
5
资源规范中事务名称的长度为 0 或大于 4。
6
资源规范中 CICS 应用程序名称的长度为 0 或大于 8。

响应和原因代码在消息 DFHWB0723 中显示。 将具有 400(错误请求)状态码的错误响应返回到 Web 客户机。 这可以通过用户可替换 Web 错误程序 DFHWBEP 来修改。

URP_INVALID
eye-catcher 是无效的。 这表示一个内部错误。