websphere自由中的DataSource Mbean - 获取实例未找到异常

时间:2017-01-09 00:45:50

标签: java java-ee websphere websphere-liberty mbeans

我正在尝试将WAS7应用程序迁移到Liberty配置文件。 现在我正在尝试获取Datasource Mbean,这是现有代码的一部分。我尝试了多个选项,但我总是得到'javax.management.InstanceNotFoundException'。

我将在下面提供示例代码。如果我错过了什么,请告诉我。

Server.xml中的DataSource:

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

我不确定代码,我试图尽可能地保留旧代码。

谢谢你, 六必居

1 个答案:

答案 0 :(得分:1)

在您的对象名称中存在小的不匹配情况。 C上的connectionManager应为小写,而不是大写。

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

要检查的其他一些事项:

  1. 确保您启用了monitor-1.0功能
  2. 请注意,由于连接管理器是懒惰创建的(在首次使用之前未初始化),因此在从Connection Manager获得至少1个连接之前,将不会有ConnectionPoolStats MBean。
  3. 您可以通过选中jconsole验证MBean的存在,jconsole是任何JDK附带的Java实用程序。在向您的数据源/连接管理器发出请求后,您应该看到如下的MBean:
  4. enter image description here

    要使用localConnector-1.0,您需要启用try { Connection c = DriverManager.getConnection("jdbc:sqlite:C:/Users/Colin/sale"); String query = "SELECT street FROM sales WHERE postcode = ?"; PreparedStatement s = c.prepareStatement(query); s.setString(1, pcode); ResultSet rs = s.executeQuery(); while(rs.next()) { System.out.println(rs.getString("street")); } } catch (SQLException se) { se.printStackTrace(); } 功能。您可以在此处找到有关使用JConsole和Liberty的更多信息:
    Connecting to Liberty by using JMX