hibernate默认连接池

时间:2013-04-02 07:38:38

标签: hibernate connection-pooling

Hibernate默认使用连接池吗?如果是这样,* connection.pool_size *的默认值是多少? 它不与* hibernate.connection.release_mode *冲突吗?连接池的所有想法都不是关闭连接吗?

3 个答案:

答案 0 :(得分:8)

默认的hibernate连接池(不应该在生产中使用)的默认限制为1,因为它只是用于简单测试。但是,这可以通过hibernate.properties文件进行配置,因此值得检查是否在项目中定义了它。

有问题的财产是:

hibernate.connection.pool_size即可

有关这方面的信息主要包含在以下链接中:

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html

虽然这不会直接指定默认的连接池大小,但它确实具有您在hibernate中连接池主题上可能需要的大部分信息。

答案 1 :(得分:6)

By default,Hibernate能够通过适当地设置属性从JNDI获取数据源实现(javax.sql.DataSource):

默认JNDI连接池maxsize为 - 无最大尺寸

您可以在此处找到JNDI池的默认值。

http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/config.html

为了获得高效性能您应该使用third party pool以获得最佳性能和稳定性。

如果您使用的是应用程序服务器,则可能希望使用内置池(通常是使用JNDI获取连接)。如果您不能或不希望使用应用程序服务器的内置连接池,Hibernate支持其他几个连接池,例如

  • C3P0

  • Apache DBCP

  • Proxool的

http://www.informit.com/articles/article.aspx?p=353736&seqNum=4

答案 2 :(得分:2)

我没有找到关于连接池的Hibernate默认值的文档,所以我查看了源代码并找到了(类DriverManagerConnectionProviderImpl  在hibernate-core-4.3.8.Final):

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;