您在生产Java应用程序中使用JMX监视什么?

top*_*hef 32 java performance monitoring jmx java-ee

这个问题不是关于JMX如何工作或JMX的作用.这个问题是关于JMX在生产中的标准应用程序服务器环境中的应用.它也不适用于特定的服务器.

在运行标准Java EE服务堆栈的生产环境中,您使用JMX监控的是什么:数据库访问(JDBC和JPA),会话EJB,JMS,Web服务器,Web服务,支持AJAX的服务?

小智 30

JVM级别,我监视每分钟的垃圾收集持续时间,

Servlet容器级别,我监控请求数,例外数(4xx和5xx代码),每分钟请求持续时间总和,

SOAP级别,我监视每次操作和每分钟的调用次数,异常次数和调用次数,

Web MVC框架级别,我监视调用次数,异常数量和每个操作和每分钟调用的总和,

对于池(数据源,线程池/执行器服务),我监视活动计数,

对于JMS连接,我监视每分钟发送和接收的消息数以及活动接收器的数量,

对于EhCache,我监控缓存中的条目数,每分钟的命中数和未命中数,

业务应用程序级别,我开发了一个@Profiled注释来监视调用次数,异常数和每分钟总持续时间.

如果您对这种指标感兴趣,我们开发了许多JMX附加组件(dbcp,util.concurrent,jms,@ profileof annotation),并使用基于Spring XML命名空间的配置,Hyperic HQ插件,监视jsp页面等打包所有这些.

详细信息如下:http://code.google.com/p/xebia-france/wiki/XebiaManagementExtras.

所有这些代码都是在商业友好的开源Apache软件许可证2下许可的,部署在Maven Central Repository上,可以作为jar下载,并可在Google Code Subversion服务器上获得,以便按照您希望的方式进行集成.

希望这可以帮助,

Cyrille(Xebia)


小智 8

我已经使用JMX公开了一个允许动态调整Log4J Logger级别的MBean.这证明对于群集应用程序非常有用,我们不希望在所有节点上修改log4j配置文件以更改指定记录器的日志级别.


Bri*_*new 5

我最常见的要求是监控线程数和内存.我最近的工作涉及大量线程服务器调度到网格,监视线程使用情况(衡量服务器正在执行的调度工作量)非常重要.内存与线程使用密切相关(部分原因是与每个线程关联的对象,部分原因是每个线程隐式堆栈分配).

我们JMX也启用了我们的工作负载队列数据.以上监测的排队工作项的症状影响,但最终我们想要监控实际的工作队列.通过JMX公开关键组件是值得的,以便更清楚地了解正在发生的事情.