anhurry
11/19/2019 - 6:53 AM

JMX client.java

@Slf4j
public class SystemConfigManagementClient {

    public static void main(String[] args) throws Exception{
        JMXServiceURL jmxServiceURL = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi");
        JMXConnector jmxConnector = JMXConnectorFactory.connect(jmxServiceURL, null);
        MBeanServerConnection mBeanServerConnection = jmxConnector.getMBeanServerConnection();
        String[] domains = mBeanServerConnection.getDomains();
        for (int i = 0; i < domains.length; i++) {
            String obj = domains[i];
            log.info("domain[{}] = {}", i, domains[i].toString());
        }
        ObjectName configMBeanName = new ObjectName("com.anhurry.jmx1:type=SystemConfig");
        getParam(mBeanServerConnection, configMBeanName);
        changeParams(mBeanServerConnection, configMBeanName);
    }

    public static void getParam(MBeanServerConnection connection, ObjectName mBeanName) throws Exception {
        int threadCount = (Integer) connection.getAttribute(mBeanName, "ThreadCount");
        String schema = (String) connection.getAttribute(mBeanName, "SchemaName");
        log.info("{} = {}", schema, threadCount);
    }

    public static void changeParams(MBeanServerConnection connection, ObjectName mBeanName) throws Exception {
        connection.setAttribute(mBeanName, new Attribute("ThreadCount", 3));
        connection.setAttribute(mBeanName, new Attribute("SchemaName", "mysql"));
    }

}