ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java-发出JMX通知的最佳实践

2019-11-02 20:03:55  阅读:223  来源: 互联网

标签:jmx java


在定义发出通知的MBean(特别是关于通知类型)的过程中要寻找指导. Oracle网站上的JMX Best Practices表示以下内容.但这是Java6之前的旧版本.

Notifications should be instances of javax.management.Notification or one of the subclasses from the javax.management namespace. Information that does not fit into one of those subclasses should be conveyed by attaching a CompositeData to the notification using the setUserData method.

同样在Oracle网站上,我看到Weblogic定义了一些自己的子类,例如WebLogicLogNotification.其Best Practices状态:

All JMX notification objects extend the javax.management.Notification object type. JMX and WebLogic Server define additional notification object types, such as javax.management.AttributeChangeNotification. The additional object types contain specialized sets of information that are appropriate for different types of events.

我们的通知不适合任何标准子类,因此像WLS一样,考虑使用自定义getter定义我们自己的子类,以获取我们希望随通知一起传达的信息.还是坚持使用基本javax.management.Notification并仅将我们的信息附加到通用setUserData(Object)上会更好?如果我们做后者,我想对象应该是一个JMX类型,例如CompositeData,看起来不太好.从消费者的角度考虑哪个更好?

编辑:从使用者的角度来看,我想自定义子类的缺点是他们必须将其包括在应用程序/类路径中.

解决方法:

在jmx中使用自定义数据类型几乎总是一个坏主意.这是非常有限的.坚持开放类型,您的数据就可以被任何jmx客户端(Java或其他方式)使用.

请注意,您始终可以提供一些帮助程序类,以执行某种“自定义bean”<->. “开放式”转换.可以访问帮助程序类的类可以利用这些便捷方法(例如ThreadInfo.from()),而外部和非Java代码仍然可以使用数据.

标签:jmx,java
来源: https://codeday.me/bug/20191102/1993857.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有