快速业务通道

AOP@Work: 用AspectJ进行性能监视,第2部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
onitor.operation.SpringMvcMonitor" /> <aspect ... <aspect name="glassbox.inspector.monitor.resource.JdbcStatementMonitor&qu ot;/> <concrete-aspect name="glassbox.inspector.monitor.operation.CustomMvcMonitor " extends="glassbox.inspector.monitor.operation.TemplOperationMonit or"> <pointcut name="classControllerExecTarget" expression="execution(* com.ibatis.struts.BaseBean..*(..)) && cflow(execution(* com.ibatis.struts.BeanAction.execute (..)))"/> </concrete-aspect> </aspects> </aspectj>

AOP@Work: 用AspectJ进行性能监视,第2部分(15)

时间:2011-09-07 IBM Ron Bodkin

清单 3 中的 aop.xml 文件首先定义 AspectJ 织入器在什么地方应该和不应 该应用方面。在默认情况下,它影响所有通过 ClassLoader 装载的代码。我排 除了系统的某些部分,在那些地方不需要装载时织入以加快启动时间。

AOP 配置文件然后列出要使用的所有方面。目前,这个方面清单必须手工维 护,这通常是容易出错的地方。幸运的是,AspectJ 5 的最终版本计划包含在编 译方面时生成这些清单的工具。

最后注意,这个示例文件包括一个 XML 定义的方面 CustomMVCMonitor。这 个方面扩展了一个抽象方面以监视一个特定于应用程序的框架。基本上,它只定 义了一个针对要监视的操作的切点。这表明了如何在不编译任何代码的情况下扩 展 Glassbox Inspector 以监视自定义代码。还可以通过将监视方面从 aop.xml 文件中删除而不让它们运行。如果以这种方式取消它们的部署,可以降低开销, 但是不能在不重新启动应用程序(或者服务器)的条件下重新启用它们。这种技 术还可以用于限制监视。例如,可以定义一个更狭窄的切点以监视在一个 XML 定义的方面中的 Struts 操作,并排除标准的 StrutsMonitor。

运行带装载时织入的 Tomcat 5.5

我将展示在 Tomcat 5.5 应用服务器中部署 Glassbox Inspector。这个服务 器默认实现了 Java 5,因此我使用 Java 5 的 -javaagent 启动参数调用 AspectJ 5 装载时织入。(请参阅 参考资料 以了解关于对更早版本的 Java 语 言使用 AspectJ 装载时织入的知识。)要使用这个功能,只需要对启动命令增 加一个新的 java 选项标志。这通常是通过编译一个 shell 脚本完成的。例如 ,可以在 Windows 计算机中的 setclasspath.bat 的开始处增加以下一行:

set JAVA_OPTS=-javaagent:%CATALINA_HOME% \common\lib\aspectjweaver.jar -Xmx256m

可以对于 Linux 或者其他 Unix 操作系统的 setclasspath.sh 脚本做类似 的修改。

这一设置就可以在 Tomcat VM 中允许装载时织入。要监视 Web 应用程序, 可以像通常那样编译它,并在以后在 WEB-INF/lib 目录中增加 glassboxInspector.jar 文件及其依赖文件。AspectJ 织入器然后寻找我部署的 aop.xml 文件,并保证它定义的方面在应用程序装载时被织入。另一种方法是, 将 glassboxInspector.jar 和文件加到 Tomcat 的 shared/lib 文件夹中。这 会增加对服务器中所有 web 应用程序的监视,而不需要为每一个应用程序增加 这个 jar。这种解决方案类似于为应用服务器中的一个应用程序或者所有应用程 序增加任何其他库功能。我甚至可以将这个监视器放到系统类路径中或者 Tomcat 的 common/lib 文件夹中。这样就可以监视 Tomcat 的内部,不过我看 不出这有什么必要,而且这样做会增加启动时间。

我选择一次性地在整个服务器上部署监视。一般来说,应用服务器是作为整 体管理的,最好对服务器上的所有应用程序有一致性的管理和监视能力。

性能和内存使

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号