【问题标题】:How Jmx bean of Hikari cp can be used in spring boot when boot autoconfigure pooling启动自动配置池时如何在spring boot中使用Hikari cp的Jmx bean
【发布时间】: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


    【解决方案1】:

    我遇到了同样的问题。

    您可以从 HikariDataSource 本身获取 HikariPoolMXBean。

    为了做到这一点,我将 HikariDataSource 注入到我需要 HikariPoolMXBean 的类中,并调用了这个方法:

    HikariPoolMXBean poolProxy = hikariDataSource.getHikariPoolMXBean();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 2019-11-28
      • 2018-10-14
      • 1970-01-01
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多