如果您在一些应用程序之间交换消息,而这些应用程序在某些方面不兼容的系统上运行,则您可以配置系统,使其在消息通过代理时提供数据转换。如果在发送和接收系统上以下两个值都是不同的,则数据转换可能是必需的:
这一行为可能受与 WebSphere Message Broker 结合使用的其他产品的影响。有关更多代码页支持信息,请查看其他产品(包括您使用的任何数据库)的文档。
如果发送和接收系统上的本机 CCSID 和编码是相同的,则不需要调用数据转换处理。
WebSphere Message Broker 和 WebSphere MQ 提供数据转换工具来支持不同系统之间的消息交换。选择使用哪个工具取决于消息流处理的消息的特征:
如果消息是包含全文本(字符数据或字符串)的 WebSphere MQ 消息,则阅读此部分。如果 WebSphere MQ 支持在其上运行发送和接收应用程序以进行数据转换的系统,请使用 WebSphere MQ 工具。这提供最有效的数据转换选项。
WebSphere MQ 的缺省行为是将消息放到指定本地系统 CCSID 并进行编码的队列。发出 MQGET 的应用程序可以请求队列管理器对它们的本地 CCSID 提供转换并作为 get 处理一部分进行编码。
要使用该选项:
如果需要比 WebSphere MQ 以此方式提供的转换更复杂的数据转换(例如,转换为不受支持的代码页),可以使用 WebSphere MQ 数据转换出口。有关于此的更多信息,请参阅 WebSphere MQ Application Programming Reference。
如果消息包含数字数据,或仅包含文本而不是 WebSphere MQ 消息,则阅读此部分。如果这些消息可以预订义(即,它们的内容和结构是已知并可以预料的),则使用 WebSphere Message Broker 和 MRM 提供的工具。
所有的应用程序消息都由代理按 Unicode 格式处理,它们在输入时转换为 Unicode 格式,并在输出时从 Unicode 格式转换。您可以配置消息流来影响构造输出消息的方法。
要使用该选项:
例如,要为以 CCSID 37 和 785 编码运行的目标 z/OS 系统设置值:
SET OutputRoot.MQMD.CodedCharSetId = 37; SET OutputRoot.MQMD.Encoding = 785;
如果消息是自定义的,请阅读此部分。
在 XML 和 JMS 域中支持自定义消息。这些消息都是文本消息,并可以由 WebSphere MQ 处理(如果它们从 WebSphere MQ 应用程序发起或以这些应用程序为目标)。如果不是,则当消息通过 Compute 节点时,通过在消息中的“属性”文件夹里设置 CCSID 字段和“编码”字段,使用 WebSphere Message Broker 工具。