繁体   English   中英

找到hibernate正在使用的连接池

[英]Find the connection pool hibernate is using

如何在不查看hibernate配置的情况下找到hibernate在运行时使用的连接池? 是否有像“getConnectionPoolUsed()”这样的API返回hibernate正在使用的连接池?

我在javadocs中找不到任何这样的方法。 而且我找不到任何返回ConnectionProvider公开方法。 (有一些不赞成的方法,以及“内部”类的一些方法,但你不应该使用它们。)

IMO,干净的解决方案是查看配置。

要使用C3P0ConnectionProvider,您需要hibernate-c3p0.jar此处可用)

然后在hibernate.cfg.xml中配置以下属性

    <property name="hibernate.connection.pool_size">10</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>

没有必要指定* hibernate.connection.provider_class *,只要有任何hibernate.c3p0.x属性,Hibernate就会使用C3P0。

这些值只是一个示例,您应该使用最适合您需求的配置。

没有这样的API。 你可以使用反射来做到这一点(但这对于这个答案来说太深了)。

也许你应该问问自己为什么要这样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM