我在JBoss战争中使用的是Hibernate,使用c3p0进行连接池,两者均在类路径的hibernate.cfg.xml配置文件中配置
<property name =“ connection.provider_class”> org.hibernate.connection.C3P0ConnectionProvider </ property>
我看过server.log生成包含有关连接池的有趣信息的行:
调试[com.mchange.v2.resourcepool.BasicResourcePool]跟踪com.mchange.v2.resourcepool.BasicResourcePool@63f5e4b6 [管理:10,未使用:9,排除:0]
对于我的监视池(我正在使用nagios),我想提供一个JSP来告知正在使用的连接数和空闲的连接数,如日志文件所示。
我怎样才能问c3p0有多少个托管和未使用的连接?
您可以通过JMX监视连接池。从文档中:
通过JMX配置和管理c3p0 如果您的环境中提供了JMX库和JMX MBeanServer(它们包含在JDK 1.5及更高版本中),则可以通过JMX管理工具(例如与jdk 1.5捆绑在一起的jconsole)检查和配置c3p0数据源。您会发现c3p0在下注册了MBean com.mchange.v2.c3p0,其中一个包含有关整个库的统计信息(称为C3P0Registry),每个PooledDataSource部署的MBean都有一个MBean 。您可以查看和修改DataSource的配置属性,跟踪Connection,Statement和Thread池的活动,并通过PooledDataSourceMBean 重置池和DataSource 。(您可能希望查看的API文档以 PooledDataSource获取可用操作的文档。)
通过JMX配置和管理c3p0
如果您的环境中提供了JMX库和JMX MBeanServer(它们包含在JDK 1.5及更高版本中),则可以通过JMX管理工具(例如与jdk 1.5捆绑在一起的jconsole)检查和配置c3p0数据源。您会发现c3p0在下注册了MBean com.mchange.v2.c3p0,其中一个包含有关整个库的统计信息(称为C3P0Registry),每个PooledDataSource部署的MBean都有一个MBean 。您可以查看和修改DataSource的配置属性,跟踪Connection,Statement和Thread池的活动,并通过PooledDataSourceMBean 重置池和DataSource 。(您可能希望查看的API文档以 PooledDataSource获取可用操作的文档。)
com.mchange.v2.c3p0
C3P0Registry
PooledDataSource
顺便说一下,Nagios似乎有JMX插件,您不必强迫使用JSP。