- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教你如何用JMX 检测应用程序
提示:本文档由91913网址导航()整理,供大家学习。
如果你想用 JMX 检测应用程序,其实只需添加 bean 就可实现,立即可视结合平台内的 JMX 支持和 jconsole JMX 客户机可以提供一种向应用程序添加管理和监视功能的轻松方式。即使是没有具体管理需求的应用程序,为它们构建这些功能也会让您对程序的运行及其所处理的数据的性质获得深入了解,而且不需太多的工作和努力。如果应用程序导出管理接口,此接口让您可以查看它操作的内容,那么您就会更加了解它的运行状态——对它是否按预期的方式工作也会更有信心——而不必求助于额外的工具(例如添加日志代码或使用调试器或分析器)。
调试器和分析器可以提供对应用程序的行为的深入观察,但在出现严重问题之前,这些工具通常用不上。将监视挂钩(hook)构建到应用程序内,会使理解程序的执行变得更容易而且不会破坏调试器。既然 Java 管理扩展(JMX)已经构建进了 Java? SE 平台,而且 jconsole 查看器提供了统一的监视 GUI,那么用 JMX 为应用程序提供一个窗口,要比以前更加容易而且更为有效。
有多少次您曾经注视着运行中的应用程序,问自己:“它到底在做什么?为什么用了这么长时间呢?” 在这些时刻,您可能会想如果自己在应用程序中构建了更多的监视功能就好了。例如,在服务器应用程序中,能够查看排队等候处理的任务的数量和类型、当前正在处理的任务、过去一分钟或一小时内的吞吐量统计、平均任务处理时间等。这些统计值容易搜集,但是在需要数据的时候,如果没有非侵入性的数据检索机制,那么这些值就不太有用。
可以用许多方式导出操作性数据——可以把周期性统计快照写入日志文件、创建 Swing GUI、使用内嵌的 HTTP 服务器在 Web 页面上显示统计值或者发布可以用来查询应用程序的 Web 服务。但是在缺少监视和数据发布基础设施的情况下,多数应用程序开发人员都做不到这些,因此造成对应用程序工作情况的了解要比预期的少很多。
JMX:
在 Java 5.0 中,类库和和 JVM 提供了一种全面的管理和监视基础设施——JMX。JMX 是一种用来提供可以远程访问的管理接口的标准措施,也是一种向应用程序添加灵活且强大的管理接口的简易方式。被称作受管 bean(MBean)的 JMX 组件,是提供与实体的管理有关的访问器和业务方法的 JavaBean。每个受管的实体(可能是整个应用程序或应用程序中的服务)实例化一个 MBean 并用可读懂的名称注册它。支持 JMX 的应用程序依赖于 MBeanServer,它充当 MBean 的容器,提供远程访问、命名空间管理和安全服务。在客户端,jconsole 工具可以充当统一的 JMX 客户机。结合两者,对 JMX 的平台支持极大地降低了使应用程序支持外部管理接口所需的工作和努力。
除了提供 MBeanServer 实现,Java SE 5.0 还提供 JVM 以更方便地了解内存管理、类装入、活动线程、日志和平台配置的状态。多数平台服务的监视和管理在默认情况下都是开启的(性能影响最小),所以只需要连接应用程序与 JMX 客户机即可。
图 1 给出了 jconsole JMX 客户机(JDK 的一部分) ,它显示了其中一个内存管理视图——一段时间内的堆使用情况。Perform GC 按钮则证明了 JMX 可以提供 除了查看操作统计值之外的初始化操作的功能。
传输和安全性
JMX 指定了在 MBeanServer 和 JMX 客户之间通信所使用的协议,协议可以在各种传输机制上运行。可以使用针对本地连接的内置传输,及通过 RMI、socket 或 SSL 的远程传输(可以通过 JMX Connector API 创建新的传输)。认证是由传输执行的;本地传输允许用相同的用户 ID 连接到运行在本地系统上的 JVM;远程传输可以用口令或证书进行认证。本地传输在 Java 6 下默认就是启用的。要在 Java 5.0 下启用它,需要在 JVM 启动时定义系统属性 com.sun.management.jmxremote。“Monitoring and Management using JMX” 这份文档(请参阅参考资料)描述了启用和配置传输的配置步骤。
检测 Web 服务器
检测应用程序来使用 JMX 很容易。像其他许多远程调用框架(RMI、EJB 和 JAX-RPC)一样,JMX 也是基于接口的。要创建管理服务,需要创建指定管理方法的 MBean 接口。然后可以创建一个 MBean 来实现此接口、实例化它及把它注册到 MBeanServer。
清单 1 显示了网络服务(例如 Web 服务器)的 MBean 接口。它提供了检索配置
文档评论(0)