我们通过 MQ 从 z/OS/CICS 系统向 AS400 发送数据。
消息的原始编码是具有 MQSTR 格式的 CCSID 500。客户端应用程序正在使用 CONVERT 选项和 CCSID 819 获取消息。
除了行尾字符之外,数据几乎都被正确转换了。任何的想法?z/OS 正在发送 0D (CR) 作为行尾字符。如果他们有 0D+0A (CR+LF),CCSID 会自动从 500 更改为 437,并且行尾仍然不在客户端。
我们通过 MQ 从 z/OS/CICS 系统向 AS400 发送数据。
消息的原始编码是具有 MQSTR 格式的 CCSID 500。客户端应用程序正在使用 CONVERT 选项和 CCSID 819 获取消息。
除了行尾字符之外,数据几乎都被正确转换了。任何的想法?z/OS 正在发送 0D (CR) 作为行尾字符。如果他们有 0D+0A (CR+LF),CCSID 会自动从 500 更改为 437,并且行尾仍然不在客户端。
您是否已经尝试过仅“0A”(LF)?您是否尝试过没有显式转换?我们在这部分转换中从来没有遇到过任何问题,我们的机器可以与 Windows、AIX、Linux 等进行通信。几乎所有时间我们都依赖于自动转换。
此外,您可能需要检查从队列中选择 MQ 消息的作业的用户。大多数时候 USER 使用系统属性(在适当的 SYSVAL 中定义)。也许这个用户配置文件已经被配置得非常具体,并且与阻止 iSeries 进行正确的自动转换的 SYSVAL 不同。
作为一个简单的测试,将您的数据通过 FTP 传输到 iSeries。这也将强制使用系统表 (WRKTBL) 进行自动转换。这可能会显示该配置中的错误。
我们遇到了队列管理器的 CCSID 设置不正确以及使用了错误的转换表的问题。