我们开发了一个流程,它在从DB2存储过程获取数据后进行转换。在wmb v7.0.0.5的MAPPING节点中进行转换时,我们面临着这个不可转换的可恢复异常。如何避免发生此异常。
答案 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;
如果你能追踪,那么确切的原因就会清楚。