Очереди и сообщения в очередях в Exchange Server
Очередь — это временное хранилище сообщений, ожидающих дальнейшей обработки или доставки в пункт назначения. Каждая очередь представляет собой логический набор сообщений, которые сервер Exchange Server обрабатывает в определенном порядке. В Exchange 2016 и Exchange 2019 года очереди удерживают сообщения до, во время и после доставки. Очереди существуют в службе транспорта на серверах почтовых ящиков и на пограничных транспортных серверах. В этой статье эти серверы называются транспортными серверами.
Как и все предыдущие версии Exchange, для хранения очередей используется одна служба хранилища ESE.
Вы можете управлять очередями и сообщениями в очередях с помощью Exchange и просмотра очередей в Exchange toolbox. Эти интерфейсы можно использовать для просмотра состояния и содержимого очередей и подробных свойств сообщений. Вы также можете выполнять действия, которые изменяют очереди или сообщения в очередях. Дополнительные сведения см. в списке "Процедуры для очередей " и " Процедуры для сообщений в очередях".
Типы очередей
Следующие типы очередей используются в Exchange 2016 и Exchange 2019 г., которые являются аналогичными Exchange 2013 г.:
Очереди доставки динамически создаются при необходимости и автоматически удаляются, когда очередь пуста и прошло время истечения срока действия. Время истечения очереди контролируется параметром QueueMaxIdleTime в кодлете Set-TransportService . Значение по умолчанию — три минуты.
На пограничных транспортных серверах имеется очередь для каждого уникального конечного домена SMTP или промежуточного узла.
На серверах почтовых ящиков имеется очередь для каждого уникального пункта назначения, указанного в свойстве NextHopSolutionKey. Дополнительные сведения см. в разделе NextHopSolutionKey далее в этой статье.
Как правило, очередь подозрительных сообщений пуста. Если эта очередь не содержит сообщений, она не отображается в средствах управления очередями. Возобновление отправки сообщений в этой очереди и их удаление никогда не происходят автоматически. Сообщения остаются в очереди подозрительных сообщений, пока администратор не возобновит их отправку или не удалит их вручную.
На серверах почтовых ящиков сообщения принимает соединитель получения, каталог раскладки или преобразования либо служба отправки транспорта почтовых ящиков. На пограничных транспортных серверах сообщения обычно принимает соединитель получения, но также доступны каталоги раскладки и преобразования.
Классификатор извлекает сообщения из этой очереди и, помимо всего прочего, определяет расположение получателя и маршрут до него. После классификации сообщение перемещается в очередь доставки или в очередь "Сообщения с недостижимым местом назначения". Дополнительные сведения о категоризаторе и транспортном конвейере см. в рубрике Поток почты и транспортный конвейер.
Файлы базы данных очередей
Все очереди хранятся в одной базе данных ESE. По умолчанию эта база данных очередей расположена на транспортном сервере по адресу %ExchangeInstallPath%TransportRoles\data\Queue .
Как и любая другая база данных ESE, база данных очередей использует файлы журнала для принятия, отслеживания и хранения данных. Для повышения производительности все транзакции с сообщениями записываются сначала в файлы журнала и в память, и только потом в базу данных. С помощью файла контрольных точек можно отслеживать записи журнала транзакций, зафиксированные в базе данных. В процессе обычного завершения работы службы транспорта Microsoft Exchange несохраненные изменения базы данных, обнаруженные в журналах транзакций, сохраняются в базе данных.
Для базы данных очередей используется циклическое ведение журнала. Это означает, что журналы транзакций старше текущей контрольной точки немедленно удаляются автоматически. Таким образом, журналы транзакций нельзя воспроизвести для восстановления базы данных очередей из резервной копии.
В следующей таблице приведен список файлов, входящих в базу данных очередей.
Exchange таблицы поколений для хранения и очистки сообщений в базе данных очередей. Вместо обработки и удаления отдельных записей сообщений из одной большой таблицы база данных очереди хранит сообщения в таблицах на основе времени и удаляет всю таблицу только после успешной обработки всех сообщений в таблице. Например, рассмотрим следующий пример:
Все сообщения в очереди с 13:00 до 14:00 независимо от очереди или назначения хранятся в таблице 1p-2p_msgs .
В 14:00 в таблице хранятся новые сообщения 2p-3p_msgs .
В 16:00 создается новая таблица с именем 4p-5p_msgs . Вся 1p-2p_msgs таблица удаляется, но только в том случае, если все сообщения в таблице успешно обработаны.
Полное удаление таблиц, а не отдельных сообщений позволяет повысить производительность операций ввода-вывода для диска, на котором хранится база данных очередей.
Параметры настройки базы данных очередейВы настраиваете базу данных очереди, добавляя или изменяя клавиши в %ExchangeInstallPath%Bin\EdgeTransport.exe.config файле конфигурации XML-приложений. Этот файл связан с транспортной службой Microsoft Exchange. Изменения, внесенные в EdgeTransport.exe.config, вступает в силу после перезапуска службы транспорта Microsoft Exchange.
При установке накопительного обновления exExchangeNoVersion (например, web.config или EdgeTransport.exe.config файл) будут перезаписаны все настраиваемые параметры серверов на Exchange или internet Information Server, которые вы делаете в файлах XML exExchangeNoVersion. Убедитесь, что вы сохраните эту информацию, чтобы можно было легко настроить сервер после установки. Эти параметры необходимо настроить после установки cu exExchangeNoVersion.
В <appSettings> разделе EdgeTransport.exe.config можно добавить новые ключи или изменить существующие клавиши. Если определенный ключ не существует, вы можете добавить его вручную и изменить его значение.
Ключи для базы данных очередей, имеющиеся в файле EdgeTransport.exe.config, описаны в следующей таблице.
- Количество операций I/O базы данных, указанное ключом QueueDatabaseBatchSize , не достигнуто.
- Прошло время, указанное ключом QueueDatabaseBatchTimeout .
Свойства очереди
Очередь обладает рядом свойств, описывающих ее предназначение и состояние. Некоторые свойства очереди применяются к ней при создании и не изменяются впоследствии. Другие свойства указывают состояние, размер, время или другие показатели, которые часто обновляются.
NextHopSolutionKeyКомпонент маршрутизации классификатора в службе транспорта Microsoft Exchange выбирает пункт назначения для сообщения, и этот пункт используется для создания очереди доставки. Пункт назначения для каждого получателя указывается с помощью свойства NextHopSolutionKey. Каждое уникальное значение свойства NextHopSolutionKey соответствует отдельной очереди доставки.
Свойство NextHopSolutionKey содержит следующие поля:
DeliveryType. Представляет результаты классификации сообщения и способ передачи сообщения транспортной службой следующему переходу, который может быть конечным пунктом назначения сообщения, или промежуточным переходом по пути. Служба транспорта использует предопределенный список значений для свойства DeliveryType.
В зависимости от значения DeliveryType в очередь добавляется свойство NextHopCategory :
Значение указывает External , что следующий переход для очереди находится за пределами Exchange организации.
Значение указывает Internal , что следующий переход для очереди находится внутри Exchange организации.
Обратите внимание, что для доставки во внешнюю систему сообщению может потребоваться пройти один или несколько внутренних транзитных участков.
NextHopDomain: использует определенные значения, основанные на значении поля DeliveryType . Значение данного поля фактически является именем очереди доставки.
Значение свойства NextHopDomain не всегда является доменным именем. Например, это может быть имя целевого сайта Active Directory или группы DAG. Это поле следует рассматривать как имя следующего транзитного участка.
NextHopConnector: использует определенные значения, основанные на значении поля DeliveryType . Значение этого поля всегда выражается как GUID. Если это поле не используется, его значением будет идентификатор GUID из одних нолей.
Значение свойства NextHopConnector не всегда совпадает с идентификатором GUID соединителя. Например, это может быть GUID целевого сайта Active Directory или группы DAG. Это поле следует рассматривать как GUID следующего транзитного участка.
Значения свойств DeliveryType, NextHopCategory, NextHopDomain и NextHopConnector описаны в следующей таблице.
FQDN: синтаксис . <FQDN1,FQDN2. > Например, smarthost01.contoso.com или smarthost01.contoso.com,smarthost02.fabrikam.com .
IP-адрес: синтаксис . <[IPAddress1],[IPAddress2]. > Например, [10.10.10.100] или [10.10.10.100],[10.10.10.101] .
- Локальный Exchange 2013 или более поздний сервер почтовых ящиков.
- Сервер Exchange почтовых ящиков 2019 года в том же Exchange 2019 DAG.
- на сервере почтовых ящиков Exchange 2016 в той же группе DAG Exchange 2016;
- на сервере почтовых ящиков Exchange 2013 в той же группе DAG Exchange 2013;
- Сервер Exchange 2013 или более поздний почтовый ящик на том же сайте Active Directory в средах, не входящих в DAG.
Удаленный транспортный сервер может быть Exchange 2013 или более поздним сервером почтовых ящиков Exchange транспортного сервера 2010 г.
сообщение необходимо направить через сайт концентратора;
IncomingRate, OutgoingRate и VelocityExchange измеряет скорость ввода и выхода сообщений из очереди и сохраняет эти значения в свойствах очереди. Эти значения скорости можно использовать в качестве показателей работоспособности очереди и транспортного сервера. Свойства описываются в следующей таблице:
Если значение больше 0, сообщения покидают очередь быстрее, чем поступают в нее.
Если значение равно 0, сообщения покидают очередь и поступают в нее с одинаковой скоростью. Это значение также отображается, если очередь неактивна.
Если значение меньше 0, сообщения поступают в очередь быстрее, чем покидают ее.
На базовом уровне положительное значение свойства Velocity является признаком работоспособной очереди, которая быстро опустошается, а отрицательное значение свойства Velocity указывает, что очередь опустошается недостаточно эффективно. Однако вам также следует учитывать значения свойств IncomingRate, OutgoingRate и MessageCount, а также абсолютное значение свойства Velocity.
Возьмем, к примеру, очередь со следующими значениями свойств:
- Скорость: -50
- MessageCount: 1000
- Исходя из этого: 10
- IncomingRate: 60
Учитывая значения свойств этой очереди, по отрицательному значению свойства Velocity становится очевидно, что очередь не очищается должным образом.
Теперь рассмотрим очередь со следующими значениями свойств:
- Скорость: -0.85
- MessageCount: 2
- Исходя из этого: 0.15
- IncomingRate: 1
Хотя значение свойства Velocity отрицательное, оно очень близко к нулю, а значения остальных свойств также очень малы. Следовательно, отрицательное значение свойства Velocity не указывает на проблему с очередью.
Состояние очередиТекущее состояние очереди хранится в свойстве Status. В приведенной ниже таблице описываются возможные значения состояния очереди.
Примечания.
- Очереди доставки с любым состоянием.
- Очередь "Сообщения с недостижимым местом назначения". Если приостановить работу этой очереди, сообщения больше не будут автоматически отправляться классификатору при обнаружении изменений конфигурации. Чтобы эти сообщения были автоматически отправлены заново, необходимо вручную возобновить работу очереди.
- Очередь передачи. Если приостановить работу этой очереди, классификатор не будет извлекать сообщения, пока работа очереди не будет возобновлена.
Есть и другие свойства очереди, не требующие пояснений. Большинство этих свойств очереди можно использовать в качестве параметров фильтра. Указав условия фильтра, вы можете быстро находить очереди и выполнять с ними различные действия. Полное описание свойств фильтруемой очереди см. в описании свойств Queue.
Важное свойство очереди, которое следует упомянуть в этом разделе, MessageCount, отвечающее за отображение количества сообщений в очереди. Это свойство является важным индикатором состояния очереди. Например, очередь доставки, содержащая большое количество сообщений, которое продолжает расти и совсем не уменьшается, может указывать на проблему с маршрутизацией или транспортным конвейером, на которую следует обратить внимание.
Свойства сообщения
У сообщения в очереди есть ряд свойств. Многие из них содержат сведения, которые использовались для создания сообщения. На некоторые свойства состояния сообщений и сведений о них в значительной степени влияют соответствующие свойства очереди. Однако значения свойств отдельных сообщений могут не совпадать со значениями соответствующих свойств очереди. Другие свойства содержат сведения о состоянии, времени или других показателях, которые часто обновляются.
Состояние сообщенияТекущее состояние сообщения хранится в его свойстве Status. В приведенной ниже таблице описываются возможные значения состояния сообщения.
Другие свойства сообщенийСуществуют другие свойства сообщений, значения которых очевидны. Большинство этих свойств сообщений можно использовать в качестве параметров фильтрации. Указывая условия отбора, можно быстро находить сообщения и выполнять действия над ними. Полное описание свойств фильтруемых сообщений см. в описании Свойства сообщений в очередях.
Управление очередями и находящимися в них сообщениями
Для просмотра очередей, а также для исторических Exchange и управления сообщениями в Exchange сервере. Вы можете просматривать или работать на отдельных очередях или сообщениях или нескольких очередях или сообщениях, но только на определенном сервере.
В Exchange 2013 г. был представлен комлет Get-QueueDigest, который обеспечивает совокупное представление состояния очередей на всех серверах в определенной области. Областью может быть группа DAG, сайт Active Directory, список серверов или весь лес Active Directory. Обратите внимание, что очереди на подписанном пограничном транспортном сервере в сети периметра не включаются в результаты. Кроме того, командлет Get-QueueDigest доступен на пограничных транспортных серверах, но результаты включают только очереди с пограничного транспортного сервера.
По умолчанию командлет Get-QueueDigest отображает очереди доставки, включающие не менее десяти сообщений. Давность результатов составляет от одной до двух минут. Инструкции по смене этих значений по умолчанию приведены в статье Настройка Get-QueueDigest.
В следующей таблице описаны задачи управления, которые можно выполнять для очередей или сообщений, находящихся в них.