Класс
MQQueue
в API .NET и Java для WebSphere MQ содержит три аналогичных метода:
PutForwardMessage
PutReplyMessage
PutReportMessage
Я понимаю цель первого, потому что он принимает переданное сообщение, делает копию сообщения и помещает его в очередь, но какова цель второго и третьего метода?
Документация для PutReplyMessage
гласит:
Поместить ответное сообщение в очередь, используя сообщение в качестве исходного сообщения
Документация для PutReportMessage
говорит:
Поместить отчетное сообщение в очередь, используя сообщение в качестве исходного сообщения
Больше ничего.Действительно отличный и полезный документ.
Похоже, что все три метода делают то же самое.Они принимают исходное сообщение, переданное методу, создают копию сообщения (включая тело и свойства) и задают некоторые управляющие поля, например MessageId
или CorrelationId
, на основе исходного сообщения и помещают вновь созданное сообщение в очередь.Единственная разница между ними - установка MessageType
и, возможно, некоторые условия, как следует копировать контрольные заголовки.Но зачем и когда мне нужны эти методы?
Я ожидаю, что PutReplyMessage
примет новое сообщение с телом ответа и исходное сообщение с запросом и настроит ответное сообщение с необходимыми полями, такими как тип сообщения и Id корреляции, прежде чем поместить его в очередь.Эта версия кажется менее полезной, потому что мне всегда приходится создавать собственное ответное сообщение, чтобы указать его содержимое и настроить все самостоятельно.После этого я могу просто использовать метод Put
вместо PutReplyMessage
.