如何配置JavaMelody监控C3p0数据源中的Jdbc连接

6
我正在使用Spring配置文件来配置C3P0。为了监控DataSource,我按照javamelody用户指南中的说明配置了net.bull.javamelody.SpringDataSourceFactoryBean。但是我的报告显示0个活动jdbc连接,而我的minPoolSize是10。我错过了什么?在web.xml中添加了monitoring-spring.xml
<context-param>
    <param-name>
        contextConfigLocation
    </param-name>
    <param-value>
        classpath:net/bull/javamelody/monitoring-spring.xml,
    </param-value>
</context-param>

在Spring jdbc配置文件中:

<bean id="sql2oDatasource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value="#{dbProps['ops.jdbc.driverClassName']}"/>
    <property name="jdbcUrl" value="#{dbProps['ops.jdbc.url']}"/>
    <property name="user" value="#{dbProps['ops.jdbc.username']}"/>
    <property name="password" value="#{dbProps['ops.jdbc.password']}"/>
    <property name="maxPoolSize" value="#{dbProps['ops.c3p0.max_size']}"/>
    <property name="minPoolSize" value="#{dbProps['ops.c3p0.min_size']}"/>
    <property name="maxStatements" value="#{dbProps['ops.c3p0.max_statements']}"/>
    <property name="checkoutTimeout" value="#{dbProps['ops.c3p0.timeout']}"/>
    <property name="preferredTestQuery" value="SELECT 1"/>
</bean>
<!-- Configuring the session factory for SQL-2-O -->
<bean id="sql2oSession" class="org.sql2o.Sql2o">
    <constructor-arg ref="wrappedDBDataSource"/>
    <constructor-arg value="PostgreSQL" type="org.sql2o.QuirksMode"/>
</bean>
<bean id="wrappedDBDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean" primary="true">
    <property name="targetName" value="sql2oDatasource"/>
</bean>

我尝试将DriverClass设置为net.bull.javamelody.JdbcDriver,并将driver设置为数据源。

<property name="properties">
    <props>
        <prop key="driver">org.postgresql.Driver</prop>
    </props>
</property>

但是这种方式无法注册postgresql驱动程序。

1个回答

0

根据文档,您的配置看起来很好。您可以在报告中看到数据库活动连接和池大小值,这也意味着您的配置是正确的。

另一方面,活动的数据库连接计数表示数据库连接池中有多少个连接正在那个时刻与数据库进行操作。如果您的应用程序正常工作,则0个活动连接对您有利。这意味着您的数据库操作非常快速。当数据库操作很快时,很难捕获活动连接。


1
活跃 JDBC 连接图表没有显示任何内容,只是一个空的图表。至少应该有一些峰值。活跃 JDBC 连接和池大小不同吗? - udaybhaskar
活跃连接计数和池大小不同。我不确定为什么你的图表是空的。可能是因为您的数据库活动太低。您可以模拟高 db 活动一段时间,然后检查图表。 - Mehmet Sunkur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接