选择显示字体大小

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

java管理api (jmx)对管理weblogic服务器而言是必需的。通过这个api,你可以在应用程序服务器里搜索管理beans (mbeans) 并且通过它们你既可以查询配置信息又可以查询runtime监控信息。 此外,通过这个api还可以用来改变服务器的配置。 事实上,这个api 已在控制台和其他的管理工具上使用着,用来完成它们的工作和提供报告数据。

  这个api是一个强大的监控工具。让我们来看一个例子。 在这个应用程序中,有大部分的静态内容,一些你的个性化的jsp页面,一个注册系统,一个基于jmsjava 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的反馈数值。

  正如你所看到的,这有许多信息――但是如果你对jmsweblogic服务器都不熟悉,你如何着手呢? 它实际上不那么难。 只要你能使用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内部以及从脚本外部监控你的应用程序。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons