Spring Boot 3.1 JMS 应用程序 - IBM MQ v9.3 (Linux) 中的“CodedCharSetId”未设置为 5026

问题描述 投票:0回答:1

我尝试将 MQMD 标头中的“CodedCharSetId”属性设置为 5026,以便从 Spring Boot 3.1 JMS 应用程序发送到 IBM MQ 服务器(v9.3,Linux)的消息。

这是我所做的:

  1. MessagePostProcessor 实现:我创建了一个 JmsMessagePostProcessor 类来在发送之前修改消息属性。在 postProcessMessage 方法中,我设置以下属性:
  • WMQConstants.JMS_IBM_ENCODING 为“785”(假设这代表所需的编码)
  • WMQConstants.JMS_IBM_CHARACTER_SET 为“5026”(目标字符集)
  1. 发送消息:我使用org.springframework.jms.core.JmsTemplate的convertAndSend方法将消息发送到MQ服务器。

问题:

我希望 MQMD 能够显示:

  • 编码:785 CodedCharSetId:5026

然而,实际的MQMD显示:

  • 编码:785 CodedCharSetId:930(该值似乎被覆盖)

有什么奇怪的:

我可以成功地将 CodedCharSetId 设置为其他值,例如 932,但特别是对于 5026,它总是被覆盖为 930。

寻求建议:

您能否提出可能发生这种情况的任何原因以及如何确保 MQMD 中的 CodedCharSetId 设置为 5026?

jms ibm-mq spring-jms spring-boot-3
1个回答
0
投票

国家语言ccsid的支持取决于操作系统。 Ccsid 5026 似乎仅在 z/OS 和 IBM i 上受支持(尽管在其他平台上也可以进行转换)。检查 ccsid 943 或 5050 是否适合您的数据。它被记录在here

© www.soinside.com 2019 - 2024. All rights reserved.