glassfish 应用服务器提供了一个很好的监控 REST 接口。要使用它,您可以在管理控制台中启用多个可监控项目,例如 EJB 容器。文档说,您可以检索每个已部署应用程序的 EJB 统计信息。
如果您请求像localhost:4848/monitoring/domain1/server/applications/ APPNAME/EJBNAME 这样的 URL ,您将获得应用程序的给定 EJB 的统计信息。
此外,有可能更深入地研究 ejb 的每个 bean-method,例如executiontime,关于它的文档说:
“时间,以毫秒为单位,用于执行最后一次成功/不成功尝试运行该方法的时间操作。如果在 EJB 容器上启用了监视,则会为无状态和有状态会话 bean 和实体 bean 收集。
现在的问题是,在 EJB 容器上启用了监视(级别设置为 HIGH),但是在任何已部署应用程序的任何 EJB 中的任何 bean 方法中都没有采样。
豆子和/或玻璃鱼有什么特别的吗?
提前感谢您的帮助,
克里斯
编辑:
好的,我注意到有关该行为的更多信息:
在服务器日志中,您会收到每个已部署 EJB 的日志消息,如下所示:
INFO: EJB5181:Portable JNDI names for EJB DataFetcher // ...
如果我将 ejb-container 监视级别设置为 HIGH(这是我想要做的),我会为每个部署的 EJB 收到以下警告,无论我部署哪个应用程序:
WARNING: MNTG0201:Flashlight listener registration failed for listener class : com.sun.ejb.monitoring.stats.StatelessSessionBeanStatsProvider , will retry later
我用谷歌搜索了警告,但没有一个结果真的能帮助我启用 EJB 监控......