Hibernate 我可以通过编程方式访问c3P0连接池属性吗?

Hibernate 我可以通过编程方式访问c3P0连接池属性吗?,hibernate,c3p0,Hibernate,C3p0,我担心我为C3P0连接池设置的属性没有被正确使用 是否有一种方法可以访问应用程序运行时设置的值并将其打印出来: Println(“最小连接数”+最小连接数) 谢谢您可以使用log4j输出调试信息,如下所示: log4j.logger.com.mchange=DEBUG, STDOUT ### direct log messages to stdout ### log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender log4j.appende

我担心我为C3P0连接池设置的属性没有被正确使用

是否有一种方法可以访问应用程序运行时设置的值并将其打印出来:

Println(“最小连接数”+最小连接数)


谢谢

您可以使用log4j输出调试信息,如下所示:

log4j.logger.com.mchange=DEBUG, STDOUT

### direct log messages to stdout ###
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.Target=System.out
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%t %d{dd/MMM/yyyy:H:mm:ssZ} %5p %c{1}:%L - %m%n
如果您将上述内容放在名为
log4j.properties
的文件中,并将该文件放在类路径中,那么您将从c3p0获得大量调试输出

示例输出:

main 14/Dec/2009:13:24:49-0500 DEBUG BasicResourcePool:289 - com.mchange.v2.resourcepool.BasicResourcePool@16c06dd config: [start -> 0; min -> 0; max -> 5; inc -> 1; num_acq_attempts -> 30; acq_attempt_delay -> 1000; check_idle_resources_delay -> 300000; mox_resource_age -> 0; max_idle_time -> 100000; excess_max_idle_time -> 0; destroy_unreturned_resc_time -> 0; expiration_enforcement_delay -> 25000; break_on_acquisition_failure -> false; debug_store_checkout_exceptions -> false]
main 14/Dec/2009:13:24:49-0500 DEBUG BasicResourcePool:538 - acquire test -- pool size: 0; target_pool_size: 0; desired target? 1
main 14/Dec/2009:13:24:49-0500 DEBUG BasicResourcePool:404 - incremented pending_acquires: 1
main 14/Dec/2009:13:24:49-0500 DEBUG BasicResourcePool:1291 - awaitAvailable(): [unknown]

是否要查看运行时信息或更改属性值?我不认为您可以在运行时更改属性值,因为这些配置值存储在ram中。

API允许您以编程方式访问这些属性

假设您有
ComboPooledDataSource
实例:

static final ComboPooledDataSource dataSource = new ComboPooledDataSource();
您可以在运行时访问这些属性,例如:

int minPoolSize = dataSource.getMinPoolSize();
int numBusyConnections = dataSource.getNumBusyConnections();
Throwable lastTestError = dataSource.getLastConnectionTestFailureDefaultUser();
加上一些其他有用的信息,例如:

int minPoolSize = dataSource.getMinPoolSize();
int numBusyConnections = dataSource.getNumBusyConnections();
Throwable lastTestError = dataSource.getLastConnectionTestFailureDefaultUser();
资料来源: