具有特定消息队列 CCSID 的消息级别 CCSID
当消息发送到消息队列并且消息队列的 CCSID 不是 65535 或 65534 时,替换数据或即时消息文本将转换为消息队列的 CCSID。 然后,使用消息队列的 CCSID 来标记该消息。
例如,消息队列 MYMSGQ 的 CCSID 为 00277。 TST0002 的替换数据定义为 *CCHAR 数据。 输入以下 "发送程序消息" 命令:
SNDPGMMSG MSGDTA(X'0006D4E2C7407BF2') MSGID(TST0002) MSGF(MYMSGF)
CCSID(37) TOMSGQ(MYLIB/MYMSGQ)
在将替换数据发送到消息队列之前,将替换数据从 CCSID 00037 转换为 CCSID 00277。 X'0006 ' 是变长字段所需的长度。 X'D4E2C7407BF2' 是代码页 00037 上的 MSG #2 。 代码页 00037 中的数字符号 (#) X'7B' 转换为代码页 00277 中的数字符号 X'4A' 。 所有其他代码点在转换期间都不会更改,因为它们在代码页 00037 和代码页 00277 上都相同。
当消息的替换数据或即时消息文本为 65535 并且发送到 CCSID 不是 65535 或 65534 的消息队列时,不进行转换。 但是,使用消息队列的 CCSID 对消息进行标记。 因此,当您将消息发送到具有覆盖消息级 CCSID 的 CCSID 的消息队列时,可以使用不正确的 CCSID 来标记这些消息。
例如,消息队列 MYMSGQ 的 CCSID 为 00277。 输入以下 "发送消息" 命令:
SNDMSG MSG('MSG #2') TOMSGQ(MYLIB/MYMSGQ) CCSID(*HEX)
在将即时消息文本 MSG #2 发送到消息队列之前,不会对其进行转换。 虽然未将直接消息文本转换为 CCSID 00277 ,但它是使用 CCSID 00277 显示的。 除非从配置为支持代码页 00277 的设备输入 "发送消息" 命令,否则将失去即时消息文本的完整性。