转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> JAVA开发 >> 正文
使用JMX监控应用程序内、外部的状况         ★★★★

使用JMX监控应用程序内、外部的状况

作者:闵涛 文章来源:闵涛的学习笔记 点击数:649 更新时间:2009/4/22 23:27:39
  Java管理API (JMX)对管理WebLogic服务器而言是必需的。通过这个API,你可以在应用程序服务器里搜索管理beans (mbeans) 并且通过它们你既可以查询配置信息又可以查询runtime监控信息。 此外,通过这个API还可以用来改变服务器的配置。 事实上,这个API 已在控制台和其他的管理工具上使用着,用来完成它们的工作和提供报告数据。

  这个API是一个强大的监控工具。让我们来看一个例子。 在这个应用程序中,有大部分的静态内容,一些你的个性化的JSP页面,一个注册系统,一个基于JMS(Java Messaging Services,Java消息服务)的数据系统,以及一个小付费应用系统。在这个应用程序中在哪里使用JMX对我们有利呢?在静态页面上,你可以为FileServlet存取信息并且可以看到花费了多少时间用来服务静态内容。时间可能比你预期的要少,因为浏览器自动的在客户端缓存了部分内容。大多数对静态内容的请求将会是HEAD请求,用来检查变化。

  对于动态页面,在系统中的每个servlet是被分别计算地。这个数据不能很好的反映用户的经验 (因为用户在他们送出请求和接到页面的返回之间存在延迟),但是这些数据告知了平均每个servlet花在一个请求上的时间,以及多少个请求被完成。我们的注册系统是一个实体bean,而付费系统是一个由外部服务返回的无状态会话bean。 两个bean都能被监控,而且通过这些监控信息可以帮助我们用来优化缓存和池的大小。我们的数据同样能有助于决定是否我们已经得到了所需要的信息,或是决定多少用户正在使用数据。吞吐量也可以使用JMS的topic和queue类型的mbean的属性来计算。此外,所有的JDBC连接都可以被监控,而且从它们的mbeans你能发现多少连接池被争用,举例来说,这将帮助你判断是否需要更多的数据库客户端授权。

  mbeans 在WebLogic服务器中的第二种用途是用于配置信息。通过配置mbeans,所有资源的配置都被包含在runtime中。这些mbeans本质上是被包含在config.xml文件里的信息的表示。部署在服务器监听端口上的应用程序的所有内容都包括在这些接口中。大多数个别的属性是直接相关直接;然而,描述一个部署单元的属性集合是复杂的并且为了方便它们被集合在weblogic.Deployer类中。直接访问它们是可能的,但是除了看配置以及不改变它之外的操作是不被推荐的。其余的属性是随意的,但要小心,但如果组件(如JDBC池)被重新部署或服务器重新启动,大多数这些属性实际上只改变运行时的行为。这些配置性的mbeans 应用的作用范围从决定为某一特定应用使用资源,到调整基于来自监mbeans的反馈数值。

  正如你所看到的,这有许多信息――但是如果你对JMS和WebLogic服务器都不熟悉,你如何着手呢? 它实际上不那么难。 只要你能使用JNDI并且可以阅读JavaDocs你就会发现操纵 mbeans是相当容易的。在下面你所看见的代码示例中,会告诉你如何得到本地服务器的mbean home接口以及JDBC池。

MBeanHome home = (MBeanHome) new
InitialContext().lookup(MBeanHome.LOCAL_JNDI_NAME);
Set pools = home.getMBeansByType("JDBCConnectionPool");

  上面的代码给出了对于JDBC(Java DataBase Connectivity,Java数据库连接)池的配置mbean。如果你想监控连接池而不考虑它们的配置,只要通过添加"Runtime"来改变mbean的类型就可以完成。从这个mbean你可以确定重要的信息,比如是否有连接泄漏――你甚至可以得到一个堆栈追踪,找到该连接的具体位置。

  如果你不想做任何Java编程,就像从一个脚本文件中一样的使用JMX mbean系统,怎么办?幸运的是我们有一个命令行工具,它能让你以命令行的方式直接查看和改变mbean-weblogic.Admin。除了PINGing服务器,得到JNDI列表,重置连接池,以及关闭服务器外,它给出了直接访问mbean的分层结构。在下面的代码示例中你将看到这样的一个weblogic.Admin的指令。

java weblogic.Admin -username system -password [password] -url [url] GET
-pretty -type JDBCConnectionPool

  相比于在这些mbeans上加上属性的类型描述器,这段代码给出了关于mbean的简单易读的描述。同样的,有一个SET命令会在系统中改变任何mbean的属性。

  拥有这种工具你应该能够在Java内部以及从脚本外部监控你的应用程序。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台