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+).
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:
graphlyticc / graphlyticd (Linux)
The configuration looks like this:
"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"
"-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".
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:
go to the "MBeans" tab
locate the "scriptella/etl" folder
locate the script that you want to stop (only running scripts are shown)
open the "Operations" menu of that script
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).