Поделиться через


Хранение очереди сообщений в журнале

Обновлен: Ноябрь 2007

Очереди журнала позволяют хранить копии обрабатываемых сообщений. Копии сообщений, отправленных с компьютера, можно хранить в очереди журнала локального компьютера, а копии сообщений, удаленных из очереди, можно хранить в журнале данной очереди на сервере.

Хранение в журнале может быть удобно при необходимости повторной отправки сообщения в более позднее время. Например, сообщение было отправлено в очередь, а позже получено уведомление о том, что оно не может быть доставлено. Уведомления не содержат текста исходного сообщения, они содержат лишь информацию о заголовке сообщения и корреляционный идентификатор, соответствующий исходному сообщению. Если запись в журнал включена, данный корреляционный идентификатор может использоваться для поиска исходного сообщения в очереди журнала компьютера, повторного создания объекта сообщения и его повторной отправки.

afab2y8c.alert_note(ru-ru,VS.90).gifПримечание.

Для извлечения сообщения по его корреляционному идентификатору можно использовать метод ReceiveByCorrelationId или PeekByCorrelationId. Обратите внимание, что несколько сообщений могут иметь один и тот же корреляционный идентификатор, а данные методы извлекают первое сообщение в очереди, имеющее данный идентификатор.

Есть несколько моментов, которые следует иметь в виду при работе с очередями журнала:

  • На каждом компьютере имеется одна глобальная журнальная очередь. Все сообщения, отправленные с данного компьютера, записываются в эту журнальную очередь вне зависимости от того, были они доставлены или нет. Кроме того, у каждой очереди есть своя собственная связанная журнальная очередь.

  • Существует два свойства, которые контролируют использование журнальных очередей. При установке свойства UseJournalQueue в объекте MessageQueue все сообщения, полученные этой очередью (но не сообщения, отправленные этим объектом), записываются в журнал. Сообщения, отправленные через эту очередь, помещаются в журнал этой очереди. Установка свойства UseJournalQueue в объекте Message включает запись сообщений в системный журнал. Это означает, что все сообщения, отправленные системой, помещаются в системную очередь отправителя.

  • Журнальные очереди имеют максимальный размер, называемый квотой. Этот размер ограничен емкостью диска компьютера, на котором хранится очередь. При достижении максимального размера очереди новые сообщения, посылаемые в журнальную очередь, в системе сохраняться уже не будут. В данном случае ошибок не возникает. Для предотвращения таких ситуаций необходимо регулярно очищать журнальную очередь. Дополнительные сведения см. в разделе Практическое руководство. Очистка содержимого очереди.

  • Журнальные очереди сами по себе не могут создавать уведомлений, отправлять сообщения в архивные очереди или обрабатывать периоды ожидания.

Инструкции по настройке записи сообщений в журнал см. в разделе Практическое руководство. Хранение сообщений в очередях журнала.

См. также

Задачи

Практическое руководство. Хранение сообщений в очередях журнала

Практическое руководство. Очистка содержимого очереди

Другие ресурсы

Отправка и сериализация сообщений