15 Coherence Integration with JVM Diagnostics
This chapter describes the JVM Diagnostics integration with Coherence. It contains the following sections:
Overview
JVM Diagnostics provides deep visibility into the runtime of the JVM. It allows administrators to identify the root cause of performance problems in the production environment without having to reproduce them in the test or development environment. You can view the JVM Diagnostics data if the JVM Diagnostics Manager and JVM Diagnostics Agent have been deployed on the host machine on which the OMS running.
You can also use JVM Diagnostics to diagnose performance issues in Oracle Coherence cluster nodes. You can drill down to a Coherence node's JVM to identify the method or thread that is causing a delay. This feature allows you to trace live threads, identify resource contention related to locks, and trace the Java session to the database. To diagnose performance issue in a Coherence node, you must configure the node so that it can be monitored by JVM Diagnostics.
Note:
JVM Diagnostics is a part of the WLS Management Pack EE Management Pack.
Configuring Coherence Nodes for JVM Diagnostics Integration
To setup JVM Diagnostics on each Coherence node, you
must download the JVM Diagnostics Agent. To download the JVM Diagnostics Agent,
follow the steps listed in the Enterprise Manager Administrator's Guide. When the JVM
Diagnostics is downloaded, the jamagent.war
file is downloaded. You
must to copy the .war
file to all machines on which the Coherence
nodes are to be integrated with JVM Diagnostics, and add it to the class path.
Additionally, you must add the Doracle.coherence.jamjvmid
system
property. The value of this property must match the value specified for
jamjvmid
. For more details on setting up the
jamjvmid
property, see the Enterprise
Manager Administrator's Guide.
Example Start Script for Coherence Management Node
An example start script is given below.
#!/bin/sh CP=$CP:<Path to jamagent.war>:<EM CC_Agent_Home>/plugins/oracle.sysman.emas.agent.plugin_ 12.1.0.6.0/archives/coherence/coherenceEMIntg.jar: <EM CC_Agent_Home>/plugins/oracle.sysman.emas.agent.plugin_ 12.1.0.6.0/archives/coherence/bulkoperationsmbean.jar COH_OPTS="$COH_OPTS -cp $CP" JVM_ID=<coherence_cluster_name/node_member_name> JAM_TARGET="jamagent.jamrun" JAM_ARGS="" JAM_ARGS="$JAM_ARGS jamconshost=<oms_host>" JAM_ARGS="$JAM_ARGS jamconsport=<oms_port>" JAM_ARGS="$JAM_ARGS jamjvmid=$JVM_ID" JAM_ARGS="$JAM_ARGS jampool=<coherence_cluster_name>" $JAVA_HOME/bin/java $COH_OPTS -Dtangosol.coherence.management.extendedmbeanname=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dtangosol.coherence.management=all -Dtangosol.coherence.member=<unique member name> -Doracle.coherence.machine=<hostname_as_discovered_in_EM> -Dcom.sun.management.jmxremote.port=<OpenTCP_Port> -Doracle.coherence.home=$COHERENCE_HOME -Dtangosol.coherence.distributed.localstorage=false -Dtangosol.coherence.management.refresh.expiry=1m -Doracle.coherence.jamjvmid=$JVM_ID $JAM_TARGET $JAM_ARGS -server -Xms2048m -Xmx2048m oracle.sysman.integration.coherence.EMIntegrationServer
Example Start Script for All Other Nodes
An example start script for all other nodes is given below.
#!/bin/sh JVM_ID=<coherence_cluster_name/node_member_name> JAM_TARGET="jamagent.jamrun" JAM_ARGS="" JAM_ARGS="$JAM_ARGS jamconshost=<oms_host>" JAM_ARGS="$JAM_ARGS jamconsport=<oms_port>" JAM_ARGS="$JAM_ARGS jamjvmid=$JVM_ID" JAM_ARGS="$JAM_ARGS jampool=<coherence_cluster_name>" COH_OPTS="$COH_OPTS -cp $CP" $JAVA_HOME/bin/java $COH_OPTS -Dtangosol.coherence.management.extendedmbeanname=true -Dtangosol.coherence.management.remote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Doracle.coherence.home=<coherence home> -Dtangosol.coherence.member=<unique member name> -Doracle.coherence.machine=<hostname_as_discovered_in_EM> -Doracle.coherence.jamjvmid=$JVM_ID $JAM_TARGET $JAM_ARGS com.tangosol.net.DefaultCacheServer
Accessing JVM Diagnostics from Coherence Targets
If the Coherence nodes have been correctly configured for JVM Diagnostics, menu items for JVM Diagnostics will be available from each of the Oracle Coherence Node, Oracle Coherence Cache and Oracle Coherence Cluster targets.
Including the JVM Diagnostics Regions in the Coherence Target Home Pages
If the Coherence cluster nodes have been configured with JVM Diagnostics, the JVM Diagnostics regions can be included in the Coherence cluster and node Home pages. For more information about adding these regions, see Personalization.