代码之家  ›  专栏  ›  技术社区  ›  Darren Greaves

使用Tomcat JDBC连接池时,在JConsole中看不到JMX条目

  •  3
  • Darren Greaves  · 技术社区  · 15 年前

    我们正在评估从c3p0连接池到tomcat jdbc连接池的切换( as described here )。

    它看起来像一个连接池,但当我运行jconsole时,我似乎看不到它的任何jmx条目。
    现成的c3p0通过jmx(Tomcat)提供了许多操作和属性 JDBC连接池(对于我)不提供任何连接。

    根据上面链接的页面,有一个jmxenabled标志,默认为true。我已经明确地设置了这个,但似乎没有什么区别。

    我错过了什么?

    顺便说一下,我正在运行一个相当标准的Java6/Spring/Hibernate应用程序。

    4 回复  |  直到 8 年前
        1
  •  10
  •   leonidv    13 年前

    如果在Spring上下文中配置池,那么应该手动导出bean。只有在Tomcat容器中配置池并从JNDI导入时,AutoExport才起作用。见 http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html#JMX

    您可以使用此Spring配置将池信息导出到JMX:

    <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource">
       ... skipped ...
    </bean>
    
    <bean id="jmxExporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
        <property name="beans">
            <map>
                <entry key="bean:name=DataSource" value="#{dataSource.getPool().getJmxPool()}"/>
            </map>
        </property>
    </bean>
    

    config只在Spring3.0及更高版本中工作,因为它使用SpringExpression语言

        2
  •  0
  •   Sean    15 年前

    你看到树下有什么东西吗

    Catalina -> DataSource -> javax.sql.DataSource
    

    这列出了活动连接、空闲连接和一些其他常见的统计信息。 除此之外,你希望从监控中得到什么样的信息?

        3
  •  0
  •   bsnyder    15 年前

    达伦,如果你看不到下面的对象名 Catalina/DataSource/javax.sql.DataSource/<name> 在jconsole中,我想知道数据源的定义是否错误,或者在启动Tomcat时它是否没有连接到数据库。

    布鲁斯

        4
  •  0
  •   Alex Uke    8 年前
    支持肖恩的职位:

    的位置 javax.sql.DataSource jconsole的MBeans中的条目是:

    • Catalina
      • DataSource
        • /[Name_of_deployed_application] //例如“/DomainService
          • /[Host_name_of_the_deployed_application] //例如“localhost”
            • javax.sql.datasource数据源