Table of Contents


What is JMX

"Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices (such as printers) and service-oriented networks. Those resources are represented by objects called MBeans (for Managed Bean)." from Wikipedia page Java Management Extensions.

JMX can be used for in-depth Java monitoring (memory usage, garbage collection, number of instantiated objects, etc.). In Graphlytic, the JMX can be also used to stop running ETL Jobs.

Remote JMX connection to Graphlytic

JMX connection is by default enabled in Graphlytic (Graphlytic 3.1.0+).

Configuration

By default, JMX is running as a remote process at localhost:1099 without authentication.

To change the host or port please locale the "localhost" or "1099" values in the configuration files and change them to desired values. Please note that every value is in the file in 2 places and both needs to be changed.


The configured files are:

  • graphlytic.bat (Windows)
  • graphlyticc / graphlyticd (Linux)


The configuration looks like this:

Windows
SET "JMX=-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.host=0.0.0.0 -Dcom.sun.management.jmxremote.rmi.port=1099 -Djava.rmi.server.hostname=0.0.0.0"
Linux
JMX="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.host=0.0.0.0 -Dcom.sun.management.jmxremote.rmi.port=1099 -Djava.rmi.server.hostname=0.0.0.0"

Using JConsole to stop ETL jobs

JConsole is a Java application packaged with every Java JDK, located in <JDK_HOME>/lib/jconsole.jar 

After starting of the JConsole please enter a Remote Process connection "localhost:1099" without any Username or Password and hit "Connect".

jconsole.png

This will start a JMX connection that will show a lot of usefull informations about the running Graphlytic instance.


To stop a running ETL Job please follow these steps:

  1. go to the "MBeans" tab
  2. locate the "scriptella/etl" folder
  3. locate the script that you want to stop (only running scripts are shown)
  4. open the "Operations" menu of that script
  5. click on the "cancel" operation

After succesfull stopping operation invocation a confirmation message is shown:

The script will be stopped as soon as possible (not immediatelly but after competion of the currently running subtask).