At the time being, JMX platform mechanisms are recommended for monitoring JLupin Next Server. The following are recommended articles describing JMX technology:

http://en.wikipedia.org/wiki/Java_Management_Extensions

http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html

http://docs.oracle.com/javase/tutorial/jmx/

Monitoring should be included in each application that is operating a system's independent JVM processes. This monitoring is based on JMX and can be activated through a standard JVM start parameter in the server's global file - JLupinGlobalMultiProcessConfigurationImpl.java (method: getJLupinMultiProcessManager, variables: primaryJvmOptions and secondaryJvmOptions).

The example JMX settings for microservice:

-Djava.io.tmpdir=/app/jlns/server/temp/firstApp -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12324 -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

The example server's global file with JMX settings:

@Override
public JLupinMultiProcessManager getJLupinMultiProcessManager() {

     JLupinLocalServerProcessConfigurator jLupinFirstSampleApplication = new
                                          JLupinLocalServerProcessConfigurator();
     jLupinFirstSampleApplication.setLocalServerName("localhost");
     jLupinFirstSampleApplication.setPrimaryPort(18088);
     jLupinFirstSampleApplication.setSecondaryPort(18089);
     jLupinFirstSampleApplication.setPrimaryCommandPort(19088);
     jLupinFirstSampleApplication.setSecondaryCommandPort(19099);
     jLupinFirstSampleApplication.setConnectionSocketTimeout(30000);
     jLupinFirstSampleApplication.setStartLogMode("DEBUG");
     jLupinFirstSampleApplication.setWaitForProcessStartResponseTime(65000);
     jLupinFirstSampleApplication.setWaitForProcessDestroyResponseTime(10000);

     jLupinFirstSampleApplication.setPrimaryJvmOptions("-Xms1024M -Xmx4024M -XX:MaxPermSize=1024M
     -Djava.io.tmpdir=/app/jlns/server/temp/firstApp -Dcom.sun.management.jmxremote        
     -Dcom.sun.management.jmxremote.port=12324 -Dcom.sun.management.jmxremote.authenticate=false 
     -Dcom.sun.management.jmxremote.ssl=false");

    jLupinFirstSampleApplication.setSecondaryJvmOptions("-Xms1024M -Xmx4024M -XX:MaxPermSize=1024M 
    -Djava.io.tmpdir=/app/jlns/server/temp/firstApp -Dcom.sun.management.jmxremote 
    -Dcom.sun.management.jmxremote.port=12325
    -Dcom.sun.management.jmxremote.authenticate=false 
    -Dcom.sun.management.jmxremote.ssl=false");

    jLupinFirstSampleApplication.setConfigurationClassFileName(
                                 "JLupinFirstSampleApplicationConfigurationImpl.java");

Note the different listening jmxremote.port ports for the primaryJvmOptions and secondaryJvmOptions variables - it has a meaning for the application's restart procedure to avoid any type of error, for example: address already in use.