gpt4 book ai didi

java - HikariCP 1.4.0 MBean InstanceNotFoundException

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:26:18 25 4
gpt4 key购买 nike

我正在为我的数据库连接池使用以下配置。使用 HikariCP 1.4.0、jdk1.6.0_45 和 Oracle Express 11g,在 Windows 7 上运行。

HikariConfig config = new HikariConfig();
config.setDataSourceClassName("oracle.jdbc.pool.OracleDataSource");
config.addDataSourceProperty("serverName", "localhost");
config.addDataSourceProperty("url", "jdbc:oracle:thin:@localhost:1521:XE");
config.addDataSourceProperty("user", "bob");
config.addDataSourceProperty("password", "bob1");
config.setPoolName("steve");

HikariDataSource ds = new HikariDataSource(config);

// do some inserts and reads here ... works great

MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ObjectName poolName = new ObjectName("com.zaxxer.hikari:type=Pool (steve)");

Integer idleConnections = (Integer) mBeanServer.getAttribute(poolName, "IdleConnections");

System.out.println("Number of Idle Connections : " + idleConnections);

我得到这个堆栈跟踪:

javax.management.InstanceNotFoundException: com.zaxxer.hikari:type=Pool (steve)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1094)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:662)
at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:639)

使用 JConsole 并附加到正在运行的进程。我看到以下 MBean:JMImplemtation、com.oracle.jdbc、com.sun.management、java.lang、java.nio、java.util.logging。

我没有看到任何与 Hikari 连接池相关的信息。

有什么建议我接下来可以尝试吗?

最佳答案

两件事。有一个 bug reported就在两天前针对 HikariCP 1.4.0 关于用户定义的池名称被忽略(并替换为自动生成的名称)。此错误已修复,但您需要克隆存储库并自行构建它,因为它要到下一个版本才会出现。

第二件事是,您需要将 registerMbeans 设置为 true。以编程方式,这将是 setRegisterMbeans(true)。如果您运行现有的 1.4.0,您的用户定义名称将被忽略,但该池确实会被注册为 MBean。

关于java - HikariCP 1.4.0 MBean InstanceNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24322737/

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