Remote debugging is possible for the main server and as well for each separate application - at the same time.

In order to start a global server in remote debugging mode it is necessary to run the following start-up files:
- start_debug.cmd
- start_debug.sh

The listening remote debugging port is defined in the following files. You may change the port.

For the cmd file:
SET DEBUG_PARAMS=-agentlib:jdwp=transport=dt_socket,address=12998,server=y,suspend=n

For the sh file:
DEBUG_PARAMS="-agentlib:jdwp=transport=dt_socket,address=12998,server=y,suspend=n"

However, to be able to perform remote debugging for a specific application, it is necessary to set listening parameters for that application in the JLupinGlobalMultiProcessConfigurationImpl configuration file.

The following is an example of remote debugging settings for "firstSampleApplication" - methods:
setPrimaryJvmOptions
setSecondaryJvmOptions

jLupinFirstSampleApplication.setPrimaryJvmOptions("-Xms128M -Xmx256M -agentlib:jdwp=transport=dt_socket,address=10998,server=y,suspend=n");
jLupinFirstSampleApplication.setSecondaryJvmOptions("-Xms128M -Xmx256M -agentlib:jdwp=transport=dt_socket,address=11998,server=y,suspend=n");

The following shows the whole configuration:

@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("-Xms128M -Xmx256M -agentlib:jdwp=transport=dt_socket,address=10998,server=y,suspend=n");

     jLupinFirstSampleApplication.setSecondaryJvmOptions("-Xms128M -Xmx256M -agentlib:jdwp=transport=dt_socket,address=11998,server=y,suspend=n");

     jLupinFirstSampleApplication.setConfigurationClassFileName("JLupinFirstSampleApplicationConfigurationImpl.java");

     JLupinLocalServerProcessConfigurator jLupinSecondSampleApplication = new JLupinLocalServerProcessConfigurator();
     jLupinSecondSampleApplication.setLocalServerName("localhost");
     jLupinSecondSampleApplication.setPrimaryPort(20078);
     jLupinSecondSampleApplication.setSecondaryPort(20079);
     jLupinSecondSampleApplication.setPrimaryCommandPort(21078);
     jLupinSecondSampleApplication.setSecondaryCommandPort(21079);
     jLupinSecondSampleApplication.setConnectionSocketTimeout(30000);
     jLupinSecondSampleApplication.setWaitForProcessStartResponseTime(45000);
     jLupinSecondSampleApplication.setWaitForProcessDestroyResponseTime(10000);
     jLupinSecondSampleApplication.setPrimaryJvmOptions("-Xms128M -Xmx256M");
     jLupinSecondSampleApplication.setSecondaryJvmOptions("-Xms128M -Xmx256M");
     jLupinSecondSampleApplication.setConfigurationClassFileName("JLupinSecondSampleApplicationConfigurationImpl.java");

     JLupinDefaultNewMultiProcessManagerImpl jLupinDefaultMultiProcessManagerImpl = new JLupinDefaultNewMultiProcessManagerImpl();

     jLupinDefaultMultiProcessManagerImpl.addApplicationConfiguration("firstSampleApplication", jLupinFirstSampleApplication);

     jLupinDefaultMultiProcessManagerImpl.addApplicationConfiguration("secondSampleApplication",jLupinSecondSampleApplication);

     return jLupinDefaultMultiProcessManagerImpl;
    }