2017-01-09 9 views
2

Я пытаюсь перенести приложение WAS7 на профиль Liberty. И теперь я пытаюсь получить Datasource Mbean, который является частью существующего кода. Я пробовал несколько вариантов, но я всегда получаю «javax.management.InstanceNotFoundException».DataSource Mbean в websphere liberty - получение экземпляра не найдено исключение

Я даю пример кода ниже. Пожалуйста, дайте мне знать, если я что-то пропущу.

DataSource в 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> 

Java код:

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); 

Я не уверен в коде, я пытаюсь сохранить старый код как можно больше.

Спасибо, Biju

ответ

1

В вашем имени объекта есть незначительное рассогласование случай. C на connectionManager должен быть строчным, а не прописным. не

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

Несколько других вещей, чтобы проверить:

  1. Убедитесь, что функция monitor-1.0 включена
  2. Обратите внимание, что поскольку Менеджеры подключения создаются лениво (не инициализирована до первого использования) не будет никакого ConnectionPoolStats MBean, пока не будет получено хотя бы одно соединение, полученное от вашего диспетчера подключений.
  3. Вы можете проверить наличие своего MBean, установив jconsole, который является утилитой Java, которая поставляется с любым JDK. После того, как был сделан запрос к менеджеру источника/соединения данных, вы должны увидеть MBean как это:

enter image description here

Для использования jconsole вам необходимо включить функцию localConnector-1.0. Вы можете найти дополнительную информацию об использовании JConsole с Liberty здесь:
Connecting to Liberty by using JMX

+0

Спасибо Andy .., C была опечатка. Я попробовал выше, и все получилось. Только дело в том, что я внес небольшие изменения в ObjectName, глядя на JConsole. –