Параметры работы
Параметры работы — это настройки, определяющие поведение механизмов сервера приложений: пулы соединений, статистику оптимизатора, пороги защиты от слишком больших или слишком долгих запросов, политику повторов при конфликтах и блокировках, материализацию изменений, замеры потребления памяти, отображение элементов формы и т.п. В отличие от параметров запуска, фиксированных для процесса сервера, значение параметра работы задаётся перечисленными ниже способами и может перегружаться во время работы системы, в том числе для отдельной роли пользователя. Большинство параметров работы начинает действовать сразу после изменения значения; отдельные читаются только при запуске системы, что указано в описании параметра.
Параметры работы в платформе могут задаваться одним из следующих способов (в порядке их приоритетов, снизу более приоритетные):
- В java коде в файле
lsfusion.server.physics.admin.Settings.java(актуально для форков платформы) - В
lsfusion.properties(обычно являются частью проекта, а значит действует по умолчанию для всех инсталляций) - название параметра должно начинаться наsettings(напримерsettings.enableUI) - В
conf/settings.properties(для конкретных инсталляций) - название параметра должно начинаться наsettings - В Java параметрах запуска название параметра должно начинаться на
Dиsettings(например-Dsettings.enableUI=2) - В БД:
Администрирование > Система > Настройки > Параметры. В этом интерфейсе можно задать как глобальные настройки, так и настройки для конкретных ролей - Во время выполнения действия, при помощи системных действий:
Service.pushSetting[STRING, STRING],Service.popSetting[STRING](перегружают значение свойства для всего текущего потока).
Параметры, управляющие выполнением запросов (например, тайм-ауты механизма материализации запросов), не действуют на уже скомпилированные запросы: вычисленное для запроса состояние выполнения — его тайм-ауты и шаги материализации — кэшируется вместе с запросом в кэше скомпилированных запросов, поэтому изменённый параметр применяется только к вновь компилируемым запросам. Константные литералы при компиляции параметризуются, поэтому запрос, отличающийся только литералом, также переиспользует уже скомпилированный запрос. Экспериментируя с такими параметрами, сочетайте Service.pushSetting[STRING, STRING] / Service.popSetting[STRING] со сбросом кэшей, чтобы запросы перекомпилировались с новыми значениями — как после изменения, так и после восстановления прежних: Service.dropLRUCustom[DOUBLE, BOOLEAN] (процент сбрасываемого и флаг случайного сброса) либо Service.dropLRU[], который берёт их из Service.dropLRUPercent[] / Service.randomDropLRU[] и ничего не делает, пока процент пуст.
В таблице ниже перечислены не все поля класса настроек: параметры отдельного механизма описаны вместе с этим механизмом (например, пороги элемента выбора в интерактивном представлении), а внутренние параметры механизмов платформы, например эвристики оптимизатора запросов или управления размером кэшей, не описываются вовсе.
| Тип параметра | Описание | По умолчанию | |
|---|---|---|---|
enableUI | int | Определяет доступ к пользовательскому интерфейсу (в том числе для form api)2 - Разрешать анонимный доступ1 - Разрешать только аутентифицированный доступ0 - Не разрешать доступ | 1 (при старте сервера в режиме разработки - 2) |
enableAPI | int | Определяет доступ к программному интерфейсу (за исключением form api)2 - Разрешать анонимный доступ1 - Разрешать только аутентифицированный доступ0 - По умолчанию не разрешать доступ. При этом значении внешние запросы всё равно разрешаются для действий с аннотацией @@noauth, для аутентифицированных запросов к действиям с аннотацией @@api, а также для аутентифицированных пользователей с доступом к форме навигатора System.interpreter. | 0 (при старте сервера в режиме разработки - 2) |
freeConnections | int | Максимальное количество соединений в пуле соединений на сервере приложений | 12 |
statDegree | int | Основание используемое для оценки количества записей (статистики) всеми оптимизаторами. Так оптимизаторы любое количество записей считают равным заданному основанию в некоторой степени (например если количество записей реально равно 1000, а основание 5, то оптимизатор считает количество записей равным 5 в 4-й степени). Соответственно, чем больше основание, тем менее точной становится статистика, а значит уменьшается время компиляции, размеры кэшей и генерируемых запросов, но при этом может существенно повышаться вероятность ошибки при построении правильного плана запроса. | 5 |
authTokenExpiration | int | Время действия токена аутентификации в минутах. | 60*24 (1 день) |
oauthAccessTokenExpirationoauthRefreshTokenExpirationoauthAuthCodeExpiration | intintint | Время действия (в минутах) токена доступа, токена обновления и кода авторизации, выдаваемых встроенным сервером авторизации OAuth; действуют, пока одноименные свойства модуля Authentication (Authentication.oauthAccessTokenExpiration[] и другие, задаваемые в форме настроек аутентификации) равны NULL. | 6060*24*30 (30 дней)10 |
reserveIDStep | int | Количество ID, которые сразу резервирует сервер приложений для оптимизации при выполнении одиночных операций добавления объектов (при асинхронном вводе, одиночном NEW и т.п.) | 50 |
queryLengthTimeout | int | Параметры механизма материализации запросов. queryLengthTimeout - с какой длины запроса включать этот механизм | 1000 |
useRequestTimeout | boolean | Включает механизм повторных удаленных вызовов, если эти вызовы выполняются слишком долго. Необходимо для разрешения ситуаций, когда вызов выполнен на сервере, но ответ из-за сетевых проблем не приходит (где-то теряется). Последнее обычно бывает, когда сервер приложений работает в виртуализированной среде. Соответственно, в таком случае эту настройку рекомендуется включать, и выключать в обратном случае. | true |
deleteFromInsteadOf | int | Количество записей, ниже которого временная таблица, возвращенная внутри транзакции, очищается через DELETE, а не через TRUNCATE, который внутри транзакции удерживает исключительную блокировку на нее до коммита. Записи, оставшиеся мертвыми от предыдущих очисток этой таблицы, учитываются в этом же пороге, так как до сброса ее хранилища их никто не освобождает. 0 возвращает TRUNCATE | 100000 |
useGlobalTempTablePool | boolean | Выдавать сессионную таблицу из пула, общего для всего узла сервера, вместо создания временной. Создание таблицы берет блокировку, которая до конца транзакции подавляет fast path менеджера блокировок для всего кластера PostgreSQL; таблица пула создается один раз на узел, а не по разу на каждое соединение, которому нужна такая форма. Если подходящего слота нет, используется обычная временная таблица. Только для PostgreSQL. В режиме разработки и в тестовом режиме включено по умолчанию | false |
globalTempTablePoolTablespace | string | Табличное пространство, в котором пул узла создает свои таблицы. Пустое значение - табличное пространство базы по умолчанию. Таблица пула - обычное постоянное отношение, поэтому temp_tablespaces на нее не распространяется: если временные таблицы вынесены в отдельное табличное пространство, его нужно указать здесь, и оно должно переживать перезапуск. Только для PostgreSQL | `` |
globalTempTablePoolMaxTables | int | Количество таблиц, которое узел может держать в этом пуле одновременно, по всем формам. Сверх него запрос получает обычную временную таблицу | 2000 |
logTempTables | boolean | Записывает в logs/temptable.log каждую операцию над сессионной (временной) таблицей - создание, очистку через DELETE или TRUNCATE, удаление, ANALYZE, а также нашлась ли в пуле готовая, - помечая те из них, которые произошли внутри транзакции, и добавляет одну итоговую строку на транзакцию. Нужно для диагностики того, сколько таких операций берет транзакция: на PostgreSQL операции внутри транзакции удерживают свои блокировки до коммита | false |
tempTablesTimeThresholdtempTablesCountThreshold | intint | Определяют минимальный порог времени жизни (в секундах) временной таблицы и количество таблиц на соединение, при превышении которых эти временные таблицы начинают очищаться / удаляться в регламентном режиме. Минимальный порог времени жизни таблицы должен быть соизмерим со стандартным временем использования временной таблицы. Чем эти пороги меньше, тем меньше потребление ресурсов сервером бд, но тем выше вероятность возникновения "ротации кэшей" | 24040 |
queryRowCountPessLimitqueryRowCountOptDivider | intint | Параметры механизма защиты от слишком больших запросов. queryRowCountPessLimit - минимальное количество записей, для которых начинает работать эта защита, queryRowCountOptDivider - порог, при превышении которого сервер приложений будет кидать ошибку (задается как часть памяти от всей имеющейся в распоряжении сервера приложений памяти, так если равно значение параметра равно 50, а объем памяти 100GB, то порог равен 100GB/50=2GB). | 100050 |
queryLengthLimit | int | Параметры механизма защиты от слишком длинных запросов. queryLengthLimit - длина запроса, при превышении которого сервер приложений будет кидать ошибку. | 2000000 |
remoteLogTime | int | Порог времени выполнения (в миллисекундах), при превышении которого удаленный вызов записывается в соответствующий лог (server-remote) | 3000 |
explainThresholdexplainJavaStackexplainCompile | intbooleanboolean | Параметры вывода логов планов выполнения запросов
| 100falsefalse |
startServerAnyWay | boolean | Стартовать сервер, даже при наличии ошибок в структуре индексов или синхронизации метаданных | false |
dryRun | boolean | Останавливает старт сервера сразу после того, как логика (модули, классы, свойства, действия) скомпилирована и проверена, до установления соединения с базой данных. Полезно для проверки изменений в .lsf без подключения к реальной базе данных | false |
batchScriptErrors | boolean | Продолжать проверку модуля после найденной семантической ошибки, чтобы за один запуск сообщалась не только первая из них. Сообщается столько ошибок, сколько удается разобрать после сбоя, а не обязательно все, что есть в модуле. dryRun включает этот режим всегда. Читается при старте | false |
maxScriptErrorsPerModule | int | Сколько ошибок сообщать по одному модулю при включенном batchScriptErrors. По достижении этого числа модуль перестает проверяться | 10 |
useISOTimeFormatsInIntegration | boolean | Записывать значения даты и времени строками в форматах ISO 8601 в текстовых форматах интеграции (JSON, XML, CSV). Если параметр сброшен, используются форматы текущей локали | true |
removeJoinCutBackwardCompatibility | boolean | Восстанавливает поведение проталкивания предикатов до версии 7.0: join'ы, зависящие от цели проталкивания, вырезаются из проталкиваемого условия целиком, вместо того чтобы сохраняться с виртуализацией зависящих аргументов. Используется как быстрый fallback, если после перехода на 7.0 отдельные запросы падают с ошибкой некорректной операции над множеством или получают более медленные планы (см. issue #1699) | false |
keyExprCompareJoinBackwardCompatibility | boolean | Восстанавливает обработку сравнений с интервалами при планировании проталкивания предикатов до версии 7.0 (без key compare join'ов и с защитами от висячих интервальных ключей, которые они заменили). Вместе с removeJoinCutBackwardCompatibility полностью восстанавливает планирование проталкивания версии до 7.0 | false |
allowNestedTransaction | boolean | Разрешает другой сессии работать на sql-сессии, уже находящейся в транзакции: её чтения и изменения присоединяются к этой транзакции вместо ошибки (видят её незафиксированные данные и исчезают при её откате, а применение изменений там не атомарно само по себе - его фиксация физически ничего не делает). Может включаться для одного стека через pushSetting / popSetting, если это сделано осознанно (см. issue #1726) | false |
allowUserInteractionInTransaction | boolean | Разрешает взаимодействие с пользователем внутри транзакции: диалог, сообщение или запрос ввода внутри APPLY только логируется вместо ошибки (транзакция и её блокировки удерживаются на время раздумий пользователя). Может включаться для одного стека через pushSetting / popSetting, если такое взаимодействие сделано осознанно (см. issue #1726) | false |
prefixIndexIntervalBackwardCompatibility | boolean | Восстанавливает учет интервальных условий только по первому полю индекса (интервал по полю, стоящему в составном индексе дальше, не учитывается). Читается при старте | false |
conflictSleepThresholdconflictSleepTimeDegree | intint | Параметры устранения повторяющихся update conflict'ов:
| 32 |
timeoutNanosPerRow | int | Среднее количество наносекунд на обработку одного ряда (необходимо для оценки того, сколько приблизительно должен выполняться запрос). Если это расчетное время превышено платформа пытается материализовать некоторые подзапросы (или как-то изменить этот запрос на более пессимистичный) и выполнить запрос снова. Уменьшение этого параметра может приводить, к более частым материализациям и вообще дополнительным повторным выполнениям запроса, увеличение может привести к использованию неправильных планов (прежде всего nested loop'ов на соединении больших таблиц), в случаях когда, к примеру, SQL сервер неправильно оценивает статистику подзапросов. | 20 |
deadLockThreshold | int | Параметры устранения повторяющихся dead lock'ов. deadLockThreshold - после какого количества неудачных (когда возникал dead lock) попыток включать механизм. | 0 |
periodRestartConnectionspercentRestartConnections | intint | Параметры механизма перестарта соединений. periodRestartConnections - определяет как часто (период в секундах) будет запускаться этот механизм. percentRestartConnections - какой процент соединений с максимальным скорингом будет перестартовываться. | 601 |
closeConfirmedDelaycloseNotConfirmedDelay | intint | Задержки (в миллисекундах) окончательного закрытия формы после инициации ее закрытия на сервере. closeConfirmedDelay - время, которое дается клиенту на то, чтобы закончить все дела с формой после того, как он подтвердил закрытие (этот механизм нужен для экономии round trip запроса при закрытии формы). closeNotConfirmedDelay - время, по истечении которого форма закрывается в любом случае, если подтверждения от клиента не пришло. | 5000300000 |
defaultCompareForStringContains | boolean | Использовать Содержит в качестве фильтра по умолчанию в пользовательских фильтрах | false |
limitHintIncrementComplexitylimitComplexityGrowthCoefflimitHintIncrementStat limitHintIncrementValueComplexitylimitApplyHintIncrementComplexitylimitApplyHintIncrementStat | intdoubleintintintint | Параметры управления сложностью изменений (материализация изменений свойств, когда сложность инкрементальных вычислений становится слишком большой):
| 501.520010001001000 |
excessThreadAllocatedBytesexcessInterruptCountthreadAllocatedMemoryPeriod | longintint | Параметры механизма защиты от слишком большого потребления памяти на сервере приложений:
| 5368709120L (5GB)4180 (3 минуты) |
useSavePointsThresholdsavePointCountForExceptionsupdateSavePointsMinMultiplierupdateSavePointsMaxMultiplier | intintdoubledouble | Параметры механизма использования savepoint'ов в транзакциях (для того чтобы не перестартовывать всю транзакцию, например в механизме материализации подзапросов):
| 5-10.83.0 |
changeBooleanOnSingleClick | boolean | Определяет будет ли событие изменения свойства логического типа на форме инициироваться по одиночному (true) или двойному (false) клику мыши | не задан (клиент решает по виду клика) |
changeActionOnSingleClick | boolean | Определяет будет ли событие вызова действия на форме инициироваться по одиночному (true) или двойному (false) клику мыши | true |
defaultAutoImageRankingThresholddefaultNavigatorImageRankingThresholddefaultNavigatorImagedefaultContainerImageRankingThresholddefaultContainerImagedefaultPropertyImageRankingThresholddefaultPropertyImage | floatfloatbooleanfloatbooleanfloatboolean | Параметры механизма автоматической установки иконок | 0.0f0.1ftrue0.6ffalse0.8ffalse |
maxStickyLeft | double | Доля ширины таблицы, которую в веб-клиенте могут занимать закрепленные слева колонки (опция свойства STICKY); колонки, не уместившиеся в нее, не закрепляются. | 0.33 |
useShowIfInReports | boolean | При построении отчета удаляет из шаблона расположенные непосредственно в бэнде текстовые поля свойств, поле SHOWIF которых объявлено в шаблоне и равно NULL в первой строке отчета, вместе с занимаемой ими полосой. | true |
contentWordWraphighlightDuplicateValueuserFiltersManualApplyModesuppressOnFocusChange | booleanbooleanbooleanboolean | Значения по умолчанию настроек оформления «перенос текста», «подсветка дубликатов», «ручное применение фильтров» и «начинать редактирование при фокусе» (интерфейс пользователя) для пользователей, которые их не задали. | falsefalsefalsefalse |
newConnectionAttempts | int | Сколько раз открытие нового соединения с базой данных повторяется после неудачи, прежде чем ошибка будет выброшена вызывающему | 3 |
disablePoolConnections | boolean | Отключает пул соединений с базой данных: возвращаемое соединение закрывается, а не сохраняется для повторного использования (пул хранит до freeConnections свободных соединений на каждый узел базы данных). Предназначен для диагностики | false |
disablePoolPreparedStatementsqueryPrepareLengthqueryPrepareRunTime | booleanintint | Параметры пула prepared statement'ов. Запрос, текст которого длиннее queryPrepareLength символов, а выполнение заняло больше queryPrepareRunTime миллисекунд, сохраняется подготовленным на своем соединении и используется повторно; disablePoolPreparedStatements отключает пул | true100040 |
checkCurrentDatecheckCurrentDataDateTime | intint | Периоды (в секундах) системных задач, обновляющих Time.currentDate[] при смене дня и снимки Time.currentDateTimeSnapshot[] / Time.currentZDateTimeSnapshot[] | 301800 |
updateFormCountPeriodupdateUserLastActivityupdatePingInfo | intintint | Периоды (в секундах) системных задач, записывающих накопленную в памяти активность клиентов в базу данных: сколько раз открывалась каждая форма, время последней активности каждого подключения и статистику ping по каждому компьютеру | 30303600 |
notificationCleanupPeriod | int | Сколько (в секундах) сервер хранит уведомление для клиента, который его еще не забрал (вызов NEWEXECUTOR CLIENT, внешний UI redirect и т.п.), сверх собственной задержки или периода вызова; периодический вызов продлевает срок при каждом срабатывании. Просроченные удаляет задача с тем же периодом | 600 |
flushPendingTransactionCleanersThreshold | int | Период (в секундах) задачи, освобождающей уже не нужные сессии временные таблицы, если их освобождение пришлось отложить, потому что соединение сессии в этот момент находилось в транзакции | 10 |
schedulerLogFlushInterval | int | Период (в секундах), с которым сообщения, которые выполняющаяся задача планировщика пишет в свой лог, сбрасываются в базу данных | 5 |
periodProcessDump | int | Период (в секундах) задачи, записывающей список выполняющихся SQL- и Java-процессов (то, что показывает монитор процессов) в logs/processdump.log | 60 |
periodBalanceConnectionspercentBalanceConnections | intdouble | Параметры балансировки соединений между узлами базы данных (см. масштабирование базы данных): каждые periodBalanceConnections секунд percentBalanceConnections процентов соединений (не меньше одного), начиная с тех, что находятся на самом загруженном узле и держат меньше всего строк временных таблиц, переносятся на наименее загруженный узел | 51 |
readSQLServerCpuTimePeriod | int | Период (в секундах), с которым по SNMP (snmpPort[DBServer]) читается загрузка CPU каждого узла базы данных и пересчитывается оценка нагрузки, по которой выбирается узел для нового соединения (см. веса ниже) | 5 |
baseConnWeightextraConnWeightlagSensitivitylagScalemasterPenalty | doubledoubledoubledoubledouble | Веса оценки нагрузки узла базы данных; новое соединение уходит на узел с наименьшей оценкой. Оценка равна загрузке CPU (0..1) плюс (baseConnWeight + extraConnWeight × загрузка CPU) × доля узла во всех соединениях, плюс для реплики lagSensitivity × lag / (lagScale + lag), где lag - отставание репликации в секундах (то есть при отставании в lagScale секунд это слагаемое равно половине lagSensitivity), плюс masterPenalty для мастера | 0.30.92.02.00.1 |
tempStatisticsTarget | int | default_statistics_target, с которым выполняется ANALYZE временной таблицы (PostgreSQL); 0 оставляет настройку сервера | 10 |
deleteFromInsteadOfdeleteFromInsteadOf | intboolean | Аналоги deleteFromInsteadOf вне транзакции: количество строк (включая оставшиеся мертвыми после предыдущих очисток), ниже которого временная таблица очищается через DELETE, а не TRUNCATE, 0 - всегда TRUNCATE; флаг выбирает DELETE для таблицы, количество строк в которой неизвестно, в том числе внутри транзакции | 0false |
applyAutoAttemptCountLimitdialogTransactionTimeout | intint | Что происходит, когда транзакция применения изменений отменена по тайм-ауту запроса. Без пользователя (задача планировщика, внешний вызов) применение повторяется до applyAutoAttemptCountLimit раз, после чего отменяется. С пользователем показывается диалог с предложением повторить, повторить без тайм-аута или отменить, а dialogTransactionTimeout - сколько (в миллисекундах) диалог ждет ответа, прежде чем отменить | 35000 |
tooMuchRetryAttemptstooMuchAttempts | intint | Сколько раз применение изменений повторяется после временной ошибки, прежде чем ошибка будет выброшена: tooMuchRetryAttempts для ошибок prepared statement'а, ставшего недействительным после изменения схемы (повторная подготовка их устраняет), tooMuchAttempts для нарушения уникальности, которое может быть гонкой между сессиями | 315 |
trueSerializableAttempts | int | В режиме уровня изоляции транзакций (см. disableTILMode[] в System_Service) применение начинается на уровне SERIALIZABLE и остается на нем в течение trueSerializableAttempts повторов после конфликтов обновления; последующие повторы выполняются на REPEATABLE READ. 0 - SERIALIZABLE не используется | 0 |
timeoutStarttimeoutDegreetimeoutMinMillis | intintlong | Параметры тайм-аутов запросов в механизме материализации запросов (см. queryLengthTimeout, timeoutNanosPerRow). Запрос, отмененный по тайм-ауту, повторяется попеременно с волатильной статистикой и без нее, начиная с тайм-аута в timeoutStart секунд, который умножается на timeoutDegree на каждом втором повторе. timeoutMinMillis - нижняя граница (в миллисекундах) времени выполнения, оцененного по timeoutNanosPerRow | 35100 |
maxThreadAllocatedBytescacheMissesStatsLimit | longint | Пороги периодического замера памяти (см. threadAllocatedMemoryPeriod), при превышении которых поток записывается в logs/allocatedbytes.log вместе со статистикой своих кэшей: байты, выделенные потоком за период, и промахи кэшей за период | 500048576 (~500MB)10000 |
updateStatisticsLimit | int | Количество измененных строк временной таблицы, после которого ее статистика пересчитывается; независимо от количества она пересчитывается и тогда, когда изменение переводит количество строк таблицы в другой порядок (см. statDegree) | 300 |
majorStatChangeDegreeupdateStatsDropLRUThreshold | intint | majorStatChangeDegree - множитель, statDegree в степени majorStatChangeDegree (25 при значениях по умолчанию), который задача обновления статистики использует дважды: статистика таблицы обновляется, когда строк, добавленных с последнего обновления, стало больше ее оценки количества строк в этот множитель раз (или удаленных - больше самой оценки), а обновление, изменившее оценку таблицы или класса в этот множитель раз, считается существенным изменением. Как только существенных изменений, накопившихся с последнего сброса, становится больше updateStatsDropLRUThreshold, сбрасываются кэши (LRU), поскольку планы в них построены на старой статистике | 21 |
disableSyncStatProps | boolean | Не вычислять статистику (оценку количества значений) каждого свойства при синхронизации объектов рефлексии (Reflection.Property) с базой данных при старте; вместо нее записывается статистика по умолчанию. Читается при старте | false |
maxNumericPrecisionmaxNumericScale | intint | Точность и количество знаков после запятой для NUMERIC, объявленного без них, и верхние границы для объявленных | 12732 |
useMaxDivisionLength | boolean | Результат деления значений NUMERIC получает maxNumericScale знаков после запятой (делимое приводится к этому типу перед делением). Если выключено, количество знаков равно сумме знаков после запятой делимого и целых знаков делителя - поведение прежних версий | true |
safeCastIntType | int | Как значение, которое может не поместиться, приводится к целочисленному типу: 0 - PL/pgSQL-функция, перехватывающая ошибку приведения и возвращающая NULL (подвержена ошибке PostgreSQL 13 при отмене запроса), 1 - SQL-функция, возвращающая NULL, если значение вне диапазона типа, 2 - обычное приведение в арифметике, при непомещающемся значении выбрасывается ошибка СУБД (приведение из строки сохраняет функцию) | 1 |
updateSavePointsPeriodupdateSavePointsResultPeriodupdateSavePointsCoeff | intintdouble | Адаптация useSavePointsThreshold: каждые updateSavePointsPeriod секунд сервер проверяет, укладываются ли нужные в этот момент savepoint'ы в текущий порог, а каждые updateSavePointsResultPeriod секунд делит множитель порога на updateSavePointsCoeff, если они укладывались больше чем в 80% проверок, или умножает на updateSavePointsCoeff, если меньше чем в 60% (оставаясь в пределах updateSavePointsMinMultiplier и updateSavePointsMaxMultiplier) | 3018001.3 |
isClustered | boolean | Сервер - один из нескольких серверов приложений, работающих с одной базой данных. Отключает локальные кэши сервера, которые предполагают, что данные меняет только он: кэш значений асинхронного ввода и отслеживание удаленных объектов, позволяющее сессии пропускать проверки классов | false |
restrictLongValuesInStat | boolean | Ограничивает количества строк, записываемые в статистику рефлексии (Reflection.quantity[Property], количества строк таблиц и классов), значением 2147483647 - так их хранила версия 6. Оставьте включенным, пока что-то в приложении еще ожидает там INTEGER | true |
noDisablingNestedLooplastStepCoeffsubQueriesSplitsubQueriesRowsThresholdsubQueriesRowsMaxsubQueriesRowCountCoeffsubQueriesParentCoeffsubQueriesPessQueryCoeff | booleanintintintintintintint | Параметры механизма материализации запросов (см. timeoutNanosPerRow). Запрос, не уложившийся в свой тайм-аут, выполняется заново с частью подзапросов, материализованных во временные таблицы, шаг за шагом, причем каждый шаг материализует больше; последний шаг вместо этого отключает в СУБД соединения nested loop (enable_nestloop).
| true541000100000222 |
LRURangeDefaultCoeffLRURangeMinCoeffLRURangeMaxCoefftargetLRURangePercentcriticalLRURangePercenttargetLRUAdjustIncCoefftargetLRUAdjustDecCoeffcriticalLRUAdjustCoeffstableLRUMinCountunstableLRUMaxCountdisableLRUCollectionUsageThresholdmemGCCollectionThresholdCooldown | doubledoubledoublelonglongdoubledoubledoublelonglongbooleanint | Параметры тюнера кэшей сервера (LRU). Элемент кэша живет базовое время этого кэша, умноженное на общий множитель, а тюнер двигает множитель по памяти, которую старое поколение Java-кучи продолжает занимать после сборки мусора, чтобы кэши занимали свободную память и не больше. Старое поколение делится четырьмя уровнями: критический, на 100 - criticalLRURangePercent процентах от него, и ниже, с шагом в criticalLRURangePercent, а затем в targetLRURangePercent, верхняя, средняя и нижняя границы целевого диапазона (85, 70, 60 и 50 процентов при значениях по умолчанию).
| 1.00.15.010151.02.01.04080false90 |
queryLengthAverageMaxqueryTimeAverageMaxqueryExecuteDegreetimeStartedAverageMaxCoefftimeStartedDegreemaxUsedTempRowsAverageMaxmaxUsedTempRowsDegreeusedTempRowsAverageMaxusedTempRowsDegreelastTempTablesActivityAverageMax | intintintdoubledoubleintdoubleintdoubleint | Оценка в механизме перезапуска соединений (см. periodRestartConnections, percentRestartConnections): при каждом запуске перезапускаются соединения с наибольшей оценкой: соединение заменяется новым, временные таблицы, которыми сессия еще пользуется, переезжают на него вместе со строками, остальные и prepared statement'ы пропадают. Параметры ...AverageMax - нормальные величины, ...Degree - степени, в которые возводятся отношения к ним; временные таблицы соединения измеряются общим числом строк в них. Оценка соединения складывает
| 100001000021.258500025004180000 |
Помимо системных параметров, в платформе также существуют параметры запуска, которые задаются немного по другому и актуальны преимущественно для процессов запуска (инициализации) различных компонент платформы, а также доступа к этим компонентам.