我正在使用Hibernate,我在其配置中配置了一些c3p0属性,如hibernate documentation之一所指定。示例配置如下所示:
<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>
我发现c3p0有许多其他属性可以通过配置文件c3p0.properties设置,但不能通过h c3p0 Documentation中的initialPoolSize,maxStatementsPerConnection,acquireRetryAttempts等hibernate配置来设置。
我的问题是如何验证我在c3p0.properties中设置的属性是否实际被使用?一种解决方案是启用日志到调试级别。有没有其他解决方案来证实这一点?喜欢可能通过编程方式通过某些类。
答案 0 :(得分:2)
您无需在C3P0配置文件中设置它们。您可以将任何C3P0配置传递给Hibernate的配置,因为Hibernate将所有以hibernate.c3p0前缀开头的设置传递给C3P0。
因此,您可以摆脱c3p0.properties
并简单地添加新设置:
<property name="hibernate.c3p0.initialPoolSize">1</property>
<property name="hibernate.c3p0.maxStatementsPerConnection">10</property>
<property name="hibernate.c3p0.acquireRetryAttempts">5</property>
要查看C3P0配置,您可以使用JMX client。如果您想监控连接池使用情况并为不可预见的流量峰值提供后备机制,那么您应该查看FlexyPool。