ste*_*cpt 3 java oracle hikaricp
我正在为我的数据库连接池使用以下配置.使用在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);
Run Code Online (Sandbox Code Playgroud)
我得到这个堆栈跟踪:
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)
Run Code Online (Sandbox Code Playgroud)
使用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.
归档时间: |
|
查看次数: |
1546 次 |
最近记录: |