JMX 例子 得到java mx对象

java 跑一个系统用这样的参数

vm arguments:

-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

TestProcessResource


package com.statestr.gcth.client.simplefunction.dao;

import java.util.List;

import com.statestr.gcth.application.dao.UseCaseProcessDao;
import com.statestr.gcth.application.model.DefaultProcessResource;
import com.statestr.gcth.core.InitializationException;
import com.statestr.gcth.core.context.ContextManager;
import com.statestr.gcth.core.context.FrameworkContainer;

public class TestProcessResource {
	private static FrameworkContainer container;
	
	public static void main(String[] args) {
		
		String applicationName = "gcth";

		String frameworkName = "simplefunction/simple_test";
		// load from xml file
		System.setProperty("FAW.goldcopy.bootstrap.config.source", "xml");
		
		// now start up the GCTH framework
		try {
			container = FrameworkContainer.create(applicationName, frameworkName);
		} catch (Exception e) {
			String error = "Failed to start framework " + applicationName + " with error:" + e.getMessage();
			throw new InitializationException(error, e);
		}
		
		UseCaseProcessDao dao = ContextManager.getReference("useCaseProcessDao", com.statestr.gcth.application.dao.impl.UseCaseProcessDaoImpl.class);
		List<DefaultProcessResource> resourceList = dao.loadDefaultProcessResource("defaultRemediationPlatform");
		System.out.println(resourceList.size());
	}
}




package com.statestr.gcth.client.simplefunction.jxm;

import java.io.IOException;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.net.MalformedURLException;
import java.util.List;
import java.util.Properties;
import java.util.Set;
import java.util.TreeSet;

import javax.management.MBeanOperationInfo;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;


import com.sun.management.ThreadMXBean;

public class JmxTest {
	
	public static void main(String[] args) throws Exception {

		JMXServiceURL address = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi");  
		JMXConnector connector = JMXConnectorFactory.connect(address);  
		MBeanServerConnection mbs = connector.getMBeanServerConnection();  
		ThreadMXBean threadBean = ManagementFactory.newPlatformMXBeanProxy  
		(mbs, ManagementFactory.THREAD_MXBEAN_NAME, ThreadMXBean.class);  
		
//		RuntimeMXBean rmxb = ManagementFactory.newPlatformMXBeanProxy(connector  
//				            .getMBeanServerConnection(),"java.lang:type=Runtime",  
//				                RuntimeMXBean.class);  

//		RuntimeMXBean rmxb = ManagementFactory.newPlatformMXBeanProxy(connector  
//	            .getMBeanServerConnection(),"GoldCopy:type=Framework,name=Context",  
//	                RuntimeMXBean.class);  
		
		MBeanServerConnection mbsc = connector.getMBeanServerConnection();
		String[] domains = mbsc.getDomains();
//		for(String domain : domains){
//			System.out.println(domain);
//		}
		List<String> componentList = (List<String>)mbsc.invoke(new ObjectName("GoldCopy:type=Framework,name=Context"), "queryComponentList", null, null);
		
		for(String op : componentList){
			System.out.println(op);
		}	
		

		Set<ObjectName> names = 
		    new TreeSet<ObjectName>(mbsc.queryNames(new ObjectName("GoldCopy:type=Framework,name=Context"), null));
		for(ObjectName obj : names){
			
			System.out.println(obj);
		}
		
		System.out.println(threadBean.getThreadCount());//线程数量      

	}

}




启动的 参数是啥端口 ,客户端 就用啥 端口接收 , 这边是 9999

猜你喜欢

转载自dannyhz.iteye.com/blog/2356330
JMX
今日推荐