【发布时间】:2018-03-28 19:06:52
【问题描述】:
要求是从 IBM MQ 中的传入消息中删除回车。
我们的应用程序期望响应消息中的字符长度为 1579,但它以 1581 结尾并带有“CRLF”
当执行以下命令时
/opt/mqm/samp/bin/amqsbcg TXN_RCV_FRM_SYS TXNSYS850.QM
长度 - 1581 个字节,共 1581 个
当通过 /opt/mqm/samp/bin/amqsput TXN_RCV_FRM_SYS TXNSYS850.QM 删除“CRLF”放置相同的响应消息时,应用程序能够从 QM 中选择消息
请指导我进行任何配置设置以从队列或 QM 级别中删除这些字符
2018 年 3 月 28 日问题已解决 :-)
MQGMO_CONVERT
将上述值设置为 true...
此选项将消息中的应用程序数据转换为符合 MQGET 调用的 MsgDesc 参数中指定的 CodedCharSetId 和 Encoding 值。数据在复制到 Buffer 参数之前进行转换。
转换过程假定放置消息时指定的格式字段来识别消息中数据的性质。消息数据由队列管理器转换为内置格式,并由用户编写的出口转换为其他格式。有关数据转换出口的详细信息,请参阅数据转换。
如果转换成功,则在从 MQGET 调用返回时,MsgDesc 参数中指定的 CodedCharSetId 和 Encoding 字段将保持不变。
如果仅转换失败,则返回未转换的消息数据 MsgDesc 中的 CodedCharSetId 和 Encoding 字段设置为未转换消息的值。在这种情况下,完成代码是 MQCC_WARNING。
无论哪种情况,这些字段都描述了 Buffer 参数中返回的消息数据的字符集标识符和编码。
有关队列管理器执行转换的格式名称列表,请参阅 MQMD - 消息描述符中描述的格式字段。
在 amqsbcg 中工作和不工作的 CCSD 详细信息
不工作
编码:273 CodedCharSetId:1208
工作
编码:546 CodedCharSetId:1208
【问题讨论】:
-
如果 CRLF 是问题所在,那么 MQGMO_CONVERT 肯定没有解决它。 convert 选项可以更改字符的编码方式,但不能更改字符本身。
标签: ibm-mq