簡體   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