Hibernate и Spring Connection Pool Значения по умолчанию - PullRequest
1 голос
/ 27 июня 2019

Я работаю над приложением, основанным на Hibernate 5.1.9.Final и Spring 4.3.6.RELEASE

Я пытаюсь выяснить, каковы значения по умолчанию для подключения к реляционной базе данных, такие как connection_timeout, maxConnections и т. Д.

Я пытаюсь понять этот существующий проект, и у меня нет этой конфигурации, но все же я вижу несколько соединений в базе данных -> Postgres.

Как узнать значения по умолчанию? Есть значения по умолчанию? А что такое фреймворк пула соединений по умолчанию? C3P0

1 Ответ

1 голос
/ 28 июня 2019

Механизмы пула соединений по умолчанию в hibernate не готовы к работе, даже тестирование производительности не готово.Вот цитата из документации по hibernate

Однако собственный алгоритм пула соединений Hibernate довольно прост.Он предназначен для того, чтобы помочь вам начать работу, и не предназначен для использования в производственной системе или даже для тестирования производительности.Вы должны использовать сторонний пул для лучшей производительности и стабильности.Просто замените свойство hibernate.connection.pool_size конкретными настройками пула соединений.Это отключит внутренний пул Hibernate.Например, вы можете использовать c3p0.

Свойство, устанавливающее число подключений в пуле:

hibernate.connection.pool_size

Вотпример конфигурации C3P0:

hibernate.connection.driver_class = org.postgresql.Driver
hibernate.connection.url = jdbc:postgresql://localhost/mydatabase
hibernate.connection.username = myuser
hibernate.connection.password = secret
hibernate.c3p0.min_size=5
hibernate.c3p0.max_size=20
hibernate.c3p0.timeout=1800
hibernate.c3p0.max_statements=50
hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

В последнее время Hikari является очень популярным выбором для пула соединений.https://brettwooldridge.github.io/HikariCP/

Вот пример набора свойств Hikari:

<property name="hikari.dataSource.cachePrepStmts">true</property>
  <property name="hikari.dataSource.prepStmtCacheSize">250</property>
  <property name="hikari.dataSource.prepStmtCacheSqlLimit">2048</property>
  <property name="hikari.dataSource.useServerPrepStmts">true</property>
  <property name="hikari.maximumPoolSize">30</property>
  <property name="hikari.idleTimeout">30000</property>

  <!-- Database connection properties -->
  <property name="hibernate.hikari.dataSourceClassName">com.mysql.jdbc.jdbc2.optional.MysqlDataSource</property>
  <property name="hikari.dataSource.url">jdbc:mysql://127.0.0.1/sample</property>
  <property name="hikari.dataSource.user">root</property>
  <property name="hikari.dataSource.password">tiger</property>

source: https://self -learning-java-tutorial.blogspot.com / 2016/01 /зимуют-hikaricp-example.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...