我们使用Equinox作为我们应用程序的运行时。OSGi的模块性很好,但在JBoss时代,我遗漏了一件事:监控工具。JMX是JVM中监控的标准,但是Equinox似乎没有提供太多的内置支持。
除了Equinox Resource Monitoring项目,该项目似乎自2007年以来就已经过时了(并且没有退出孵化阶段),还有什么选择?
其他OSGi/Equinox采用者还使用什么来监控基于OSGi的应用程序?其他的OSGi实现呢?这一点非常重要,足以在Felix+Karaf提供更好的监控支持的情况下触发迁移。
发布于 2012-07-13 01:43:03
有几个选项可用。Gemini Management为框架的OSGi监控提供了一个JMX标准的实现。
如果您希望监视所需的Servlet环境,可以查看Servlet引擎提供的选项。我们将Jetty包含在Gyrex中,它提供了几个选项。我们还添加了更多的JMX bean来测量平均请求时间、有关最后一个错误的信息等等。
实现您自己的JMX bean实际上并不困难。您可以从代码中的任何位置调用ManagementFactory.getPlatformMBeanServer().registerMBean(...)来注册bean。看一下our service tracker implementation,它为每个注册的特定类型的服务对象注册一个JMX监视bean。
发布于 2012-07-13 02:59:24
我推荐使用Apache Karaf。您可以将其与Felix或Equinox一起使用。它提供了大量的监控功能。只需启动karaf并与Jconsole连接即可。除了JMX之外,它还有Felix Webconsole和一个很棒的命令行,也可以通过ssh使用。
发布于 2015-12-10 02:18:57
我在googling上搜索equinox + JMX时发现了这个帖子。由于这个帖子来自2012年,其他人可能会在未来围绕这个问题,是时候添加另一个适合我的解决方案了。
您可以很容易地使用Aries JMX。下面你可以找到白羊座文档的总结。要执行此操作,请添加
导入java.lang.management.ManagementFactory;导入javax.management.MBeanServer;导入org.osgi.framework.BundleActivator;导入org.osgi.framework.BundleContext;公共类激活器实现异常{ public void start(BundleContext context)抛出异常{ MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();public mbs,null);} public void stop( }
context)抛出异常{} }BundleContext
因此,可以通过例如JConsole访问Equinox容器。
https://stackoverflow.com/questions/11451810
复制相似问题