当前位置: 首页 > 图文教程 > 网络编程 > JSP > JMX调试----第三方工具使访问更加容易

JSP
Servlet及JSP中的多线程同步问题
使用Ant和Tomcat创建Web应用
如何直接在浏览器内运行SQL命令
Servlet、Jsp中的多国语言显示
html与jsp开发分离技术
通过Jsp发送动态图像
Servlets和JSP Pages最佳实践
学习在JSP中使用JavaBeans
JSP显示内容缓存技巧
应用JDOM处理数据库到XML转换的JSP实现
JSP中tomcat的SQL Server2000数据库连接池的配置
用JSTL实现JSP应用程序快速开发
浅谈4种类型的JDBC驱动程序
怎样设置 JSP 的虚拟目录
Java 中对文件的读写操作之比较
javamail在jsp中调用
jsp中任意文字转Unicode的通用模块
JSP与SQL SERVER的留言本
jspSmartUpload上传下载全攻略
Tomcat5.x中的虚拟主机配置方法

JSP 中的 JMX调试----第三方工具使访问更加容易


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-03   浏览: 46 ::
收藏到网摘: n/a

摘要

BEA WebLogic 8.1实现了Java Management Extensions (JMX) 1.0。大多数WebLogic子系统(JMS ProvidersJDBC ContainerExecuteQueues等)及其组成部分被称为Mbeans,并且包含配置、监控和管理它们所依据的属性。管理服务器实例实现了MbeanServer,而该管理服务器实例的配置和运行时Mbeans以及它的受控服务器的配置和运行时Mbeans都是通过该MbeanServer被访问的。

作者:Jim Weaver 

BEA WebLogic 8.1实现了Java Management Extensions (JMX) 1.0。大多数WebLogic子系统(JMS ProvidersJDBC ContainerExecuteQueues等)及其组成部分被称为Mbeans,并且包含配置、监控和管理它们所依据的属性(attribute)。管理服务器实例实现了MbeanServer,而该管理服务器实例的配置和运行时Mbeans以及它的受控服务器的配置和运行时Mbeans都是通过该MbeanServer被访问的。受控服务器实例实现了MbeanServer,而只有驻留在该受控服务器上的配置和运行时bean才能通过该MbeanServer被访问。

在运行服务器工作不正常的调试场景中,可对它的两个配置bean都进行检查,以便诊断出故障原因。可通过Java APIBEA Weblogic Mbeans进行有计划的访问。另外,WebLogic提供了两种无需编程访问Mbeans的方法:weblogic.Admin命令和wlconfig ant task。当然也还有无数的第三方工具可以提供对Mbeans的方便访问。我常使用的两个是:wlsh(由BEAPaco Gomez开发)和wlsScriptingBEASatya Ghattu使用Jpython开发的)。

我利用两台受控服务器的群集以及另外一台独立的受控服务器对TestDomain进行了配置。利用wlsh连接到管理服务器将会产生如清单1所示的结果。

连接到受控服务器将生成如清单2所示的结果。

现在我可以利用如下命令从管理服务器上检索ExecuteThreadCurrentIdleCount

wlsh TestDomain:/> idleCount=/ExecuteQueueRuntime/weblogic.kernel.Default/
ExecuteThreadCurrentIdleCount
variable idleCount set to /ExecuteQueueRuntime/weblogic.kernel.Default/
ExecuteThreadCurrentIdleCount (java.lang.String)
wlsh TestDomain:/> get
15

在生产场景中有一点总是很重要,那就是崩溃的服务器必须立即重新启动。清单3利用wlsScripting周期性地检查服务器的状态,并且在必要时重新启动它。同时,它还出于调试的目的对关键属性进行取样。

清单4显示了当一个线程延迟时,将脚本相对于examplesServer的实例而运行的输出。

I在不能存在大量调试的生产环境中,很难跟踪那些暂态错误。只有在某些情况下才能使用JMX API来报告调试错误。清单5安装了一个计数器监控器,该监控器在ServerRuntime MbeansOpenSocketsCurrentCount属性达到一定水平时被触发。它在目前的NotificationListener.handleNotification方法中除了记录下已经收到通知外什么也不做;但是,在实际情况中,当出现这种情形时你可能会启动一个线程来定期报告与关键资源相关的属性的值,比如来自默认队列的ExecuteQueueRuntimeMBeanPendingRequestsCurrentCount

下面是运行DebugMonitor的输出:

 
Java debug.DebugMonitor
 
Active Domain: medrecTwo
Active Servers:
        Name: MedRecServer
        ListenAddress: JWEAVER1/10.62.3.106
        ListenPort: 7001
 
        Number of servers active in the domain: 1
>>> MyCounter got notification: javax.management.monitor.MonitorNotification
...

链接

·  WebLogic JMX文档的起点:http://edocs.bea.com/wls/docs81/jmx/index.html

·  编程示例:http://edocs.bea.com/wls/docs81/jmx/index.html

·  weblogic.Admin命令: http://edocs.bea.com/wls/docs81/admin_ref/cli.html#MBean_Management_Command_Reference

·  wlconfig Ant taskhttp://edocs.bea.com/wls/docs81/admin_ref/ant_tasks.html#1023006

·  wlshhttp://www.wlshell.net/

·  wlsScripting工具:http://dev2dev.bea.com/codelibrary/code/wlst.jsp

你的感想如何?请阅读/参加对本文的 反馈

关于作者
Jim Weaver
是丹佛的一位backline WebLogic 支持工程师。他已在BEA工作了三年多,之前曾做过十多年的C++/Java开发人员
更多详情)。