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

JSP
解决JSP中使用request乱码问题
高性能、高弹性JSP和Servlet性能优化
解决JSP开发Web程序中文显示三种方法
实例讲解在JSP开发中的对象和范围属性
JSP+XML实现网页内容动态显示的方案
weblogic的jsp问题解决方法
JSP处理异常及一些高级主题
JavaBean 在jsp和serlvle中传递技术要点
JSP和Servlet对中文的处理过程
用 servlet 将jsp文件内容转为html
JSP动态网站环境搭建的详细步骤
JSP/Servlet/JSF:自定义标签
Jsp常用功能:CSV文件的生成与分析
Jsp页面实现文件上传下载
JSP网站开发环境的目录结构标准
Windows 2000 server下搭建JSP网站环境
JSP教程:tomcat配置数据库连接池
tomcat下post方式提交服务器乱码
jsp环境下FCKeditor编辑器的应用
JSP网站开发环境配置和使用fckeditor

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-03   浏览: 64 ::
收藏到网摘: 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开发人员
更多详情)。