您在生产 Java 应用程序中使用 JMX 监视什么?
这个问题不是关于JMX是如何工作的,也不是关于JMX做了什么。这个问题是关于 JMX 在生产环境中的标准应用程序服务器环境中的应用程序。它也不适用于特定的服务器。
在运行标准 Java EE 服务堆栈的生产环境中,您使用 JMX 监视什么:数据库访问(JDBC 和 JPA)、会话 EJB、JMS、Web 服务器、Web 服务、支持 AJAX 的服务?
这个问题不是关于JMX是如何工作的,也不是关于JMX做了什么。这个问题是关于 JMX 在生产环境中的标准应用程序服务器环境中的应用程序。它也不适用于特定的服务器。
在运行标准 Java EE 服务堆栈的生产环境中,您使用 JMX 监视什么:数据库访问(JDBC 和 JPA)、会话 EJB、JMS、Web 服务器、Web 服务、支持 AJAX 的服务?
在 JVM 级别,我监视每分钟的垃圾回收持续时间,
在Servlet容器级别,我监控请求数,异常数(4xx和5xx代码),每分钟请求持续时间的总和,
在 SOAP 级别,我监视调用次数、异常数以及每个操作和每分钟的调用次数和总和,
在Web MVC框架级别,我监视调用次数,异常次数以及每个操作和每分钟的调用总和,
对于池(数据源,线程池/执行器服务),我监视活动计数,
对于 JMS 连接,我监视每分钟发送和接收的消息数,以及活动接收方的数量,
对于EhCache,我监控缓存中的条目数,每分钟的命中数和未命中数,
在业务应用程序级别,我开发了一个@Profiled注释来监视调用次数、异常次数和每分钟的总持续时间。
如果您对此类指标感兴趣,我们开发了许多JMX附加功能(dbcp,util.concurrent,jms,@profiled注释),并使用基于Spring XML命名空间的配置,Hyperic HQ插件,监控jsp页面等打包了所有这些内容。
详情如下:http://code.google.com/p/xebia-france/wiki/XebiaManagementExtras。
所有这些代码都是在商业友好的开源Apache软件许可证2下授权的,部署在Maven Central Repository上,可以作为jar下载,并且可以在Google Code Subversion服务器上使用,以便按照您想要的方式进行集成。
希望这有帮助,
西里尔(塞比亚)
我使用JMX公开了一个MBean,它将允许动态调整Log4J记录器级别。事实证明,这对于集群应用程序非常有用,我们不希望必须修改所有节点上的log4j配置文件来更改指定记录器的日志级别。