用于访问 Liberty 中的数据源连接管理器 MBean 的通用对象名称

Generic Object Name to access datasource connection manager MBean in Liberty

我正在尝试使用 java 访问 DataSource ConnectionManager MBean client.I 当我在对象中指定数据源名称和 JNDI 名称时能够访问它 Name.I 需要一种通用方法可以应用于 server.xml 中的任何数据源,因为这是作为可以在任何应用程序中使用的框架的一部分完成的。

我尝试了多种选择,但总是得到 '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]

能否请教一下..

谢谢, 比居

查询选项 #1 应该可以正常工作:

WebSphere:type=com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean,*

我刚刚在我的配置中使用多个数据源对其进行了测试,得到以下结果:

Found MBean: WebSphere:type=com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean,jndiName=jdbc/ds1,name=dataSource[ds1]/connectionManager
Found MBean: WebSphere:type=com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean,jndiName=jdbc/ds2,name=dataSource[ds2]/connectionManager
Found MBean: WebSphere:type=com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean,jndiName=jdbc/ds3,name=dataSource[ds3]/connectionManager[default-0]
Found MBean: WebSphere:type=com.ibm.ws.jca.cm.mbean.ConnectionManagerMBean,jndiName=jdbc/XAds,name=dataSource[XAds]/connectionManager

请记住,Connection Manager MBean 是延迟创建的。如果您希望在查询中找到 mbean,请确保您之前已从数据源获得连接。从数据源获取连接将强制创建连接管理器(及其 MBean)。