0

我们开发了一个流程,它在从 DB2 存储过程中获取数据后进行转换。在 wmb v7.0.0.5 的 MAPPING 节点中进行转换时,我们面临这个不可转换的可恢复异常。如何避免发生这种异常。

4

1 回答 1

0

默认情况下,您的代理的 CCSID 为 819。但是,我怀疑您发布的消息包含 CCSID 819 不支持的某些字符。

要解决此问题,您可以将 MQMD.CCSID 设置为 1208,如下所示:

SET OutputRoot.MQMD.CodedCharSetId = 1208; 

但是,我遇到了发布节点的另一个问题。发布节点在发布之前尝试将消息转换为队列管理器的 CCSID。因此,如果您的队列管理器的 CCSID 为 819(低于 1208 的 CCSID)并且发布节点尝试转换消息(其中包含 CCSID 819 不支持的特殊字符),则会引发异常(不可转换字符)。上述情况也可能适用于映射节点。要解决此问题,请尝试以下设置:

SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 1208;  
SET OutputRoot.Properties.CodedCharSetId = 1208;

如果你能留下痕迹,那么确切的原因就很清楚了。

于 2013-05-22T12:09:53.670 回答