我正在使用hibernate和c3p0进行连接管理。在我的休眠配置中,我配置了connection.pool_size
和hibernate.c3p0.max_size
(使用不同的数字)。
据我所知,当我使用c3p0时,我的默认hibernate连接管理将不会被使用。
但我不确定hibernate.c3p0.max_size
是否是默认hibernate池大小设置变量的connection.pool_size
的c3p0替换。
所以,我的查询是 - 我可以从配置中删除connection.pool_size
吗?
如果我的配置文件中同时包含这两项内容,connection.pool_size
是否会被完全忽略,还是会用于其他目的?
答案 0 :(得分:2)
使用会话工厂为c3po定义配置后。 无需休眠默认设置。你应该删除它以避免混淆。
您的会话工厂配置如下所示:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:ABCXYZ</property>
<property name="hibernate.connection.username">myuser</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="hibernate.default_schema">SCHEMA_A</property>
<property name="show_sql">true</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<mapping class="com.ABCXYZ.user.DBUser"></mapping>
</session-factory>
</hibernate-configuration>
最好删除该connection.pool_size以使配置设置清晰易懂。
答案 1 :(得分:0)
您实际上应该从配置中删除 hibernate.connection.pool_size
,因为它已经被 cp30 的特定设置所取代 - 请参阅文档
Hibernate 自己的连接池算法非常初级。它旨在帮助您入门,不适用于生产系统甚至性能测试。您应该使用第三方池以获得最佳性能和稳定性。 只需将 hibernate.connection.pool_size 属性替换为连接池特定设置。这将关闭 Hibernate 的内部池。例如,您可能>喜欢使用 C3P0。
参考 - https://docs.jboss.org/hibernate/stable/core.old/reference/en/html/configuration-hibernatejdbc.html
更新
我读到 Hikari CP 提供比 C3P0 和其他数据库连接池工具更好的性能,并且 Hikari 由 Spring Boot 原生支持,因此您可以使用默认值。但是,如果您想调整默认值以满足您的特定用例,您可以这样做。
https://github.com/brettwooldridge/HikariCP
有关如何在 application.properties 中配置 Hikari 参数,请检查:https://gist.github.com/rhamedy/b3cb936061cc03acdfe21358b86a5bc6