glassfish应用程序服务器提供了一个很好的监控REST接口。 要使用它,您可以在管理控制台中启用多个可监视项,例如EJB容器。文档说,您可以检索每个已部署应用程序的EJB统计信息。
如果您请求 localhost:4848 / monitoring / domain1 / server / applications / APPNAME / EJBNAME 这样的网址,您将获得该应用程序的给定EJB的统计信息。
此外,有可能更深入地了解ejb的每个bean方法,例如执行时间,文档说明如下:
“执行该方法的时间(以毫秒为单位),用于上次成功/不成功尝试运行操作。如果在EJB容器上启用了监视,则会收集无状态和有状态会话Bean以及实体bean 。 /强>“的
现在的问题是,在EJB容器上启用了监视(Level设置为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监控......
答案 0 :(得分:3)
这似乎是Glassfish中的一个Bug EJB监控目前在3.1.2中不起作用 JIRA问题已经提出:http://java.net/jira/browse/GLASSFISH-19677
答案 1 :(得分:0)
没有什么“特别”可做。
http://docs.oracle.com/cd/E18930_01/html/821-2431/abeea.html
对我来说,好像你可能在错误的配置上启用了监控选项。请仔细检查。
答案 2 :(得分:0)