Jprofiler监测WAS ND 6.1

网上对于“使用Jprofiler监测WAS”的设置说明其实有很多。但是都漏了重要的一点,导致很容易在windows下WAS服务器启动失败,无法进行监测。

(下文中Jprofiler安装在C:/jp/中,读者可根据自己需要修改)

(所有问题均出现在windows中)

具体问题如下:

1.使用startServer启动服务器的时候出现错误

ADMU0116I: 正在文件 
c:/IBM/WebSphere/AppServer/profiles/AppSrv02/logs/server1/startServer
.log 
中记录工具信息
ADMU7701I: 由于 server1 注册成作为 Windows
服务运行,因此启动该服务器的请求将由启动关联的
Windows 服务完成。
ADMU0116I: 正在文件 
c:/IBM/WebSphere/AppServer/profiles/AppSrv02/logs/server1/startServer
.log
中记录工具信息
ADMU0128I: 正在启动具有 AppSrv02 概要文件的工具
ADMU3100I: 正在从服务器读取配置:server1
ADMU3200I: 服务器已启动。等待初始化状态。
ADMU3011E:
服务器已启动,但是初始化失败。startServer.log、SystemOut.log(或者
zOS 中的作业日志)以及
c:/IBM/WebSphere/AppServer/profiles/AppSrv02/logs/server1
下的其他日志文件可能包含故障信息。
ADMU7704E: 在尝试启动与服务器相关联的 Windows
服务时失败:server1;
在执行
WASService.exe
时可能发生了错误:Starting Service: 
dustballNode02
Service
failed to start.
startServer return code = -1

2.查看native_stderr.log文件提示如下错误

 

JVMJ9TI001E Agent library jprofilerti could not be opened (找不到指定的模块。 )
JVMJ9VM015W Initialization error for library j9jvmti23(-3): JVMJ9VM009E J9VMDllMain failed
无法创建 Java 虚拟机。

以上2个提示非常的误导人,让人以为是WAS的jvm的参数设置有问题。因此去查看该服务器的server.xml发现jvm参数确实被Jprofiler修改,如下:

genericJvmArguments="-agentlib:jprofilerti=port=8849  -Xbootclasspath/a:C:/jp/bin/agent.jar"

可以看出,jvm参数没有任何问题。

 

后来无意中发现,在myeclipse blue edition可以顺利启动WAS,并用Jprofiler来监测。具体操作如下:

先将上面的jvm参数从server.xml中除去;

然后在myeclipse blue edition里面配置was服务器,配置选项中有一个jvm参数,在那里加上上面的jvm参数

-agentlib:jprofilerti=port=8849  -Xbootclasspath/a:C:/jp/bin/agent.jar

还要在系统环境变量PATH中加入

C:/jp/bin/windows

这样在myeclipse中就可以启动WAS了。而且可以使用Jprofiler监测。

 

现在大家应该会觉得myeclipse非常的神奇了。通过仔细观察,myeclipse是采用非系统服务的方式启动WAS的。

而windows版的WAS在创建profile的时候可以选择是否注册成系统服务。如果一旦注册成系统服务,startServer命令就会调用系统服务来启动WAS,从而失败。(至于为什么失败,还不清楚具体的原因)

 

总之,在用Jprofiler时,想要成功启动was有3个方法:

1. 创建profile的时候不选择注册成系统服务;

2. 如果现有的profile已经注册成为系统服务了,在使用Jprofiler之前,先禁用该系统服务;

3. 使用myeclipse配置启动was。

 

这样一个简单的问题,折腾了俺2天,希望对其他的新手有所帮助。

你可能感兴趣的:(jvm,windows,MyEclipse,服务器,library,initialization)