Я пытаюсь получить доступ к DataSource ConnectionManager MBean с помощью java-клиента. Я могу получить к нему доступ, когда я укажу имя источника данных и имя JNDI в имени объекта. Мне нужен общий подход который может применяться для любого источника данных в server.xml, поскольку это делается как часть структуры, которая может использоваться в любом приложении.Имя общего объекта для доступа к диспетчеру подключения к источнику данных MBean в Liberty
Я пробовал несколько вариантов, но все время я получил «javax.management.InstanceNotFoundException».
Пример кода, как указано ниже:
<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>
Имя объекта, который работал:
ObjectName jvmQuery = new ObjectName("WebSphere:type=com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean,jndiName=jdbc/db,name=dataSource[oracleDB]/ConnectionManager[default-0]")
родовых имен объектов Я пробовал:
1.WebSphere:type=com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean,*
2.WebSphere:type=com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean,name=dataSource[default-0]/ConnectionManager[default-0],*
3.WebSphere:service=com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean,*
4.WebSphere:service=com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean,name=dataSource[default-0]/ConnectionManager[default-0],*
5.WebSphere:service=com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean,name=dataSource[default-0]/ConnectionManager[default-0]
Не могли бы вы посоветовать ..
Спасибо, Biju
Благодарим за сообщение. Я также могу найти MBean, когда упоминаю имя JNDI и имя источника данных в Query. Здесь я ищу общий запрос для всех MBeans. Без упоминания какого-либо конкретного источника данных или имени jndi. Например: для четырех тестируемых источников данных для каждого из них должен работать один запрос. –
Да, вы должны иметь возможность запрашивать все mbeans типа без знания имени jndi, как я показал выше. Если это не работает, откройте jconsole и убедитесь, что mbeans на самом деле там. –
Я все еще смущен. Я получаю «javax.management.InstanceNotFoundException: WebSphere: type = com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean, * '. Я мог видеть MBeans в JConsole. –