![[IBM i]](ngibmi.gif)
IBM i 上的 MQRFH (规则和格式化头)
MQRFH 结构定义规则和格式化头的布局。
概述
用途: 此头可用于以 "名称/值" 对的形式发送字符串数据。
格式名称:FMRFH。
字符集和编码:MQRFH 结构 (包括 RFNVS) 中的字段是由 MQRFH 之前的头结构中的 MDCSI 和 MDENC 字段提供的字符集和编码,或者 MQMD 结构中的那些字段 (如果 MQRFH 位于应用程序消息数据的开头) 提供的编码。
字符集必须是对队列名称中有效的字符具有单字节字符的字符集。
字段
MQRFH 结构包含以下字段; 这些字段按 字母顺序进行描述:
- RFCSI (10 位带符号整数)
RFNVS之后的数据的字符集标识。这指定
RFNVS之后的数据的字符集标识; 它不适用于 MQRFH 结构本身中的字符数据。在 MQPUT 或 MQPUT1 调用上,应用程序必须将此字段设置为适合于数据的值。 可以使用以下特殊值:- CSINHT
- 继承此结构的字符集标识。
此结构 后面 的数据中的字符数据与此结构位于同一字符集中。
队列管理器将消息中发送的结构中的此值更改为结构的实际字符集标识。 如果未发生错误,那么 MQGET 调用不会返回值 CSINHT。
如果 MQMD 中
MDPAT字段的值为 ATBRKR ,那么不能使用 CSINHT。
此字段的初始值为 CSUNDF。
RFNVS之后的数据的数字编码。这将指定
RFNVS之后的数据的数字编码; 它不适用于 MQRFH 结构本身中的数字数据。在 MQPUT 或 MQPUT1 调用上,应用程序必须将此字段设置为适合于数据的值。
此字段的初始值为 ENNAT。
- RFFLG (10 位有符号整数)
标志。
可以指定以下内容:- 无
- 没有标志。
此字段的初始值为 RFNONE。
- RFFMT (8 字节字符串)
RFNVS之后的数据的格式名称。这将指定
RFNVS后面的数据的格式名。在 MQPUT 或 MQPUT1 调用上,应用程序必须将此字段设置为适合于数据的值。 此字段的编码规则与 MQMD 中
MDFMT字段的编码规则相同。此字段的初始值为 FMNONE。
- RFLEN (10 位带符号整数)
MQRFH 的总长度,包括
RFNVS。这是 MQRFH 结构的长度 (以字节计) ,包括结构末尾的
RFNVS字段。 该长度不包含跟随RFNVS字段的任何用户数据。为避免在某些环境中发生用户数据转换问题,请考虑使用
RFLEN作为四的倍数。以下常量给出结构的 fixed 部分的长度,即不包括RFNVS字段的长度:- RFLENV
- MQRFH 结构的固定部分的长度。
此字段的初始值为 RFLENV。
- RFNVS (n 字节字符串)
包含 "名称/值" 对的字符串。
这是包含以下格式的 "名称/值" 对的可变长度字符串:
每个名称或值必须与相邻的名称或值用一个或多个空白字符分隔; 这些空白不重要。 名称或值可以包含重要空格,方法是使用引号字符作为名称或值的前缀和后缀; 开头引号和匹配的右引号之间的所有字符都被视为重要字符。 在以下示例中,名称为name1 value1 name2 value2 name3 value3 ...FAMOUS_WORDS,值为Hello World:
名称或值可以包含除空字符以外的任何字符 (充当FAMOUS_WORDS "Hello World"RFNVS的定界符)。 但是,为了帮助实现互操作性,应用程序可能倾向于将名称限制为以下字符:- 第一个字符: 大写或小写字母 (A 到 Z 或 a 到 z) 或下划线。
- 后续字符: 大写或小写字母,十进制数字 (0 到 9) ,下划线,连字符或点。
名称和值区分大小写,即,不会将小写字母视为与大写字母相同。 例如,Famous_Words "The program displayed ""Hello World"""FAMOUS_WORDS和Famous_Words是两个不同的名称。RFNVS的长度 (以字节计) 等于RFLEN减去 RFLENV。 为避免在某些环境中用户数据的数据转换出现问题,建议此长度应为 4 的倍数。RFNVS必须为此长度填充空格,或者通过在字符串中的最后一个有效字符后面放置空字符来提前终止。 将忽略空字符及其后面的字节 (最多为指定长度RFNVS)。注: 由于此字段的长度不固定,因此将从为受支持编程语言提供的结构声明中省略此字段。- RFSID (4 字节字符串)
结构标识。
该值必须为:- RFSIDV
- 规则和格式化头结构的标识。
此字段的初始值为 RFSIDV。
- RFVER (10 位带符号整数)
结构版本号。
该值必须为:- RFVER1
- Version-1 规则和格式化头结构。
此字段的初始值为 RFVER1。
初始值
| 字段名称 | 常量的名称 | 常量值 |
|---|---|---|
RFSID |
RFSIDV | 'RFH¬' |
RFVER |
RFVER1 | 1 |
RFLEN |
RFLENV | 32 |
RFENC |
ENNAT | 取决于环境 |
RFCSI |
CSUNDF | 0 |
RFFMT |
FMNONE | 空白 |
RFFLG |
无 | 0 |
备注信息:
|
||
RPG 声明
D*..1....:....2....:....3....:....4....:....5....:....6....:....7..
D* MQRFH Structure
D*
D* Structure identifier
D RFSID 1 4 INZ('RFH ')
D* Structure version number
D RFVER 5 8I 0 INZ(1)
D* Total length of MQRFH includingNameValueString
D RFLEN 9 12I 0 INZ(32)
D* Numeric encoding of data that followsNameValueString
D RFENC 13 16I 0 INZ(273)
D* Character set identifier of data thatfollows NameValueString
D RFCSI 17 20I 0 INZ(0)
D* Format name of data that followsNameValueString
D RFFMT 21 28 INZ(' ')
D* Flags
D RFFLG 29 32I 0 INZ(0)