2017-01-09 11 views
2

WAS7 응용 프로그램을 Liberty 프로필로 마이그레이션하려고합니다. 그리고 지금 나는 기존의 코드의 일부인 Datasource Mbean을 얻으려고하고 있습니다. 여러 옵션을 시도했지만 항상 'javax.management.InstanceNotFoundException'을 얻고 있습니다.websphere liberty의 DataSource Mbean - 인스턴스를 찾을 수없는 예외가 발생했습니다.

아래 샘플 코드를 제공합니다. 내가 뭔가를 놓친다면 알려줘. server.xml의

데이터 소스 :

<library id="oracle-lib"> 
    <fileset dir="lib" includes="ojdbc6.jar"/> 
</library> 

<dataSource jndiName="jdbc/db" id="oracleDB" type="javax.sql.DataSource"> 
    <jdbcDriver javax.sql.DataSource="oracle.jdbc.pool.OracleConnectionPoolDataSource" libraryRef="oracle-lib" /> 
    <connectionManager agedTimeout="10" maxIdleTime="1800" connectionTimeout="180" minPoolSize="10" maxPoolSize="1" reapTime="180"/> 
    <properties.oracle user="user" password="password" 
       url="jdbc:oracle:thin:@//db-server:1521/db"/> 
</dataSource> 

자바 코드 :

MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer(); 
ObjectName jvmQuery = new ObjectName("WebSphere:type=ConnectionPoolStats,name=dataSource[oracleDB]/ConnectionManager[default-0]") 
Set mBeans = mbeanServer.queryMbeans(jvmQuery,null); 
MBeanInfo beanInfo = mbeanServer.getMBeanInfo(jvmQuery); 

나는 코드에 대한 확실하지 않다, 나는 가능한 한 많은 기존의 코드를 유지하기 위해 노력하고 있습니다.

사소한 사건이 일치하지 개체 이름에 비주

답변

1

을 주셔서 감사합니다. connectionManager에있는 C은 대문자가 아니라 소문자 여야합니다.

WebSphere:type=ConnectionPoolStats,name=dataSource[oracleDB]/connectionManager[default-0] 

다른 몇 가지

확인할 :

  1. 을 당신이 monitor-1.0 기능은 연결 관리자가 느리게 생성되기 때문에 (처음 사용할 때까지 초기화되지 않음) 것을
  2. 참고 활성화되어 있는지 확인 전혀 없을 것 ConnectionPoolStats Connection Manager에서 적어도 하나의 연결이 확보 될 때까지 MBean.
  3. JDK와 함께 제공되는 Java 유틸리티 인 jconsole을 선택하여 MBean의 존재 여부를 확인할 수 있습니다. 요청이 데이터 소스/연결 관리자에 적용된 후에는 같은 MBean에 표시되어야합니다 :

enter image description here

당신이 localConnector-1.0 기능을 활성화해야합니다 jconsole을 사용합니다. JConsole을 Liberty와 함께 사용하는 방법에 대한 자세한 정보는 여기를 참조하십시오.
Connecting to Liberty by using JMX

+0

감사합니다. Andy .., C는 오타였습니다. 나는 위의 그것을 시도하고 그것을 일한 유일한 것은, 내가 JConsole 찾고 ObjectName 작은 수정했다. –