我在红旗linux DC5 64位上面,通过jprofiler 5.2.4进行监控weblogic的情况。
ENV:
红旗linux DC5 sp2 64位,weblogic 9.1,jdk1.6
监控客户端为win2k3.
在linux中使用用户weblogic进行安装,完成。在客户端的我使用了zip的包,解压运行。配置监控remote server,这个过程就不用说了,很简单。
如果一开始有选择应用服务器的选项的话,这时候可以在win下面,用ftp方式将linux上的启动weblogic的sh(bin下面的那个)get到windows平台下,选择这个sh就可以自动配置weblogic的启动脚本,增加jprofiler的参数了。
但是要注意的是,可能会存在一些修改的地方,我就这样子修改的:
1,头部分,定义的JVM为sun这一行我注释掉了:#JAVA_VENDOR=Sun
2,定义了一个空路径的JAVA_HOME的,去掉了。
# START WEBLOGIC
# The following lines have been added by the
# application server integration wizard of JProfiler
LD_LIBRARY_PATH="/app/jprofiler5/bin/linux-x86/:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH
JPROFILER_OPTIONS="-agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/app/jprofiler5/bin/agent.jar $JPROFILER_OPTIONS"
export JPROFILER_OPTIONS
# end of modifications
于是,复制user_domains下的startWeblogic.sh到startWeblogic_jprofiler.sh,里面调用的为bin下面的startWeblogic_jprofiler.sh,这样子可以希望启动jprofiler或者还是启动原来的weblogic,比较方便。
ok,执行启动脚本,结果出现:
Could not find agent library on the library path or in the local directory: jprofilerti
检查路径,没有问题。于是检查依赖关系,测试32位和64位的依赖:
[weblogic@forTestTwo ~]$ ldd /app/jprofiler5/bin/linux-x86/libjprofilerti.so
ldd: warning: you do not have execution permission for `/app/jprofiler5/bin/linux-x86/libjprofilerti.so'
linux-gate.so.1 => (0xffffe000)
libstdc++-libc6.2-2.so.3 => /app/jprofiler5/bin/linux-x86/libstdc++-libc6.2-2.so.3 (0xf7e8c000)
libz.so.1 => not found
libexpat.so.0 => /app/jprofiler5/bin/linux-x86/libexpat.so.0 (0xf7e5a000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xf7e48000)
libc.so.6 => /lib/tls/libc.so.6 (0xf7d1d000)
libm.so.6 => /lib/tls/libm.so.6 (0xf7cf9000)
/lib/ld-linux.so.2 (0x56555000)
[weblogic@forTestTwo ~]$ ldd /app/jprofiler5/bin/linux-x64/libjprofilerti.so
ldd: warning: you do not have execution permission for `/app/jprofiler5/bin/linux-x64/libjprofilerti.so'
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000002a957d3000)
libz.so.1 => /usr/lib64/libz.so.1 (0x0000002a959c3000)
libexpat.so.1 => not found
libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x0000002a95ad7000)
libc.so.6 => /lib64/tls/libc.so.6 (0x0000002a95bec000)
libm.so.6 => /lib64/tls/libm.so.6 (0x0000002a95e20000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000002a95fa7000)
/lib64/ld-linux-x86-64.so.2 (0x000000552aaaa000)
发现各有一个not found,于是找到红旗安装盘,安装了zlib和expat的rpm,32位和64位的都安装了,发现以来关系还是发现libexpat.so.1这个依赖关系没有找到。
通过查找linux那个地方存在有libexpat.so.1这个文件:find / -name libexpat.so.1,发现在jprofiler5的安装目录下面linux-x86和linux-x64下面都有这个文件,于是把不同目录下的libexpat.so.1,32位的放到/usr/lib,/lib(根目录下的)下,64位的放置在/usr/lib64,/lib64(根目录下的),并chmod a+rwx修改它们的权限。
再进行ldd,bingo!
再进行启动带有jprofiler参数的weblogic启动脚本,太好了,久违了的waiting for connect出现了,启动客户端的,终于连上了。
一天都光晒!谢谢CCAV,谢谢MTV,谢谢各位支持我的朋友