分享
 
 
 

JMX Notification

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Mbean之间的通信是必不可少,Notification就起到了Mbean 之间沟通桥梁的作用。JMX notification model 和 java event model 类似,将一些重要的信息,状态的转变,数据的变更传递给 notification listener。以使资源更容易管理。

JMX notification 由四部分组成:

1、 Notification

2、 Notification broadcaster

3、 Notification listerner

4、 Notification filter

通过简单的HelloWorld例子来说明 Notification的实现过程吧。

HelloWorldMBean.java

package notification;

public interface HelloWorldMBean {

public void setGreeting(String greeting);

public String getGreeting();

public void printGreeting();

}

HelloWorld.java

/*

* Created on 2004-12-27

* @author roson

*/

package notification;

import java.io.*;

import javax.management.*;

public class HelloWorld extends NotificationBroadcasterSupport

implements HelloWorldMBean

{

private String greeting;

public HelloWorld()

{

this.greeting = "Hello World! I am a Standard MBean";

}

public HelloWorld( String greeting )

{

this.greeting = greeting;

}

public void setGreeting( String greeting )

{ //更改属性这里增加了notification 只要更改属性就可以看到。

this.greeting = greeting;

Notification notification = new Notification(

"jmxbook.ch2.helloWorld.test",

this, -1,

System.currentTimeMillis(),

greeting);

sendNotification( notification );

}

public String getGreeting()

{

return greeting;

}

public void printGreeting()

{

System.out.println( greeting );

}

}

Notification的结构体一开始是觉的比较麻烦的,不知道各个参数代表什么意思。可以看下 sun 提供的关于jmx的api ,这里看下 notification 的结构体

1、 Notification(String type, Object source, long sequenceNumber)

2、 Notification(String type,Object source,long sequenceNumber,long timeStamp)

3、 Notification(String type,Object source,long sequenceNumber,long timeStamp, String message)

4、 Notification(String type,Object source,long sequenceNumber,String message)

type用来标示通知, source为产生通知的MBean,sequenceNumber为一系列通知中的序号,timeStamp为通知创建的时间,message为具体的通知消息。

HelloAgent.java

/*

* Created on 2004-12-27

* @author roson

*/

package notification;

import javax.management.*;

import com.sun.jdmk.comm.HtmlAdaptorServer;

public class HelloAgent implements NotificationListener

{

private MBeanServer mbs = null;

public HelloAgent ( )

{

mbs = MBeanServerFactory.createMBeanServer("HelloWorld Server");

HtmlAdaptorServer adapter = new HtmlAdaptorServer();

HelloWorld hw = new HelloWorld();

ObjectName adapterName = null;

ObjectName helloWorldName = null;

try

{

adapter.setPort(9092); //8082是默认的端口可以不设

adapterName = new ObjectName("HelloAgent:name=htmladapter,port=9092" );

mbs.registerMBean(adapter,adapterName );

helloWorldName = new ObjectName("HelloAgent:name=helloWorld1" );

mbs.registerMBean( hw, helloWorldName );

hw.addNotificationListener( this, null, null );

}

catch( Exception e )

{

e.printStackTrace();

}

adapter.start();

}//constructor

public void handleNotification(Notification notif, Object handback )

{

//可以在这里顺便看下notification 结构体的参数。

System.out.println( "Receiving notification..." );

System.out.println( notif.getType());

System.out.println(notif.getSource());

System.out.println( notif.getMessage());

}

public static void main( String args[] )

{

System.out.println("Start agent");

HelloAgent agent = new HelloAgent();

}

}

好了可以运行了,打开浏览器 输入 http://localhost:9092 然后在注册 Mbean 的地方找到

List of registered MBeans by domain:

HelloAgent

name=helloWorld1 //就是这里了。当然不是这里点击噢(浏览器上)

name=htmladapter,port=9092

JMImplementation

type=MBeanServerDelegate

然后找到Mbean 的属性

List of MBean attributes:

Name

Type

Access

Value

Greeting

java.lang.String

RW

更改Value值,按 Apply ,搞定(如果下一个页面显示成功)。看下Console输出什么呢。

顺便说下 Access的值 有三个 RW (Read Write) ,RO(ReadOnly) ,WO(WriteOnly)

参考 :http://www.huihoo.com/java/jmx/jmx2.html 和 jmxremote-1_0_1-bin\doc

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有