【发布时间】:2020-04-09 18:33:57
【问题描述】:
Hikari cp 中的Jmx bean 在启动autoconfigure pooling 时如何在spring boot 中使用?
我尝试按照以下链接中的说明进行操作。
https://github.com/brettwooldridge/HikariCP/wiki/MBean-(JMX)-Monitoring-and-Management.
这是我的mbean类
import javax.management.JMX;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import java.lang.management.ManagementFactory;
@ManagedResource(
objectName="PD:category=MBeans,name=testBean",
description="Managed Bean")
@Component("testMbean")
public class HikariJmx {
private String message = "Simple Message";
private int size=0;
public HikariJmx(){
System.out.println("......TestMbean........");
}
@ManagedOperation
public void resetMessageViaMBean(){
this.message = "Message RESET";
}
@ManagedAttribute
public int getSize() throws Exception{
try {
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ObjectName poolName = new ObjectName("com.zaxxer.hikari:type=Pool (HikariPool-1)");
HikariPoolMXBean poolProxy = JMX.newMXBeanProxy(mBeanServer, poolName, HikariPoolMXBean.class);
return poolProxy.getIdleConnections();
}catch(Exception e){e.printStackTrace();}
return 0;
}
}
我能够在视觉 vm 中看到 bean。但是当我使用属性 SIZE 时,我在下面的行中得到了
instanceNotFound异常。
ObjectName poolName = new ObjectName("com.zaxxer.hikari:type=Pool (HikariPool-1)");
我没有手动创建数据源,只是在application.properties 中提供了属性,然后引导完成其余的工作。
【问题讨论】:
标签: spring-boot jmx hikaricp