Monday, April 9, 2012

Configuring JConsole for WebLogic 11g JDK 1_6_0_18

Follow the steps given below to configure JConsole from a remote machine for weblogic 11g jdk1.6 ..

It is always better to access Jconsole from a remote server ,to reduce the impact of jconsole application itself on the server ..


1. Take a backup of setDomainEnv.sh file
2. Edit the setDomainEnv.sh file (/wls/Oracle/Middleware/user_projects/domains//bin) to include JAVA_OPTIONS as given below ,make sure the port 1616 is not used by any other application.


JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
export JAVA_OPTIONS

3. check wehtet the port 1616 is opened or not .It should be open ..
[root@ausomxa3s04 bin]# netstat -anp |grep 1616
tcp 0 0 :::1616 :::* LISTEN 13882/java

4. Save the file

5. Restart the Admin server or managed server which ever you want to monitor .
6. Open the Jconsole from a remote server for example from this location D:\oracle\product\weblogic11g\jdk160_18\bin of a windows machine .


Trouble shooting ..


I am having problem using JConsole to connect to a JVM running on Linux. Connecting to JVM running on Windows and Solaris works fine.
This is most likely a configuration problem on the Linux machine or the management properties specified to run the application. Please also see FAQ #4 about using SSL.

You should check the following:

Check if the hostname correctly resolves to the host address.
Run "hostname -i" command. If it reports 127.0.0.1, JConsole would not be able to connect to the JVM running on that Linux machine. To fix this issue, edit /etc/hosts so that the hostname resolves to the host address.

Check if the Linux machine is configured to accept packets from the host where JConsole runs on to connect to the application.
Packet filtering is built in the Linux kernel. You can run "/sbin/iptables --list" to determine if an external client is allowed to connect to the JMX agent created for remote management. You can use the following command to add a rule to allow an external client such as JConsole to connect:

/usr/sbin/iptables -I INPUT -s jconsole-host -p tcp --destination-port jmxremote-port -j ACCEPT

where jconsole-host is either the hostname or the host address on which JConsole runs on and jmxremote-port is the port number set for com.sun.management.jmxremote.port for remote management.

1 comment: