公司的技术平台在和某券商对接IBM MQ消息中间件时,发送到MQ中的消息多出了消息头信息:RHF2,造成消息的接收处理不正常。在此记录此问题的处理方式。
在IBM MQ中提供了一个参数 targetClient,可以通过此参数来控制jms消息中是否启用该消息头。当采用jms 作为IBM MQ的client时,在消息目标(队列名或主题名)后添加该参数即可,格式为: topic:///{目标名}?targetClient=1
targetClient=1时:消息中不会包括RHF2消息头;targetClient=0或不设置此参数时:消息中会包括RHF2的消息头。
如在创建主题时:
String str = "topic:///" + topic + "?targetClient=" + targetClient;
Topic topic= session.createTopic(str);