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
分析器程序处理的所有字段都转换为大写。 转换之后:
- 转换器
- 指定用于请求的转换器程序的名称。 它最多可以有 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_characterset和wbra_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 是无效的。 这表示一个内部错误。
