我正在尝试通过MQJavaClient将自定义字符串设置为消息ID我所做的事情如下所示:
字符串我想放在消息ID
中example :92f5fd96300e8dce
从在线获取十六进制数[codebeautify.org]
example:39326635666439363330306538646365
在Java客户端代码中如下
String str = "39326635666439363330306538646365";
sendmsg.messageId = str.getBytes();
当尝试打印messageid时,它会提供一些其他结果
sendmsg.messageId : [B@1b40d5f0
仍然需要使用MQ消息填充messageid。
请帮助设置MQ Message的自定义消息ID。
Roger / Josh 2017年12月26日
需要帮助
如果您需要/想要存储自己的消息ID或事务ID,则使用消息属性或MQMD的Correlation ID字段 - 只是不要使用MQMD的消息ID。
在我们的应用程序中,我们使用msgid / txnid和相关ID
msgid / txnid对于每个事务都是不同的(对于请求响应应该是相同的)
所有交易中的相关ID都相同。
现在正在尝试什么?
1.系统A和系统B通过MQ进行通信
2.现在,系统B突然以不同的格式作为响应进行响应,而系统A无法执行其操作
3.现在我的工作是通过java客户端模拟系统B的响应
4.我在我们的应用程序中发现我们同时使用msgid和correl id
我完全按照系统A完成了相关和读取。
但是这个msgid不是通过java客户端填充的,而是在日志中显示为msgid为null。
答案 0 :(得分:0)
在IBM MQ中生成自己的消息ID是个坏主意。当您的应用程序发出MQPUT和/或MQPUT1时,MQ将自动为消息生成唯一的消息ID。
如果您需要/想要存储自己的消息ID或事务ID,请使用消息属性或MQMD的Correlation ID字段 - 只是不要使用MQMD的消息ID。