最近对程序进行了优化,准备拿到 Linux的虚拟机上做一下压力测试,碰到了一些问题,所以想看看程序的状况,想到了Jconsole。Linux上不方便看啊,所以只能远程。以前配置过,但感觉并不是对所有都适用。这里结合别人的整理一下。
环境:Linux WebLogic12c
1、修改WLS配置文件
windows修改 E:\bea\user_projects\domains\base_domainJMX\bin\setDomainEnv.cmd
添加
set MEM_ARGS=-Xms512m -Xmx768m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port="9004" -Dcom.sun.management.jmxremote.authenticate="false" -Dcom.sun.management.jmxremote.ssl="false" -Djava.rmi.server.hostname=172.16.41.67
Linux修改 $Domain_HOME/bin/setDomainEnv.sh,
为$JAVA_OPTIONS添加
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=远程机的ip
这里注意要写在JAVA_OPTIONS=" " 的双引号内啊。这里我们把远程端口定义成9004,可以自定义,不冲突就好。-Djava.rmi.server.hostname不能少,我就是少了这一句,折腾了半天。
2、解决jconsole远程登录用户名密码问题
$JAVA_HOME\jre\lib\management目录有个jmxremote.password.template,在最下面两行就可以看到,把前面的#号去掉就生效了
monitorRole weblogic(用户名 密码,可以随意修改)
controlRole weblogic(用户名 密码,可以随意修改)
这里注意,第一步配置了authenticate=false,也就是不用权限的。所以这一步不做也行。
3、编辑host文件
vi /etc/hosts
添加
jconsole要访问的ip地址 localhost localhost.localdomain localhost
使用hostname -i查看,返回的应该是jconsole要访问的ip地址,也就是weblogic机器的真实IP地址
4、启动./$Domain_HOME/bin/startweblogic.sh
第一步配置正确的话,控制台会打印
5、查看9004端口是否启动netstat -an | grep 9004。也可以在主机 telnet 远程机ip 端口
6、在本地jdk/bin目录下启动JCONSOLE程序,在窗口中选择“远程”选项卡,输入IP地址端口号:jconsole ip:9004,用户名/密码:monitorRole/weblogic(第一步没配置权限的则不用输入用户名密码)