Jprofiler:Could not find agent library on the library path……

2010-01-31  毕泽明 

我在红旗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,谢谢各位支持我的朋友

 
补充:jprofiler使用x64的so的话,会找不到,必须要用32位的。
2929°/29237 人阅读/6 条评论 发表评论

吴一满  2010-02-08

我用6.0 在linux 64 位机器也遇到这样的问题 报错
Error occurred during initialization of VM
Could not find agent library in absolute path: /opt/jprofiler6/bin/linux-x64/libjprofilerti.so


CentOS4.4-64:dms00:root > ldd /opt/jprofiler6/bin/linux-x64/libjprofilerti.so
ldd: warning: you do not have execution permission for `/opt/jprofiler6/bin/linux-x64/libjprofilerti.so'
        libz.so.1 => /usr/lib64/libz.so.1 (0x00002b3f44b45000)
        libexpat.so.1 => /opt/jprofiler6/bin/linux-x64/libexpat.so.1 (0x00002b3f44c58000)
        libstdc++.so.6 => /opt/jprofiler6/bin/linux-x64/libstdc++.so.6 (0x00002b3f44d7b000)
        libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x00002b3f44f78000)
        libc.so.6 => /lib64/tls/libc.so.6 (0x00002b3f4508d000)
        libm.so.6 => /lib64/tls/libm.so.6 (0x00002b3f452c1000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b3f45448000)
        /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)

我已近加了参数  在 catalian.sh JAVA_OPTS="${JAVA_OPTS} -agentpath:/opt/jprofiler6/bin/linux-x64/libjprofilerti.so=port=8849"  但是就 启动tomcat报错
不知道楼主 可能帮忙?


毕泽明  2010-02-09

报什么错,贴出来看看吧


吴一满  2010-02-09

Error occurred during initialization of VM
Could not find agent library in absolute path: /opt/jprofiler6/bin/linux-x64/libjprofilerti.so
就是上面的错误


吴一满  2010-02-09

linux 是CentOS4.4-64  jpofiler 是6.0.2    tomcat 是6.0  jprofiler 装在 /opt/jprofiler6/ 下。Tomcat 找不到  agent library  会不会可权限有关系?
在另外一台同样配置的 linux server ,jprofiler 可以正常工作  。


王恩建  2010-02-10

楼上的,有两个问题你确认一下:
1、/opt/jprofiler6/bin/linux-x64/libjprofilerti.so 这个文件是否存在?
2、tomcat是以什么用户启动的?该用户对libjprofilerti.so 是否有读权限?


毕泽明  2010-02-10

没搞定的话,加我MSN:beming@msn.com


登录 后发表评论