Adi*_*ron 16 hibernate connection-pooling
Hibernate默认使用连接池吗?如果是这样,*connection.pool_size*的默认值是多少?它不与*hibernate.connection.release_mode*冲突吗?是不是连接池的所有想法都没有关闭连接?
默认的hibernate连接池(不应在生产中使用)的默认限制为1,因为它仅用于简单测试.但是,这可以通过hibernate.properties文件进行配置,因此值得检查是否在项目中定义了它.
有问题的财产是:
hibernate.connection.pool_size即可
有关这方面的信息主要包含在以下链接中:
http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html
虽然这不直接指定默认的连接池大小,但它确实具有您在hibernate中连接池主题上可能需要的大部分信息.
默认情况下,Hibernate能够通过适当地设置属性从JNDI获取数据源实现(javax.sql.DataSource):
默认JNDI连接池maxsize是 - 无最大大小
在这里,您可以找到JNDI池的默认值.
http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/config.html
为了获得高效性能您应该使用a third party pool以获得最佳性能和稳定性.
如果您使用的是应用程序服务器,则可能希望使用内置池(通常是使用JNDI获取连接).如果您不能或不希望使用应用程序服务器的内置连接池,Hibernate支持其他几个连接池,例如
C3P0
Apache DBCP
Proxool的
http://www.informit.com/articles/article.aspx?p=353736&seqNum=4
小智 6
我没有找到有关 Hibernate 连接池默认值的文档,因此我查看了源代码并发现(hibernate-core-5.2.0.Final 中的类 DriverManagerConnectionProviderImpl):
hibernate.connection.initial_pool_size = 1;
hibernate.connection.min_pool_size = 1;
hibernate.connection.pool_size = 20;
hibernate.connection.pool_validation_interval = 30;
hibernate.connection.autocommit = false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41710 次 |
| 最近记录: |