`

MQ 字符格式、编码和CCSID的问题

 
阅读更多

问题描述:

用java写了一个向MQ队列发送消息的程序,MQEnvironment.CCSID = 1381并且队列的CCSID也是1381。但是在WebSphere MQ资源管理器中浏览队列消息时,发现数据的格式是空白,CCSID是819,编码是273。并且消息里面的中文都是乱码。折腾了一下午终于找到问题的根源,原来是MQMessage这个类在作怪。它继承了MQMD这个类,这个类包含发送消息的控制信息。其中就包含上述三个属性的配置,默认值就是上面给出的,详细信息请查阅官方文档。

 

解决方法:

 

// Define a simple WebSphere MQ Message ...

MQMessage msg = new MQMessage();

msg.encoding = 546;

msg.characterSet = 1381;

msg.format = MQConstants.MQFMT_STRING;

 

问题总结:

官方文档相当的不靠谱,数据不好听的网络语“坑爹呢”。文档中给出encoding属性的宏中根本就没有对应546的定义,characterSet 属性的宏也没有对应1381的定义

 

官方文档:http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0m0/index.jsp?topic=%2Fcom.ibm.mq.doc%2Fhelp_home_wmq.htm

 

分享到:
评论

相关推荐

    IBM WebSphere MQ 7.5基本用法.docx

    8. **字符集编码(CCSID)**: 每个队列管理器都有一个字符集编码属性,可能需要根据环境调整。在Windows系统中通常是1381,如果遇到编码不匹配的问题,可以使用`runmqsc`命令进入交互模式,通过`DISPLAY QMGR CCSID`...

    mq消息头详细介绍

    MQ消息头,即MQMD(Message Descriptor),是IBM的WebSphere MQ(Message Queuing)系统中每个消息都携带的重要元数据。...同时,需要注意跨平台兼容性和字符集转换问题,确保消息在整个系统中的正确传输和解析。

    MQ通道定义表文件说明

    此外,如果队列管理器的字符集编码 (CCSID) 不是 MQ 的默认值(如英文环境下默认为 819),则还需要设置 `MQCCSID` 环境变量。例如,在使用 UTF-8 编码时,对应的 CCSID 为 1208,设置方法如下: ``` MQCCSID=1208 ...

    MQ错误代码表

    MQRC_SOURCE_CCSID_ERROR (2111, X'83F"):源编码字符集标识无效。该错误代码表明源编码字符集标识无效。 MQRC_SOURCE_DECIMAL_ENC_ERROR (2113, X'841"):盒装十进制编码消息无法识别。该错误代码表明盒装十进制...

    IBM MQ 入门实例

    * CCSID:编码字符资源管理器的编码字符集标识。 * SDR:消息发送者。 * RCVR:消息接收者。 5. 安装 IBM WebSphere MQ * 下载最新版本:7.0.1.3,有多个版本:linux_32,linux_64,linux_win。 * 安装环境:PC-...

    WebSphere MQ程序设计

    * 更改 QM 的字符集编码(CCSID) ALTER QMGR FORCE CCSID(1381) * 定义本地队列 DEFINE QLOCAL('LQ_SAMPLE') REPLACE + USAGE(normal) + DEFPSIST(YES) ``` ##### 3. 执行配置脚本 - **批处理文件**:使用`...

    IBM WebSphere MQ mqmd说明

    - Encoding: 消息内容的编码格式,支持多种编码,如浮点数、二进制、整数和打包的十进制整数等。 2. 消息的优先级和持久性 - Priority: 表示消息的优先级,这个优先级值在0到9之间,9为最高优先级,默认值为...

    IBM WebSphere MQ 第二章

    - **字符集编号 (CCSID)**:用于字符数据编码转换的字符集编号。 - **性能测量**:是否启用性能监控功能,以收集各种性能指标数据。 **多实例支持:** 除了某些平台外,大多数系统都允许同时运行多个队列管理器实例...

    MQ 队列管理器创建及消息发送示例

    6. CCSID(编码字符集标识):定义队列管理器使用的字符集,确保消息在不同系统间正确编码和解码。 7. SDR(消息发送方)和RCVR(消息接收方):代表发送和接收消息的应用程序角色。 创建MQ队列管理器及消息发送的...

    IBM Message Broker知识点记录

    通过正确配置字符集、处理文件输入节点的问题以及添加MQMD消息头,可以确保MB在处理中文数据和转换消息时的正确性和效率。同时,深入学习MB的其他功能和特性,将有助于进一步提升系统的整体性能和可靠性。

    java结合WebSphere MQ实现接收队列文件功能

    - 消息编码(CCSID):在处理多语言或特殊字符时,需要确保正确的字符集设置,例如通过`ccsid`属性设置。 - 错误处理:在尝试获取或处理消息时,应该捕获并处理可能出现的`MQException`,确保程序的健壮性。 - ...

Global site tag (gtag.js) - Google Analytics