X

Best Practices from Oracle Development's A‑Team

Coherence Monitoring Management in Oracle Enterprise Manager 12c – Part 1

Coherence monitoring can be challenging depending on the number of nodes and hosts. Users use Jconsole for getting a view of their Coherence applications. This is done by creating a JMX node that joins the cluster and thereby enabling monitoring. This is good to get current view. However if you are looking for metrics history as well as alerting capabilities, Jconsole does not provide it. Enterprise Manager provides this functionality. For best results, upgrade to the latest version of OEM (12cR2 at the time of writing this blog).

Steps for getting Coherence cluster management from OEM:

1) Install OEM. Refer to http://docs.oracle.com/cd/E24628_01/install.121/e22624/toc.htm

2) Deploy OEM agent to the host where you plan to start the Coherence JMX node. Once the agent is deployed you then need to deploy Fusion Middleware Plugin.

Once the plugin is deployed you can locate the jars needed for coherence management

EM Coherence Jars

/home/oracle/omsagent is the agent home in the above instance

3)  Setup JMX node

Following JARs MUST be added to the classpath of the JMX node

<OEM_Agent_Home>/plugins/oracle.sysman.emas.agent.plugin_12.1.0.3.0/archives/coherence/coherenceEMIntg.jar

<OEM_Agent_Home>/plugins/oracle.sysman.emas.agent.plugin_12.1.0.3.0/archives/coherence/bulkoperationsmbean.jar

Unlike the regular JMX coherence node you need to use oracle.sysman.integration.coherence.EMIntegrationServer class which is part of the plugin to start the JMX node for OEM.

Following mandatory parameters  must be added to Java system properties for the JMX node.

-Dtangosol.coherence.management.remote=true (enables remote monitoring)

-Dtangosol.coherence.management=all (enables monitoring for all nodes)

-Dcom.sun.management.jmxremote.port=<TCP port> (required for remote connection)

-Dtangosol.coherence.member=<Unique member name across the cluster> (required for target name)

-Dtangosol.coherence.machine=<Host name> (required to correlate with the Host target, use the same string as shown on the respective Host target name)

-Doracle.coherence.machine=<Host name> (required to correlate with the Host target, use the same string as shown on the respective Host target name)

-Dtangosol.coherence.distributed.localstorage=false disables caching to make sure node is a dedicated monitoring node)

-Xms2g -Xmx2g (the JMX node must have adequate resources, depending on your cluster size you may have to increase the size)

-Dtangosol.coherence.management.refresh.expiry=1m (makes sure the monitoring data is refreshed every one minute. If this is not set then the refresh is done every 1 second which is too heavy on the JVM and monitoring is adversely affected)

A process grep on the JMX node will look similar to the below

/home/oracle/software/jdk1.6.0_37/bin/java -Xms2g -Xmx2g -Dtangosol.coherence.cacheconfig=coherence-cache-config.xml -Dtangosol.coherence.distributed.localstorage=false -Dtangosol.coherence.override=coefmw-tangosol-coherence-override.xml -Dtangosol.pof.config=pof-config.xml -Dtangosol.coherence.management=all -Dtangosol.coherence.management.remote=true -Dtangosol.coherence.management.refresh.expiry=1m -Dtangosol.coherence.management.remote.registryport=9192 -Dtangosol.coherence.management.remote.connectionport=9193 -Dtangosol.coherence.management.remote.host=HOSTNAME -Dtangosol.coherence.member=jmx1-HOSTNAME -Dtangosol.coherence.machine=HOSTNAME.us.oracle.com -Dtangosol.coherence.site=Linlithgow -Dtangosol.coherence.rack=OscOvm -Dtangosol.coherence.role=jmx -Dtangosol.coherence.listenaddr=HOSTNAME -Dtangosol.coherence.listenport=9190 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9194  -Doracle.coherence.machine=HOSTNAME.us.oracle.com  oracle.sysman.integration.coherence.EMIntegrationServer

 

  1.  4. Modify the start scripts for all the nodes.

Add the following mandatory parameters to the Java system properties for the nodes OEM identifies node.

-Dtangosol.coherence.management.remote=true

-Dtangosol.coherence.member=<unique member name in the cluster>

-Dtangosol.coherence.cluster=<cluster name>

-Dtangosol.coherence.machine=<Host name> (required to correlate with the Host target, use the same string as shown on the respective Host target name)

-Doracle.coherence.machine=<Host name> (required to correlate with the Host target, use the same string as shown on the respective Host target name)

Process grep on the process should look similar to the following

java -Xms4g -Xmx4g -Dtangosol.coherence.cacheconfig=HOSTNAME-proxy-cache-config.xml -Dtangosol.coherence.distributed.localstorage=false -Dtangosol.coherence.override=HOSTNAME-tangosol-coherence-override.xml -Dtangosol.pof.config=pof-config.xml -Dtangosol.coherence.member=proxy1-HOSTNAME20 -Dtangosol.coherence.machine=HOSTNAME20.us.oracle.com -Dtangosol.coherence.site=Denver -Dtangosol.coherence.rack=Dev -Dtangosol.coherence.role=proxy -Dtangosol.coherence.listenaddr=HOSTNAME20 -Dtangosol.coherence.listenport=9170 -Dtangosol.coherence.proxyaddr=HOSTNAME20 -Dtangosol.coherence.proxyport=9180 -Doracle.coherence.jamjvmid=Data-Grid/proxy1-HOSTNAME20 -Doracle.coherence.machine=HOSTNAME20.us.oracle.com com.tangosol.net.DefaultCacheServer

You can do a quick validation by connecting through Jconsole

JConsole

JConsole Tree view

 

5. Go to OEM console and do the discovery of the cluster

Add Coherence target

Discover Coherence Cluster

 

Confirmation Page

Target Details

Complete the registration. Give about a minute for the cluster to be discovered and status getting reported. Now navigate to the Coherence cluster and list all the members

Member display

Cluster view

This completes the discovery of Coherence targets on OEM.

 

More details on metrics, alerts, configuration etc.. will follow in part 2.

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha

Recent Content