> For the complete documentation index, see [llms.txt](https://docs.aamsystems.ru/passoffice/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aamsystems.ru/passoffice/passoffice-guide/admin-guide-doc/vnutrennii-broker-soobshenii.md).

# Внутренний брокер сообщений

В PassOffice для системных событий и пользовательских уведомлений используется брокер сообщений.

**1. Настройки сессий (пропускная способность)**

* **Параметр** в application.properties: `spring.jms.cache.session-cache-size`
* **Назначение**: Управляет количеством сессий JMS, используемых для обмена сообщениями.
* **Влияние**: Чем больше сессий, тем выше пропускная способность системы.
* **Значение по умолчанию**: `10`.

2. **Лимиты оперативной памяти**

* **Параметр**: `passoffice.artemis.memory-usage-limit`
* **Назначение**: Максимальный объем RAM (в МБ), который брокер может использовать для хранения сообщений.
* **При превышении**: Сообщения переносятся на диск.
* **Значение по умолчанию**: `64` (МБ).

3. **Лимиты дискового хранилища**

* **Параметр**: `passoffice.artemis.storage-usage-limit`
* **Назначение**: Максимальный процент заполнения диска, при котором брокер продолжает работу.
* **При превышении**:
  * Брокер блокирует **поставщиков (producers)**.
  * Новые сообщения не принимаются до освобождения места (доставки сообщений потребителям).
* **Значение по умолчанию**: `90` (%).

**Важные замечания**

1. **Оптимизация**:
   * Увеличивайте `session-cache-size` для высокой нагрузки, но учитывайте ресурсы сервера.
   * Настройте `memory-usage-limit` в зависимости от доступной RAM.
2. **Безопасность диска**:
   * Значение `storage-usage-limit` должно быть меньше 100%, чтобы избежать полного заполнения диска.
   * Рекомендуется мониторить диск при активной работе брокера.
3. **Поведение при блокировке**:
   * Поставщики (например, модули PassOffice) получат ошибку или будут ожидать, пока потребители (consumers) не обработают сообщения.
