Квоты сервера (Configuration.Quotas)#

Configuration.Quotas - набор лимитов для разных внутренних контуров приложения.

Во всех секциях есть параметр raiseError: если true - при превышении лимита пробрасывается исключение; если false - только запись в лог.

Примеры конфигурации#

Настройки по умолчанию:

<quotas>
    <server maxOldGenMemory="0" maxEdenSpaceMemory="80%" raiseError="true"/>
    <session maxUiCellCount="5M" maxFormCount="10" raiseError="true"/>
    <transaction maxTxCellCount="5M" raiseError="true"/>
</quotas>

Рекомендуемые настройки:

<quotas>
    <server maxOldGenMemory="80%" maxEdenSpaceMemory="80%" raiseError="true"/>
    <session maxUiCellCount="5M" maxFormCount="10" raiseError="true"/>
    <transaction maxTxCellCount="1M" raiseError="true"/>
</quotas>

server - ServerQuota#

Лимиты по памяти JVM-процесса сервера приложений.

maxOldGenMemory#

Порог по PS Old Gen: когда Old Gen достигает значения - срабатывает триггер превышения.

  • Тип: String

  • Формат: процент (80%) или байты (1234, 1K, 1M, 1G, 1T)

  • Дефолт: "0" (отключено)

  • Рекомендовано: "80%"

  • При превышении: см. raiseError

maxEdenSpaceMemory#

Порог по PS Eden Space: когда Eden достигает значения - срабатывает триггер превышения.

  • Тип: String

  • Формат: процент (80%) или байты (1234, 1K, 1M, 1G, 1T)

  • Дефолт: "80%"

  • Рекомендовано: "80%"

  • При превышении: см. raiseError

raiseError#

  • Тип: Boolean (true / false)

  • Дефолт: true

  • false: только логируем превышение

  • true: пробрасываем исключение

session - SessionQuota#

Лимиты на пользователя/сеанс: объём отображаемых данных, число открытых форм.

maxUiCellCount#

Максимальное число ячеек отображаемых данных на одну пользовательскую сессию.

  • Тип: String

  • Формат: 1234, 1K, 1M, 1G, 1T (диапазон 0..Long.MAX_VALUE)

  • Дефолт: "5M"

  • Рекомендовано: "5M"

  • При превышении: см. raiseError

maxUiRowCount#

Максимальное число строк отображаемых данных на сессию.

  • Тип: String

  • Формат: 1234, 1K, 1M, 1G, 1T (диапазон 0..Long.MAX_VALUE)

  • Дефолт: не задано

  • При превышении: см. raiseError

maxFormCount#

Максимальное число одновременно открытых MDI-форм для рабочего сеанса.

  • Тип: Integer

  • Дефолт: 10

  • Рекомендовано: 10

  • При превышении: см. raiseError

raiseError#

  • Тип: Boolean (true / false)

  • Дефолт: true

  • false: только лог

  • true: исключение

thread - ThreadQuota#

Лимиты на рабочий поток (по JDBC-коннектам).

maxJdbcConnectionCount#

Максимальное разрешённое число JDBC-соединений на рабочий поток.

  • Тип: Integer

  • Формат: 0 или 1..Integer.MAX_VALUE

  • Дефолт: не задано

  • Если значение <= 0 ИЛИ равно Integer.MAX_VALUE - ограничение не ставится

transaction - TransactionQuota#

Лимиты на gtk-транзакцию (размер данных).

maxTxCellCount#

Максимальное число ячеек данных для одной gtk-транзакции.

  • Тип: String

  • Формат: 1234, 1K, 1M, 1G, 1T (диапазон 0..Long.MAX_VALUE)

  • Дефолт: "5M"

  • Рекомендовано: "1M"

  • При превышении: см. raiseError

maxTxRowCount#

Максимальное число строк данных для одной gtk-транзакции.

  • Тип: String

  • Формат: 1234, 1K, 1M, 1G, 1T (диапазон 0..Long.MAX_VALUE)

  • Дефолт: не задано

  • При превышении: см. raiseError

raiseError#

  • Тип: Boolean (true / false)

  • Дефолт: true

  • false: только лог

  • true: исключение

jdbc - JdbcQuota#

Лимиты на пропускную способность Postgres через модель стоимости SQL-вызовов.

enabled#

Включает/выключает проверки превышения «стоимостей».

  • Тип: Boolean

  • Дефолт: не задано

maxTxCost#

Максимальная суммарная стоимость SQL-вызовов в gtk-транзакции.

  • Тип: Double (0..Double.MAX_VALUE)

  • Дефолт: не задано

  • При превышении: exception

logTxCost#

Порог суммарной стоимости SQL-вызовов в транзакции для предупреждения.

  • Тип: Double (0..Double.MAX_VALUE)

  • Дефолт: не задано

  • При превышении: warning в лог

maxExecCost#

Максимальная стоимость одиночного SQL-вызова.

  • Тип: Double (0..Double.MAX_VALUE)

  • Дефолт: не задано

  • При превышении: exception

logExecCost#

Порог стоимости одиночного SQL-вызова для предупреждения.

  • Тип: Double (0..Double.MAX_VALUE)

  • Дефолт: не задано

  • При превышении: warning в лог

pgCostRates#

Вложенный элемент с коэффициентами для формулы стоимости SQL-вызова (Postgres).

pgCostRates - PgCostRateConfig#

Коэффициенты в формуле стоимости SQL-вызова. Все параметры типа Double, диапазон 0.0..1.0.

  • shared_blks_hit - коэффициент для обращений к страницам из shared buffer

  • shared_blks_read - коэффициент для страниц, прочитанных с диска

  • shared_blks_dirtied - коэффициент для «загрязнённых» страниц

  • shared_blks_written - коэффициент для записанных страниц