gpt4 book ai didi

java - websphere liberty中的DataSource Mbean - 获取实例未找到异常

转载 作者:行者123 更新时间:2023-11-30 10:34:39 24 4
gpt4 key购买 nike

我正在尝试将 WAS7 应用程序迁移到 Liberty 配置文件。现在我正在尝试获取作为现有代码一部分的数据源 Mbean。我尝试了多个选项,但我总是收到“javax.management.InstanceNotFoundException”。

我在下面给出示例代码。如果我遗漏了什么,请告诉我。

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

我不确定代码,我尽量保留旧代码。

谢谢,碧居

最佳答案

在您的对象名称中存在轻微的大小写不匹配。 connectionManager 上的 C 应该是小写,而不是大写。

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

其他一些要检查的东西:

  1. 确保您启用了 monitor-1.0 功能
  2. 请注意,由于连接管理器是延迟创建的(直到第一次使用才初始化),因此在从您的连接管理器获得至少 1 个连接之前,不会有 ConnectionPoolStats MBean。
  3. 您可以通过检查 jconsole 来验证您的 MBean 是否存在,它是任何 JDK 附带的 Java 实用程序。向您的数据源/连接管理器发出请求后,您应该会看到这样的 MBean:

enter image description here

要使用 jconsole,您需要启用 localConnector-1.0 功能。您可以在此处找到有关将 JConsole 与 Liberty 结合使用的更多信息:
Connecting to Liberty by using JMX

关于java - websphere liberty中的DataSource Mbean - 获取实例未找到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41539535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com