从DB2获取数据时消息代理中的不可转换字符

时间:2013-05-22 11:32:34

标签: ibm-mq

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

1 个答案:

答案 0 :(得分:0)

默认情况下,您的经纪人的CCSID为819.但是,我怀疑您发布的消息中包含一些CCSID 819不支持的字符。

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

SET OutputRoot.MQMD.CodedCharSetId = 1208; 

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

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

如果你能追踪,那么确切的原因就会清楚。