Я отправляю сообщение MQ и получаю в ответ идентификатор сообщения и идентификатор корреляции, как и ожидалось, и я могу получить ответ от определенного сообщения, которое я отправляю, используя идентификатор сообщения, возвращенный сервером MQ.
Я поместил свое приложение в инструмент нагрузочного тестирования и увидел, что в некоторых случаях идентификатор сообщения, возвращаемый диспетчером очередей, совпадает с предыдущим сообщением, и в этих случаях приложению не удается прочитать следующее сообщение с тем же идентификатором сообщения.
Я не владелец диспетчера очередей, и администратор ответил: «Создал свой собственный идентификатор сообщения».
Я могу это сделать? Должен ли идентификатор сообщения иметь определенный формат?
Это мой код:
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 значение моего собственного идентификатора сообщения перед отправкой сообщения, как показано ниже?
queueMessage.MessageId = myOwnMessageId