我需要编写一个java监视器,作为Linux服务运行,以监视Glassfish 4(非常旧的版本)中http侦听器的状态。我的想法是能够通过 JMX 找到这些信息。通过 JMX 连接我的 jar。但是,即使连接 vi JConsole,我也无法确定应该监视哪些 MBean。我需要了解是否有任何听众仍然“卡住”或者没有被释放,仍然处于卡住且未返回的状态,就像处于一种“地狱边缘”。
您能帮我确定 Glassfish 4 中的哪些 MBeans 资源可用于执行此类监控吗?显然,所有存在的 http 监听器都必须被扫描。
谢谢大家。
您应该在 GlassFish 中启用“监控服务”并将“HTTP 服务”模块的级别设置为“高”。
然后您可以通过以下方式访问网络监听器的监控数据:
监控 bean 提供了几个指标。要检测线程池是否卡住(意味着所有线程都卡住并且没有任务完成),您可以查看
currentthreadsbusy
和 totalexecutedtasks
属性。如果在较长时间内 currentthreadsbusy
高于 1 并且 totalexecutedtasks
没有增加,则意味着某些线程被卡住,正在处理任务,但没有任务完成。
免责声明:我的公司 OmniFish 由核心 GlassFish 项目开发人员为 GlassFish 提供商业支持。如果您需要更多帮助,请通过 https://omnifish.ee/contact-us/ 告诉我们。