使用JMX(MBean)记录WebLogic状态

时间:2011-10-25 17:36:01

标签: weblogic logging jmx

我知道我们可以使用MBean来获取WebLogic的状态。例如,使用JDBCDataSourceRuntimeMBean(http://download.oracle.com/docs/cd/E15523_01/apirefs.1111/e13951/core/index.html)来获取JDBC状态。并使用其他MBean,我们也可以获得EJB,WebService,...的状态。

但这只是当时的状态,如果我想监视历史记录,例如,我想知道每个EJB事务的详细运行时间,是否可能?

目的是我们希望监控我们的应用程序性能,一个明显的解决方案是在我们的EJB中添加日志并解析它。但是如果我们可以在没有编写代码的情况下从服务器获取它,那就更好了。

另一个问题是,因为JMX是一个标准,JBoss支持它。如果解决方案可以支持WebLogic和JBoss会更好。

更新

我阅读了WebLogic文档,发现WLDF很好。

  • 收集的指标:这可以收集服务器信息。我用它来将JDBC状态收集到数据库中。
  • Instrumentation:我用它来记录方法的执行时间

以下是官方文件和教程。

收集的指标

仪表:

唯一不方便的是切入点的语法。如果我想监视一个类中的几个方法,我需要编写几个wldf-instrumentation-monitor标记。除非我能找到一个外卡模式来描述它们。

1 个答案:

答案 0 :(得分:2)

这绝对是可能的,但您可能更容易使用现有的WLDF框架 - 您可以定义要跟踪的MBean,将历史数据存储到文件存储中并在控制台中绘制它们。

我不建议记录调试语句的路由,尤其是在生产环境中。根据系统的吞吐量,日志记录中的额外I / O可能会产生很大的开销。

JMX是访问运行时bean的标准方法,但它们在WebLogic和JBoss之间会有所不同。根据我的个人经验,除非您使用CA Wily的Introscope等企业解决方案,否则最好使用专门为应用程序服务器编写的各个程序,因为它们通常会突出显示您可能感兴趣的其他指标(如果您有是时候遍历所有MBean并确定它们的用途,这可能并不重要。)

希望有所帮助!