WebJMX开源项目应用与进阶.docx
上传人:王子****青蛙 上传时间:2024-09-12 格式:DOCX 页数:33 大小:233KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

WebJMX开源项目应用与进阶.docx

WebJMX开源项目应用与进阶.docx

预览

免费试读已结束,剩余 23 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第页共NUMPAGES33页第PAGE\*MERGEFORMAT33页共NUMPAGES\*MERGEFORMAT33页最近公司用到一些关于JMX的使用,在我的BLOG之前介绍过JMX。一个简单的JMX结构由以下几个步骤去完成:①需要一个MBeanServer作为一个容器,去装载你的MBean如下创建:MBeanServerserver=MBeanServerFactory.createMBeanServer("Local");②ObjectName,JDK文档对它的描述是这样的:表示MBean的对象名,或者能够与多个MBean名称相匹配的模式。我们可以从字面上了解到他是干什么的了,就好比一个KEY,当我们的MBean注入MBeanServer后总要有一个标识它,以方便我们以后通过这个KEY去找过我们的MBean.如下创建:ObjectNamemanager=newObjectName("NCS:name=scheduler");③将我们需要进行管理的MBean注册到MBeanServer中,具体如下:server.registerMBean(newIScheduler(),manager);这样就算告一段落了,完成以上步骤后,将实现一个MBeanServer(一个容器)中拥有多个MBean(受管理的类).这就是JMX的基本实现。那么如果要对MBean进行管理当然少不了一些管理机制,如SUN自己提供的HtmlAdaptorServer和Jconsole。HtmlAdaptorServer可以通过WEB对MBean进行管理,Jconsole则是C/S结构的。下面列举一下HtmlAdaptorServer的使用方法:HtmlAdaptorServeradapter=newHtmlAdaptorServer();server.registerMBean(adapter,adapterName);以上代码片段可以看出其实HtmlAdaptorServer也就是个MBean,而这个MBean可访问注册在MBeanServer的其他MBean而已。最后启动HtmlAdaptorServer:adapter.start();完整代码片段://XXX()自定义方法名吧!publicvoidXXX(){try{//createMBSERVERnameisWUBINSERVERListl=MBeanServerFactory.findMBeanServer(null);if(l.size()>0){server=(MBeanServer)l.get(0);}else{server=MBeanServerFactory.createMBeanServer("Local");}//RegisterHtmlAdaptorserverportis8082.ObjectNameadapterName=newObjectName("ManagerAgent:name=htmladapter,port=8082");HtmlAdaptorServeradapter=newHtmlAdaptorServer();server.registerMBean(adapter,adapterName);//yourselfobjectnameregister.ObjectNamemanager=newObjectName("NCS:name=scheduler");server.registerMBean(newIScheduler(),manager);ObjectNamemanager2=newObjectName("NCS:name=scheduler2");server.registerMBean(newIScheduler(),manager2);//ObjectNamemanager=newObjectName("NCS:name=scheduler1");//server.registerMBean(newJobManagerMBeanImpl(),manager);adapter.start();System.out.println("start.....");}catch(MalformedObjectNameExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(InstanceAlreadyExistsExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}ca