繁体   English   中英

HikariCP 1.4.0 MBean InstanceNotFoundException

[英]HikariCP 1.4.0 MBean InstanceNotFoundException

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

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连接池相关的内容。

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

两件事情。 两天前针对HikariCP 1.4.0 报告了一个错误,其中忽略了用户定义的池名称(并替换为自动生成的名称)。 此错误已修复,但您需要克隆存储库并自行构建,因为它将在下一个版本发布之前显示。

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

问题是Hikari配置,你需要检查代理jar。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM