Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Formatting was changed.

Очереди получения и индексации

When MailArchiva receives an incoming mail from a mail server such as via an incoming SMTP connection, or manually via an import operation, the mail is assigned a randomly generated filename with a .blob extension and immediately written to disk in a receive queue. The receive queue is located in application data\queue\receive. At this point, the mail is not yet visible in the search results; it needs to be archived and indexed first. After writing the incoming mail to this temporary location, for tracking purposes, MailArchiva inserts the randomly generated ID into the database of the internal queuing engine database, whose support files are located at application data\queue\receive\ctl.

Когда Архива получает входящую почту с почтового сервера, например, через входящее SMTP-соединение, почте присваивается случайно сгенерированное имя файла с расширением .blob и немедленно записывается на диск в очереди получения. Очередь приема находится в разделе [{данные приложения]}\queue\receive. На данный момент письмо еще не отображается в результатах поиска; сначала его необходимо заархивировать и проиндексировать. После записи входящей почты в это временное местоположение, для обработки, Архива вставляет имя файл в базу данных очереди, файлы которой расположены по адресу application data {данные приложения}\queue\receive\ctl.

Как только сообщение помещается в очередь, механизм организации очередей планирует доставку элемента в очередь получения для архивирования. После архивирования данные вставляются в отдельную очередь индексов для индексации. Очередь индексов расположена по адресу {данные приложения}\queue\index, и аналогично связанная с ней база данных расположена по адресу {данные приложения}\queue\index\ctl. Поскольку операции индексирования и архивирования требуют значительного объема синтаксического анализа и вычислений по сравнению с записью необработанных входящих данных в очередь приема, операции архивирования и индексирования обычно занимают сравнительно больше времени для выполнения. В случае когда сервер получает внезапный всплеск трафика, данные могут быстро накапливаться в очередях приема и индексации. Если количество элементов в очередях превышает значение для максимальных размеров очереди, указанных в Настройка->Основной->Индекс, для очередей архивирования и индексирования соответственно; при обработке нового запроса, сервер в большинстве случаев будет ждать по крайней мере две минуты, пока слот станет доступным, в противном случае он отклонит входящее SMTP-соединение с  SMTP-кодом повторной попытк 421 или 451.

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

Настройка размеров очереди

Уменьшение размера очередей получения (в Настройка->Общие->Архив) и индексирования (указано в Настройка->Общие->Индекс) ограничивает общий объем места, которое очереди могут занимать на диске. Учитывая, что скорость чтения исходных данных обычно выше, чем скорость шифрования, сжатия + записи, крайне важно установить соответствующий размер очереди, принимая во внимание объем дискового пространства, доступного в разделе очереди, чтобы все доступное дисковое пространство не могло быть использовано когда очередь достигает максимального настроенного размера.

Изменение путей очереди

Рекомендуется размещать очереди в отдельном разделе на диске. Причина в том, что по умолчанию очереди разделяют раздел с другими файлами программы, и в момент когда сервер внезапно получает огромный поток трафика (например, DDoS или спам-атака), очередь может очень быстро вырасти. Если место для хранения будет исчерпано, вся система может стать непригодной для использования, поскольку многие компоненты Архива, такие как запись временных файлов, зависят от достаточного количества свободного места на диске. Чтобы изменить расположение очередей, отредактируйте файл bootstrap.conf.

Как восстановить потерянные элементы очереди

В редких ситуациях база данных, связанная с механизмом организации очередей, может быть повреждена из-за нехватки места на диске в разделе очереди, или из-за внезапного отключения питания, или иным образом. В этом случае потерянные элементы могут присутствовать в папках получения и индексации, но не могут быть обработаны из-за того, что механизм организации очередей не знает о них. Чтобы устранить эту проблему, остановите сервер и переименуйте каталог {данные приложения}\queue\receive в restore_receive и {данные приложения}\queue\index в restore_index. Когда Архива запустится, она увидит, что в папках restore_receive и restore_index доступны сообщения, и автоматически обработает их. Та же логика применима и к очередям smtp-клиентов!