2012-10-16 8 views
1

을 사용하고 datasourceorg.apache.commons.dbcp.BasicDataSource입니다. 다음은 데이터 소스 객체입니다. 현재 사용중인 개수와 얼마나 많은 데이터가 실시간 연결 풀 개수인지 알려주고 싶습니다. 내가 어떻게jmx와 스프링 데이터 소스 연결 관리자가

<bean id="wssModelDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="net.sourceforge.jtds.jdbcx.JtdsDataSource"/> 
    <property name="url" value="com.wss.jdbc.ConnectionUrl=jdbc:jtds:sqlserver://x-x2/x_control_QA;appName=wss;sendStringParametersAsUnicode=false;loginTimeout=20;socketTimeout=180"/> 
    <property name="username" value="xxx"/> 
    <property name="password" value="xxx"/> 
    <property name="maxActive" value="10"/> 
    <property name="maxWait" value="10000"/> 
    </bean> 

답변

1

예 우리가 할 수 구현할 수 jmx 어떤 빠른 아이디어를 사용하여 모니터링 할 유휴에서, 단순히 JdbcTemplate을 주입하고 DAO 방법으로 사용하는 공공 게터를 만들어 사용하고있는 당신의 DAO 클래스 JMX를 사용 메서드는 다음 메서드의 값을 반환하고 여기서 jmx는 모니터 할 수 있습니다.

http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/BasicDataSource.html

getMinIdle() 
      Returns the minimum number of idle connections in the pool. 
int getNumActive() 
      [Read Only] The current number of active connections that have been allocated from this data source. 
int getNumIdle() 
5

허용 된 대답은 정말 방법이 작업을 수행하는 방법을 알려하지 않습니다. Spring을 사용하는 경우 가능한 해결책은 MethodNameBasedMBeanInfoAssembler을 사용하고 노출 될 필요가있는 BasicDataSource의 메소드를 나열하는 것입니다. bean이 dataSource으로 설정되었다고 가정하면 Spring XML config :

<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> 
</beans> 
관련 문제