Каковы необходимые настройки C3P0 для спящего режима, чтобы избежать взаимоблокировок

На этот вопрос нет однозначного hibernate ответа, поскольку он меняется c3po от приложения к приложению hibernate в зависимости от использования c3p0 и схемы загрузки.

Во-первых, обратитесь c3po по ссылке https://www.hibernate.org/214.html, поскольку кажется, что c3p0 вы сделали это и пошли дальше. вот hibernate несколько советов;

  • numHelperThreads: вспомогательные потоки, которые не удерживают конкурирующие блокировки. Распространение этих операций на несколько потоков.
  • maxStatements: размер глобального кэша PreparedStatement c3p0.
  • maxStatementsPerConnection: количество PreparedStatements, которые c3p0 будет кэшировать для одного соединения в пуле.
  • maxAdministrativeTaskTime: параметр, который принудительно вызывает метод прерывания() потока задачи, если задача превышает установленный предел времени.

Первые hibernate три параметра могут улучшить hibernate или снизить производительность c3p0 в зависимости от установленного hibernate значения, где четвертый параметр c3p0 может прервать поток после hibernate установленного лимита и дать c3p0 изменение для выполнения c3p0 другому потоку.

Приблизительные c3po значения

  • numHelperThreads = 6
  • maxStatements = 100
  • maxStatementsPerConnection = 12
  • maxAdministrativeTaskTime = требуется достаточно времени для выполнения тяжелых запросов в производственной среде

maxStatements и maxStatementsPerConnection c3p0 следует тестировать в течение hibernate нескольких месяцев, поскольку c3po из-за этих параметров мало c3p0 точек публикации приводит c3po к тупиковой блокировке.

Также hibernate будет полезно сослаться на hibernate эти ссылки;

hibernate

c3p0

2022-07-20T16:54:10+00:00
Вопросы с похожей тематикой, как у вопроса:

Каковы необходимые настройки C3P0 для спящего режима, чтобы избежать взаимоблокировок