【发布时间】:2017-03-15 03:57:00
【问题描述】:
我正在发送一条 MQ 消息并按预期返回一个 messageID 和correlationID,我可以使用 MQ 服务器返回的 messageID 捕获我发送的特定消息的响应。
我将我的应用程序放入负载测试工具中,发现在某些情况下队列管理器返回的 messageID 与上一条消息相同,在这些情况下,应用程序无法读取具有相同 messageID 的下一条消息.
我不是队列管理器的所有者,管理员的回复是“创建了您自己的消息 ID”。
我可以这样做吗? messageID 是否需要具有特定格式?
这是我的代码:
message = strInputMsg;
queueMessage = new MQMessage();
queueMessage.WriteString(message);
queueMessage.Format = MQC.MQFMT_STRING;
queueMessage.Expiry = timeOutExpiry;
queueMessage.ReplyToQueueName = QueueNameExpiry;
queuePutMessageOptions = new MQPutMessageOptions();
queuePutMessageOptions.Options = MQC.MQRO_COPY_MSG_ID_TO_CORREL_ID;
queue.Put(queueMessage, queuePutMessageOptions);
bytReturn = queueMessage.MessageId;
那么我可以在发送消息之前将 MessageID 属性设置为我自己的消息 ID 值吗,如下所示?
queueMessage.MessageId = myOwnMessageId
【问题讨论】:
-
我建议不要生成您自己的消息 ID。最佳做法是将请求消息 ID 复制到响应相关 ID