繁体   English   中英

如何通过JMX公开Oracle连接池统计信息?

[英]How do I expose Oracle connection pool statistics over JMX?

我通过对我的数据源使用以下Spring配置来使用Oracle连接池:

  <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
    <property name="connectionCachingEnabled" value="true" />
    <property name="URL" value="myUrl" />
    <property name="user" value="myUserName" />
    <property name="password" value="myPassword" />
    <property name="connectionCacheProperties">
        <util:properties>
            <prop key="InitialLimit">5</prop>
            <prop key="MinLimit">5</prop>
            <prop key="MaxLimit">30</prop>
            <prop key="MaxStatementsLimit">20</prop>
        </util:properties>
    </property>
</bean>

我想通过JMX公开这个池的统计信息,以便我可以监视池以查看池中有多少连接,有多少连接,等等。

我使用oracle 11.2.0.3.0 jdbc驱动程序连接到Oracle 10g服务器。

我该怎么做呢?

尝试这个 -

MethodNameBasedMBeanInfoAssembler

 public class MethodNameBasedMBeanInfoAssembler 

AbstractReflectiveMBeanInfoAssembler子类,允许指定要作为MBean操作和属性公开的方法名称。 JavaBean getter和setter将自动公开为JMX属性。

您可以通过managedMethods属性提供一组方法名称。 如果您有多个bean并且希望每个bean使用一组不同的方法名称,那么您可以使用methodMappings属性将bean键(即用于将bean传递给MBeanExporter的名称)映射到方法名称列表。

如果为methodMappingsmanagedMethods指定值,Spring将首先尝试在映射中查找方法名称。 如果找不到bean的方法名称,它将使用managedMethods定义的方法名称。

例如 -

...
<bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean">
    <property name="locateExistingServerIfPossible" value="true" />
</bean>

<bean id="mbeanExporter" class="org.springframework.jmx.export.MBeanExporter">
   <property name="assembler">
      <bean class="org.springframework.jmx.export.assembler.MethodNameBasedMBeanInfoAssembler">         
         <property name="managedMethods">
         <list>
            <value>getNumActive</value>
            <value>getMaxActive</value>
            <value>getNumIdle</value>
            <value>getMaxIdle</value>
            <value>getMaxWait</value>
            <value>getInitialSize</value>
         </list>
         </property>         
      </bean>
    </property>

    <property name="beans">
       <map>                   
          <entry key="dataSource:name=DataSource" value-ref="dataSource"/>    
       </map>
    </property>

    <property name="server" ref="mbeanServer" />

</bean>

在Hibernate,EhCache,Quartz,DBCP和Spring中启用JMX请参阅http://nurkiewicz.blogspot.com/2011/12/enabling-jmx-in-hibernate-ehcache-qurtz.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM