如何为Yourkit配置以jsvc方式运行的Tomcat

我们一般在Linux服务器上用jsvc(Java Service)来运行Tomcat 5.5。Tomcat的源代码中带了jsvc,在bin目录中。jsvc工具是属于commons-daemon项目的,Tomcat中带的是最新的稳定版本1.0.1。

用Yourkit来profile一个J2EE Web应用,首先需要在Tomcat启动时加上profile agent的参数,-agentlib:yjpagent. 然而,1.0.1版本的jsvc并不支持Java 1.5的参数”-agentlib”。当然,你可以在catalina.sh中加参数,用startup.sh启动Tomcat,但应该还是有许多人希望用jsvc运行。

我最初Google的结果来自Yourkit的服务论坛。2005年的问题,到现在还没有解决,甚至yourkit的人都不知道jsvc是什么东西。

终于在Apache的bugzilla里看到有人提出了jsvc不支持Java 5的新参数的问题,而下面有开发人员回复说在trunk里已经修正。又搜到这样一个网页,可以看到parse函数中处理了agentlib这个参数。

但jsvc在Apache SVN的什么地方呢?坚持找了好久,终于找到了这个地址

好,从这里co一份代码替换原来的jsvc,编译。编辑/etc/init.d/tomcat,加上agentlib参数。如果按照Yourkit的文档做好了准备工作的话,启动Tomcat,在%TOMCAT_HOME%/logs/catalina.out中就可以看到Yourkit的agent已经工作了,且可以知道它在哪个端口上工作。

打开Yourkit的图形界面,连接到这台服务器,就可以监视上面的J2EE应用了。

不知道新版本的commons-daemon什么时候发布,或者新的jsvc代码什么时候被打包进Tomcat. 但如果你需要JVM 1.5的新参数,就应该使用最新的SVN代码。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.