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

uda*_*kar 6 java spring jdbc c3p0 java-melody

我正在使用 Spring 配置文件来配置 C3P0。为了监视我net.bull.javamelody.SpringDataSourceFactoryBean在 javamelody 的用户指南中提到的配置的数据源。但是我的报告显示 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>
Run Code Online (Sandbox Code Playgroud)

在 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>
Run Code Online (Sandbox Code Playgroud)

我试图通过DriverClassnet.bull.javamelody.JdbcDriver在数据源和driver为:

<property name="properties">
    <props>
        <prop key="driver">org.postgresql.Driver</prop>
    </props>
</property>
Run Code Online (Sandbox Code Playgroud)

但是postgresql驱动程序没有以这种方式注册。

Meh*_*kur 1

根据文档,您的配置看起来没问题。您在报告上看到数据库活动连接、池大小值,这也意味着您的配置正常。

另一方面,活动数据库连接计数意味着数据库连接池中有多少连接正在与数据库进行连接操作。0 个活动连接对您有好处(如果您的应用程序正常工作)。这意味着您的数据库操作很快就能完成。当数据库操作很快时,很难捕获活动连接。

  • 活动 jdbc 连接数图没有显示任何内容。它只是空图。至少应该有一些峰值。活动 jdbc 连接和池大小不一样?? (2认同)