Performance and high availability of production systems are critical for any business. Hence there is a plethora of monitoring tools available in the market that helps you to monitor your production systems, generate alerts, and trigger emails in down time situations. Few commercially available monitoring tools in the market are wily introscope, Appdynamics etc.
For further details on wily introscope.
http://www.numeroreal.com.br/Manuais/uploads/CA%20Wily%20Introscope.pdf
For further details on Appdynamics.
https://www.appdynamics.com/solutions/appdynamics-java-monitoring/oracle-weblogic-monitoring
Apart from commercially available monitoring tools, there are few freely available monitoring tools like jconsole, jhat, jstack and weblogic’s very own JRMC, WLDF (For performance monitoring).
This post is a sample illustration of how we can configure Jconsole with WebLogic Application Server for monitoring.
What is JConsole?
The JConsole graphical user interface is a monitoring tool that complies to the Java Management Extensions (JMX) specification. JConsole uses the extensive instrumentation of the Java Virtual Machine (Java VM) to provide information about the performance and resource consumption of applications running on the Java platform.
References:
http://docs.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html
How do I configure Jconsole with weblogic application server?
Local server monitoring:
- Set the classpath by running setDomainEmv.cmd from <WLS_DOMAIN_HOME>bin
- Start Jconsole.exe ( Alternatively you can execute it from from the default java location : C:Program FilesJavajdk1.6.0_45bin)
- Select the Weblogic Server instance from the local process list.
4: Monitor the server nitty-gritty details:
Remote Server Monitoring using JConsole:
- Update the setDomainEnv.cmd with the below parameters in the JAVA_OPTIONS and restart the Weblogic Server
For non- authenticated user and non – ssl mechanism:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9001
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
For authenticated SSL mechanism:
-Dcom.sun.management.jmxremote.ssl=true
-Dcom.sun.management.jmxremote.password.file=jmxremote.password
-Djavax.net.ssl.keyStore=/home/user/.keystore
-Djavax.net.ssl.keyStorePassword=myKeyStorePassword
-Dcom.sun.management.jmxremote.ssl.need.client.auth=true
-Djavax.net.ssl.trustStore=/home/user/.truststore
-Djavax.net.ssl.trustStorePassword=myTrustStorePassword
-Dcom.sun.management.jmxremote.registry.ssl=true
2. Set the classpath and start JConsole
jconsole -Djava.class.path=$JAVA_HOME/lib/jconsole.jar:$JAVA_HOME/lib/tools.jar:</code> <code>$WLS_HOME/server/lib/wlfulclient.jar -Djmx.remote.protocol.provider.pkgs=weblogic.management.remote -debug
3. Connect using hostname and port
You will have access to all the details of the remote JVM
For accessing only the MBeans:
If you want to connect only to the JMX MBeans follow the below steps:
1. Login into the Weblogic Admin Console and navigate to the server that needs to be monitored, set the username / password for the IIOP protocols.
Note: Restart the designated server
2. Set the classpath and start JConsole.
jconsole -Djava.class.path=$JAVA_HOME/lib/jconsole.jar:$JAVA_HOME/lib/tools.jar: $WLS_HOME/server/lib/wlfulclient.jar -Djmx.remote.protocol.provider.pkgs=weblogic.management.remote -debug
3. Connect to the server Mbeans using the service URL as below:
service:jmx:rmi:///jndi/iiop://<Hostname>:7001/weblogic.management.mbeanservers.domainruntime
Note: You would not see other JVM details but only the domain runtime MBeans
Further reading:
http://docs.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html
http://db.apache.org/derby/docs/10.10/adminguide/radminjmxenablepwdssl.html
https://blogs.oracle.com/WebLogicServer/entry/managing_weblogic_servers_with
Common Exceptions:
1. java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.NameNotFoundException [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
Possible solutions:
Make sure the JMX Service url is correct and the JNDI value is properly mentioned.
2. org.omg.CORBA.NO_PERMISSION: vmcid: 0x0 minor code: 0 completed: No
Possible solutions:
The server failed to authenticate the IIOP client or the server port is not defined properly.
Change the default IIOP username / password for the weblogic server.
Cheers,
Wonders Team.