@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"));
}
}