Хранение очереди сообщений в журнале
Обновлен: Ноябрь 2007
Очереди журнала позволяют хранить копии обрабатываемых сообщений. Копии сообщений, отправленных с компьютера, можно хранить в очереди журнала локального компьютера, а копии сообщений, удаленных из очереди, можно хранить в журнале данной очереди на сервере.
Хранение в журнале может быть удобно при необходимости повторной отправки сообщения в более позднее время. Например, сообщение было отправлено в очередь, а позже получено уведомление о том, что оно не может быть доставлено. Уведомления не содержат текста исходного сообщения, они содержат лишь информацию о заголовке сообщения и корреляционный идентификатор, соответствующий исходному сообщению. Если запись в журнал включена, данный корреляционный идентификатор может использоваться для поиска исходного сообщения в очереди журнала компьютера, повторного создания объекта сообщения и его повторной отправки.
Примечание. |
---|
Для извлечения сообщения по его корреляционному идентификатору можно использовать метод ReceiveByCorrelationId или PeekByCorrelationId. Обратите внимание, что несколько сообщений могут иметь один и тот же корреляционный идентификатор, а данные методы извлекают первое сообщение в очереди, имеющее данный идентификатор. |
Есть несколько моментов, которые следует иметь в виду при работе с очередями журнала:
На каждом компьютере имеется одна глобальная журнальная очередь. Все сообщения, отправленные с данного компьютера, записываются в эту журнальную очередь вне зависимости от того, были они доставлены или нет. Кроме того, у каждой очереди есть своя собственная связанная журнальная очередь.
Существует два свойства, которые контролируют использование журнальных очередей. При установке свойства UseJournalQueue в объекте MessageQueue все сообщения, полученные этой очередью (но не сообщения, отправленные этим объектом), записываются в журнал. Сообщения, отправленные через эту очередь, помещаются в журнал этой очереди. Установка свойства UseJournalQueue в объекте Message включает запись сообщений в системный журнал. Это означает, что все сообщения, отправленные системой, помещаются в системную очередь отправителя.
Журнальные очереди имеют максимальный размер, называемый квотой. Этот размер ограничен емкостью диска компьютера, на котором хранится очередь. При достижении максимального размера очереди новые сообщения, посылаемые в журнальную очередь, в системе сохраняться уже не будут. В данном случае ошибок не возникает. Для предотвращения таких ситуаций необходимо регулярно очищать журнальную очередь. Дополнительные сведения см. в разделе Практическое руководство. Очистка содержимого очереди.
Журнальные очереди сами по себе не могут создавать уведомлений, отправлять сообщения в архивные очереди или обрабатывать периоды ожидания.
Инструкции по настройке записи сообщений в журнал см. в разделе Практическое руководство. Хранение сообщений в очередях журнала.
См. также
Задачи
Практическое руководство. Хранение сообщений в очередях журнала
Практическое руководство. Очистка содержимого очереди