HTTP Information API

JLupin Next Server by default is configured to expose API for integration with server with tools that cannot use Java code (or if user don't want to). Information are exposed by HTTP protocol and data format is JSON. Most tools can be integrated this way. Below full API specification is presented.

healthcheck

Checks if microservice is available on queried port by queried protocol.

URL

GET /healthcheck/[keyType]/[keyValue]/[protocol]/[port]

Parameters description

Parameter name Description
keyType One of: context, microservice. When value is set to context keyValue parameter should be the context name. When value is set to microservice keyValue parameter should be the microservice name.
keyValue When value of keyName is set to context keyValue parameter should be the context name. When value of keyName is set to microservice keyValue parameter should be the microservice name.
protocol One of: http, jlrmc. Name of protocol by which microservice should be available.
port Port on which server should be available and serving content with protocol selected by protocol parameter.

Result

When request is correct apropriate response status code is returned: 200 OK when service is serving data on queried port by queried protocl and 503 SERVICE UNAVAILABLE when not. Response body is empty for this request.

Example response body

Empty.

redirect

Returns redirect to microservice address.

URL

GET /redirect/[keyType]/[keyValue]

Parameters description

Parameter name Description
keyType One of: context, microservice. When value is set to context keyValue parameter should be the context name. When value is set to microservice keyValue parameter should be the microservice name.
keyValue When value of keyName is set to context keyValue parameter should be the context name. When value of keyName is set to microservice keyValue parameter should be the microservice name.

Result

When request is correct 302 FOUND is returend with microservice URL address as a Location header value (standard temporary redirect response) with empty body.

Example response body

Empty.

availableMicroservices

Returns list of available microservices.

URL

GET /availableMicroservices

Parameters description

No parameters.

Result

Returns array of strings with available microservices' names.

Example response body

["nativeMicroservice", "servletMicroservice"]

runningMicroservices

Returns list of running microservices.

URL

GET /runningMicroservices

Parameters description

No parameters.

Result

Returns array of strings with running microservices' names.

Example response body

["nativeMicroservice", "servletMicroservice"]

listMicroservices

Returns list with details about deployed microservices.

URL

GET /listMicroservices

Parameters description

No parameters.

Result

Returns array of objects which are describing deployed microservices. Object keys are shown in response body example.

Example response body

[
  {
    "name": "nativeMicroservice",
    "secondaryPort": 20001,
    "primaryPort": 20000,
    "type": "NATIVE",
    "properties": {},
    "url": {
      "healthcheckPrimaryPort": "/healthcheck/microservice/nativeMicroservice/jlrmc/20000",
      "healthcheckSecondaryPort": "/healthcheck/microservice/nativeMicroservice/jlrmc/20001"
    }
  },
  {
    "name": "servletMicroservice",
    "secondaryPort": 20007,
    "primaryPort": 20006,
    "type": "SERVLET",
    "properties": {
      "contextName": "/sampleServlet"
    },
    "url": {
      "redirect": "/redirect/microservice/servletMicroservice",
      "healthcheckPrimaryPort": "/healthcheck/microservice/servletMicroservice/http/20006",
      "healthcheckSecondaryPort": "/healthcheck/microservice/servletMicroservice/http/20007"
    }
  }
]

Get /getLocalMicroservicesInformation

Returns list with information about local microservices.

URL

GET /getLocalMicroservicesInformation

Parameters description

No parameters.

Result

Returns array of objects which are describing local microservices' information. Object keys are shown in response body example.

Example response body

[
  {
    "activeSessions": 0,
    "isAvailable": true,
    "jLupinCommonMicroserviceType": "SERVLET",
    "jlrmcActiveThreads": null,
    "jlrmcMaxThreads": null,
    "jvmFreeMemory": 139161232,
    "jvmMaxMemory": 239075328,
    "jvmProcessCpuLoad": 0.2,
    "jvmTotalMemory": 200802304,
    "name": "servletMicroservice",
    "queueActiveThreads": null,
    "queueMaxThreads": null,
    "servletActiveThreads": 0,
    "servletMaxThreads": 128,
    "userAvailableFlag": true
  },
  {
    "activeSessions": null,
    "isAvailable": true,
    "jLupinCommonMicroserviceType": "NATIVE",
    "jlrmcActiveThreads": 0,
    "jlrmcMaxThreads": 128,
    "jvmFreeMemory": 144319088,
    "jvmMaxMemory": 239075328,
    "jvmProcessCpuLoad": 0.1,
    "jvmTotalMemory": 202899456,
    "name": "nativeMicroservice",
    "queueActiveThreads": 0,
    "queueMaxThreads": 128,
    "servletActiveThreads": null,
    "servletMaxThreads": null,
    "userAvailableFlag": true
  }
]

getMainServerInformation

Returns Main Server's information.

URL

GET /getMainServerInformation

Parameters description

No parameters.

Result

Returns object which is describing Main Server's information. Object keys are shown in response body example.

Example response body

{
  "elasticActiveThreads": 0,
  "elasticMaxThreads": 128,
  "jlrmcActiveThreads": 0,
  "jlrmcMaxThreads": 128,
  "jvmFreeMemory": 124954232,
  "jvmMaxMemory": 239075328,
  "jvmProcessCpuLoad": 0,
  "jvmTotalMemory": 189792256,
  "name": "NODE_1",
  "queueActiveThreads": 0,
  "queueMaxThreads": 128
}

getMicroserviceLoadBalancersServiceRepository

Returns map with load balancers' names as keys and connection details list per microservice.

URL

GET /getMicroserviceLoadBalancersServiceRepository/[keyType]/[keyValue]

Parameters description

Parameter name Description
keyType One of: context, microservice. When value is set to context keyValue parameter should be the context name. When value is set to microservice keyValue parameter should be the microservice name.
keyValue When value of keyName is set to context keyValue parameter should be the context name. When value of keyName is set to microservice keyValue parameter should be the microservice name.

Result

Returns map with load balancers' names as keys and connection details list per microservice. Object keys are shown in response body example.

Example response body

{
  "LOAD_BALANCER_NO:1": {
    "nativeMicroservice": [
      {
        "isReuseAddress": false,
        "isTcpNoDelay": false,
        "queuePort": 9095,
        "address": "127.0.0.1",
        "isOOBInline": false,
        "transmissionPort": 9096,
        "sendBufferSize": 0,
        "informationPort": 9097,
        "jlrmcPort": 9090,
        "receiveBufferSize": 0,
        "checkAvailableScript": null,
        "isKeepAlive": false,
        "readTimeoutInMilliseconds": 300000,
        "soLinger": 0,
        "connectionTimeoutInMilliseconds": 2000,
        "trafficClass": 0
      }
    ],
    "servletMicroservice": [
      {
        "isReuseAddress": false,
        "isTcpNoDelay": false,
        "queuePort": 9095,
        "address": "127.0.0.1",
        "isOOBInline": false,
        "transmissionPort": 9096,
        "sendBufferSize": 0,
        "informationPort": 9097,
        "jlrmcPort": 9090,
        "receiveBufferSize": 0,
        "checkAvailableScript": null,
        "isKeepAlive": false,
        "readTimeoutInMilliseconds": 300000,
        "soLinger": 0,
        "connectionTimeoutInMilliseconds": 2000,
        "trafficClass": 0
      }
    ]
  }
}

getMicroserviceRemotelyServicesNames

Returns list of remote services' names.

URL

GET /getMicroserviceRemotelyServicesNames/[keyType]/[keyValue]

Parameters description

Parameter name Description
keyType One of: context, microservice. When value is set to context keyValue parameter should be the context name. When value is set to microservice keyValue parameter should be the microservice name.
keyValue When value of keyName is set to context keyValue parameter should be the context name. When value of keyName is set to microservice keyValue parameter should be the microservice name.

Result

Returns array of strings with remote services' names.

Example response body

["sampleFirstService", "sampleSecondService"]

getOSProcessAsMicroserviceRuntimeDetails

Returns microservice's runtime details.

URL

GET /getOSProcessAsMicroserviceRuntimeDetails/[keyType]/[keyValue]

Parameters description

Parameter name Description
keyType One of: context, microservice. When value is set to context keyValue parameter should be the context name. When value is set to microservice keyValue parameter should be the microservice name.
keyValue When value of keyName is set to context keyValue parameter should be the context name. When value of keyName is set to microservice keyValue parameter should be the microservice name.

Result

Returns object which is describing microservice's runtime details. Object keys are shown in response body example.

Example response body

{
  "isPrimaryPort": true,
  "localServerName": "localhost",
  "processId": "29006",
  "queuePort": 20014,
  "servicePort": 20012,
  "transmissionPort": 20016,
  "waitForProcessDestroyResponseTime": 30000,
  "waitForProcessStartResponseTime": 90000
}

getSystemCpuLoad

Returns current system CPU load.

URL

GET /getSystemCpuLoad

Parameters description

No parameters.

Result

Returns number (double) which is current operating system CPU load in percent.

Example response body

10.6

getSystemFreeMemory

Returns current system free memory.

URL

GET /getSystemFreeMemory

Parameters description

No parameters.

Result

Returns number (integer) which is current operating system free memory in megabytes.

Example response body

5630316544

getEventLog

Return event log.

URL

GET /getEventLog

Parameters description

No parameters.

Result

Returns map where keys are events' ids and values are objects describing event. Object keys are shown in response body example.

Example response body

{
  "5851547797701": {
    "message": "technical processes ready to start due to being stopped outside jlupin:[TechnicalProcessInformation{processName='nginx', old pid='9864'}]",
    "logType": "START_TECHNICAL_PROCESSES_STOPPED_OUTSIDE_JLUPIN_BEFORE",
    "nodeName": "NODE_1",
    "nodeIp": "10.8.0.14",
    "putDateTime": "2018-03-01 09:21:09",
    "putTimeInMilliseconds": 1519892469620
  }
}

getAllEnvironmentState

Dumps all environment state.

URL

GET /getAllEnvironmentState

Parameters description

No parameters.

Result

Returns object describing whole environment state. Object keys are shown in response body example.

Example response body

{
  "MAIN_SERVER_AVAILABLE_STATUS_DETAIL": {
    "mainServerStatusDetails": [
      {
        "activeThreads": 0,
        "maxThreads": 128,
        "name": "JLRMC",
        "jlupinCommonEntryPointType": "JLRMC"
      },
      {
        "activeThreads": 0,
        "maxThreads": 128,
        "name": "ELASTIC_HTTP",
        "jlupinCommonEntryPointType": "ELASTIC_HTTP"
      },
      {
        "activeThreads": 0,
        "maxThreads": 128,
        "name": "QUEUE",
        "jlupinCommonEntryPointType": "QUEUE"
      },
      {
        "activeThreads": 0,
        "maxThreads": 64,
        "name": "TRANSMISSION",
        "jlupinCommonEntryPointType": "TRANSMISSION"
      },
      {
        "activeThreads": 0,
        "maxThreads": 64,
        "name": "INFORMATION",
        "jlupinCommonEntryPointType": "INFORMATION"
      },
      {
        "activeThreads": 0,
        "maxThreads": 64,
        "name": "INFORMATION_HTTP",
        "jlupinCommonEntryPointType": "INFORMATION_HTTP"
      }
    ],
    "jvmMaxMemory": 239075328,
    "jvmTotalMemory": 191889408,
    "jvmFreeMemory": 92977888,
    "jvmProcessCpuLoad": 0.3
  },
  "SYSTEM_CPU_LOAD": 11.9,
  "MAIN_SERVER_PRODUCT_INFORMATION": {
    "name": "JLupin Next Server Enterprise Edition",
    "code": "SELEUCIA",
    "version": "1.4.1.0-RC4-ee",
    "commitNo": "e00e2ce6"
  },
  "NAMES_OF_RUNNING_MICROSERVICES_LIST": [
    "exchange-rates",
    "exchange"
  ],
  "OS_PROCESS_AS_MICROSERVICE_RUNTIME_DETAILS_MAP": {
    "exchange-rates": {
      "localServerName": "localhost",
      "processId": "9193",
      "servicePort": 20000,
      "queuePort": 20002,
      "transmissionPort": 20004,
      "waitForProcessStartResponseTime": 90000,
      "waitForProcessDestroyResponseTime": 30000,
      "running": true,
      "primaryPort": true
    },
    "exchange": {
      "localServerName": "localhost",
      "processId": "9308",
      "servicePort": 20006,
      "queuePort": 0,
      "transmissionPort": 20008,
      "waitForProcessStartResponseTime": 90000,
      "waitForProcessDestroyResponseTime": 30000,
      "running": true,
      "primaryPort": true
    }
  },
  "AVAILABLE_MICROSERVICES_NAMES_LIST": [
    "exchange-rates",
    "exchange"
  ],
  "OS_PROCESS_AS_TECHNICAL_RUNTIME_DETAIL": {
    "nginx": {
      "processId": "9094",
      "running": true
    }
  },
  "MAIN_SERVER_PROCESS_MANAGER_SERVICE_REPOSITORY": {
    "exchange-rates": [
      {
        "address": "localhost",
        "jlrmcPort": 20000,
        "queuePort": 20002,
        "transmissionPort": 20004,
        "informationPort": 0,
        "connectionTimeoutInMilliseconds": 1000,
        "readTimeoutInMilliseconds": 30000,
        "checkAvailableScript": "function isAvailable(checkResponseTimeInMillis, jrmcActiveThreads, jrmcMaxThreads, queueActiveThreads, queueMaxThreads, servletActiveThreads, servletMaxThreads, jvmMaxMemoryInBytes, jvmTotalMemoryInBytes, jvmFreeMemoryInBytes, jvmProcessCpuLoadInPercentage, userAvailableFlag) {\nvar isAvailableByUser = Boolean(userAvailableFlag); if(checkResponseTimeInMillis > 20000 || !isAvailableByUser) { return false; } return true; }",
        "sendBufferSize": 0,
        "receiveBufferSize": 0,
        "soLinger": 0,
        "trafficClass": 0,
        "reuseAddress": false,
        "oobinline": false,
        "tcpNoDelay": false,
        "keepAlive": false
      }
    ],
    "exchange": [
      {
        "address": "localhost",
        "jlrmcPort": 20006,
        "queuePort": 0,
        "transmissionPort": 20008,
        "informationPort": 0,
        "connectionTimeoutInMilliseconds": 1000,
        "readTimeoutInMilliseconds": 30000,
        "checkAvailableScript": "function isAvailable(checkResponseTimeInMillis, jrmcActiveThreads, jrmcMaxThreads, queueActiveThreads, queueMaxThreads, servletActiveThreads, servletMaxThreads, jvmMaxMemoryInBytes, jvmTotalMemoryInBytes, jvmFreeMemoryInBytes, jvmProcessCpuLoadInPercentage, userAvailableFlag) {\nvar isAvailableByUser = Boolean(userAvailableFlag); if(checkResponseTimeInMillis > 20000 || !isAvailableByUser) { return false; } return true; }",
        "sendBufferSize": 0,
        "receiveBufferSize": 0,
        "soLinger": 0,
        "trafficClass": 0,
        "reuseAddress": false,
        "oobinline": false,
        "tcpNoDelay": false,
        "keepAlive": false
      }
    ]
  },
  "OS_MEMORY_MAP": {
    "FREE": 10440175616,
    "TOTAL": 16721670144
  },
  "MICROSERVICES_LOAD_BALANCER_SERVICE_REPOSITORY_MAP": {
    "exchange-rates": {
      "LOAD_BALANCER_NO:1": {
        "exchange-rates": [
          {
            "address": "127.0.0.1",
            "jlrmcPort": 9090,
            "queuePort": 9095,
            "transmissionPort": 9096,
            "informationPort": 9097,
            "connectionTimeoutInMilliseconds": 2000,
            "readTimeoutInMilliseconds": 300000,
            "checkAvailableScript": null,
            "sendBufferSize": 0,
            "receiveBufferSize": 0,
            "soLinger": 0,
            "trafficClass": 0,
            "reuseAddress": false,
            "oobinline": false,
            "tcpNoDelay": false,
            "keepAlive": false
          }
        ],
        "exchange": [
          {
            "address": "127.0.0.1",
            "jlrmcPort": 9090,
            "queuePort": 9095,
            "transmissionPort": 9096,
            "informationPort": 9097,
            "connectionTimeoutInMilliseconds": 2000,
            "readTimeoutInMilliseconds": 300000,
            "checkAvailableScript": null,
            "sendBufferSize": 0,
            "receiveBufferSize": 0,
            "soLinger": 0,
            "trafficClass": 0,
            "reuseAddress": false,
            "oobinline": false,
            "tcpNoDelay": false,
            "keepAlive": false
          }
        ]
      }
    },
    "exchange": {
      "LOAD_BALANCER_NO:1": {
        "exchange-rates": [
          {
            "address": "127.0.0.1",
            "jlrmcPort": 9090,
            "queuePort": 9095,
            "transmissionPort": 9096,
            "informationPort": 9097,
            "connectionTimeoutInMilliseconds": 2000,
            "readTimeoutInMilliseconds": 300000,
            "checkAvailableScript": null,
            "sendBufferSize": 0,
            "receiveBufferSize": 0,
            "soLinger": 0,
            "trafficClass": 0,
            "reuseAddress": false,
            "oobinline": false,
            "tcpNoDelay": false,
            "keepAlive": false
          }
        ],
        "exchange": [
          {
            "address": "127.0.0.1",
            "jlrmcPort": 9090,
            "queuePort": 9095,
            "transmissionPort": 9096,
            "informationPort": 9097,
            "connectionTimeoutInMilliseconds": 2000,
            "readTimeoutInMilliseconds": 300000,
            "checkAvailableScript": null,
            "sendBufferSize": 0,
            "receiveBufferSize": 0,
            "soLinger": 0,
            "trafficClass": 0,
            "reuseAddress": false,
            "oobinline": false,
            "tcpNoDelay": false,
            "keepAlive": false
          }
        ]
      }
    }
  },
  "MICROSERVICE_AVAILABLE_STATUS_DETAIL_LIST": [
    {
      "name": "exchange-rates",
      "jrmcActiveThreads": 0,
      "jrmcMaxThreads": 128,
      "queueActiveThreads": 0,
      "queueMaxThreads": 128,
      "servletActiveThreads": -1,
      "servletMaxThreads": -1,
      "activeSessions": -1,
      "jvmMaxMemory": 126877696,
      "jvmTotalMemory": 126877696,
      "jvmFreeMemory": 40988856,
      "jvmProcessCpuLoad": 0,
      "userAvailableFlag": true,
      "available": true,
      "jlupinCommonMicroserviceType": "NATIVE"
    },
    {
      "name": "exchange",
      "jrmcActiveThreads": -1,
      "jrmcMaxThreads": -1,
      "queueActiveThreads": -1,
      "queueMaxThreads": -1,
      "servletActiveThreads": 0,
      "servletMaxThreads": 10000,
      "activeSessions": 0,
      "jvmMaxMemory": 183500800,
      "jvmTotalMemory": 183500800,
      "jvmFreeMemory": 67090808,
      "jvmProcessCpuLoad": 0,
      "userAvailableFlag": true,
      "available": true,
      "jlupinCommonMicroserviceType": "SERVLET"
    }
  ],
  "JVM_PROCESS_CONFIGURATION_MAP": {
    "exchange-rates": {
      "localServerName": "localhost",
      "primaryPort": 20000,
      "secondaryPort": 20001,
      "primaryQueuePort": 20002,
      "secondaryQueuePort": 20003,
      "primaryTransmissionPort": 20004,
      "secondaryTransmissionPort": 20005
    },
    "exchange": {
      "localServerName": "localhost",
      "primaryPort": 20006,
      "secondaryPort": 20007,
      "primaryQueuePort": 0,
      "secondaryQueuePort": 0,
      "primaryTransmissionPort": 20008,
      "secondaryTransmissionPort": 20009
    }
  },
  "MICROSERVICES_SOURCE_CONFIGURATION_MAP": {
    "exchange-rates": {
      "SERVERS": {
        "JLRMC": {
          "readTimeout": 480000,
          "isWaitForFinishExecuteAllRequests": true,
          "waitToShutdownThreadsOnStop": 60000,
          "backlog": 0,
          "receiveBufferSize": 0,
          "isReuseAddress": false,
          "threadPoolSize": 128,
          "isLogPeriodicOnDebug": true,
          "isDestroyThreadOnTimeout": false,
          "threadExecutingTimeOut": 240000
        },
        "TRANSMISSION": {
          "readTimeout": 480000,
          "isWaitForFinishExecuteAllRequests": false,
          "waitToShutdownThreadsOnStop": 60000,
          "backlog": 0,
          "receiveBufferSize": 0,
          "isReuseAddress": false,
          "threadPoolSize": 8,
          "isLogPeriodicOnDebug": true,
          "isDestroyThreadOnTimeout": false,
          "threadExecutingTimeOut": 3600000
        },
        "QUEUE": {
          "readTimeout": 480000,
          "isWaitForFinishExecuteAllRequests": true,
          "waitToShutdownThreadsOnStop": 60000,
          "backlog": 0,
          "receiveBufferSize": 0,
          "isReuseAddress": false,
          "threadPoolSize": 128,
          "isLogPeriodicOnDebug": true,
          "isDestroyThreadOnTimeout": false,
          "threadExecutingTimeOut": 240000
        }
      },
      "PROPERTIES": {
        "jvmOptions1": "-Xms64M -Xmx128M",
        "switchDelayTime": 0,
        "connectionSocketTimeoutInMillis": 1000,
        "readTimeoutInMillis": 30000,
        "expectedCheckResponseTimeInMillis": 2000,
        "isKeepAlive": false,
        "isOOBInline": false,
        "isTcpNoDelay": false,
        "isReuseAddress": false,
        "sendBufferSize": 0,
        "receiveBufferSize": 0,
        "soLinger": 0,
        "trafficClass": 0,
        "waitForProcessInitResponseTimeInMillis": 90000,
        "waitForProcessStartResponseTimeInMillis": 90000,
        "waitForProcessDestroyResponseTimeInMillis": 30000,
        "isAllFilesToJVMAppClassLoader": false,
        "isArchiveOnStart": false,
        "startLogMode": "INFO",
        "isInitErrorCauseWithNetworkInformation": true,
        "checkAvailableScript": "function isAvailable(checkResponseTimeInMillis, jrmcActiveThreads, jrmcMaxThreads, queueActiveThreads, queueMaxThreads, servletActiveThreads, servletMaxThreads, jvmMaxMemoryInBytes, jvmTotalMemoryInBytes, jvmFreeMemoryInBytes, jvmProcessCpuLoadInPercentage, userAvailableFlag) {\nvar isAvailableByUser = Boolean(userAvailableFlag); if(checkResponseTimeInMillis > 20000 || !isAvailableByUser) { return false; } return true; }"
      },
      "APPLICATION": {
        "applicationContainerProducerClassName": "com.example.currency.converter.configuration.ExchangeRatesJLupinConfiguration"
      },
      "INITIALIZING_LOGGER": {
        "fileExtension": "log",
        "fileSizeInMB": 20,
        "maxFiles": 10
      },
      "MEMORY_ERRORS": {
        "isRestartOnError": true,
        "howManyTimes": 4,
        "percentageGrowth": 15,
        "isHeapDump": true
      }
    },
    "exchange": {
      "SERVERS": {
        "HTTP": {
          "type": "spring_boot",
          "httpPrimaryPort": -1,
          "httpSecondaryPort": -1,
          "waitForFinishExecuteAllRequests": true,
          "waitToShutdownThreadsOnStop": 5000,
          "springBootLoaderClassName": "org.springframework.boot.loader.WarLauncher",
          "contextName": "/exchange"
        },
        "TRANSMISSION": {
          "readTimeout": 480000,
          "isWaitForFinishExecuteAllRequests": false,
          "waitToShutdownThreadsOnStop": 60000,
          "backlog": 0,
          "receiveBufferSize": 0,
          "isReuseAddress": false,
          "threadPoolSize": 8,
          "isLogPeriodicOnDebug": true,
          "isDestroyThreadOnTimeout": false,
          "threadExecutingTimeOut": 3600000
        }
      },
      "PROPERTIES": {
        "jvmOptions1": "-Xms64M -Xmx192M",
        "switchDelayTime": 1000,
        "connectionSocketTimeoutInMillis": 1000,
        "readTimeoutInMillis": 30000,
        "isKeepAlive": false,
        "isOOBInline": false,
        "isTcpNoDelay": false,
        "isReuseAddress": false,
        "sendBufferSize": 0,
        "receiveBufferSize": 0,
        "soLinger": 0,
        "trafficClass": 0,
        "waitForProcessInitResponseTimeInMillis": 90000,
        "waitForProcessStartResponseTimeInMillis": 90000,
        "waitForProcessDestroyResponseTimeInMillis": 30000,
        "isAllFilesToJVMAppClassLoader": true,
        "isStackDumping": true,
        "isArchiveOnStart": false,
        "startLogMode": "INFO",
        "isInitErrorCauseWithNetworkInformation": true,
        "checkAvailableScript": "function isAvailable(checkResponseTimeInMillis, jrmcActiveThreads, jrmcMaxThreads, queueActiveThreads, queueMaxThreads, servletActiveThreads, servletMaxThreads, jvmMaxMemoryInBytes, jvmTotalMemoryInBytes, jvmFreeMemoryInBytes, jvmProcessCpuLoadInPercentage, userAvailableFlag) {\nvar isAvailableByUser = Boolean(userAvailableFlag); if(checkResponseTimeInMillis > 20000 || !isAvailableByUser) { return false; } return true; }"
      },
      "INITIALIZING_LOGGER": {
        "fileExtension": "log",
        "fileSizeInMB": 20,
        "maxFiles": 10
      },
      "MEMORY_ERRORS": {
        "isRestartOnError": true,
        "howManyTimes": 4,
        "percentageGrowth": 15,
        "isHeapDump": true
      }
    }
  },
  "MAIN_SERVER_CONFIGURATION_MAP": {
    "mainServerName": "NODE_1",
    "zoneName": "default",
    "sourceConfigurationMap": {
      "ZONE": {
        "name": "default"
      },
      "MAIN_SERVER": {
        "name": "NODE_1"
      },
      "SERVERS": {
        "JLRMC": {
          "port": 9090,
          "readTimeout": 480000,
          "waitForFinishExecuteAllRequests": true,
          "waitToShutdownThreadsOnStop": 60000,
          "backlog": 0,
          "receiveBufferSize": 0,
          "isReuseAddress": false,
          "threadPoolSize": 128,
          "logPeriodicOnDebug": true,
          "destroyThreadOnTimeout": false,
          "threadExecutingTimeOut": 240000,
          "entryPoint": "JLRMC",
          "SSL": {
            "isSSL": false,
            "isTwoWaySSLAuthentication": false,
            "X.509.Format": {
              "isActive": true,
              "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
              "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
            }
          }
        },
        "ELASTIC_HTTP": {
          "port": 8082,
          "readTimeout": 480000,
          "waitForFinishExecuteAllRequests": true,
          "waitToShutdownThreadsOnStop": 60000,
          "backlog": 0,
          "receiveBufferSize": 0,
          "isReuseAddress": false,
          "threadPoolSize": 128,
          "logPeriodicOnDebug": true,
          "destroyThreadOnTimeout": false,
          "threadExecutingTimeOut": 240000,
          "entryPoint": "ELASTIC_HTTP",
          "SSL": {
            "isSSL": false,
            "isTwoWaySSLAuthentication": false,
            "X.509.Format": {
              "isActive": true,
              "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
              "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
            }
          }
        },
        "QUEUE": {
          "port": 9095,
          "readTimeout": 480000,
          "waitForFinishExecuteAllRequests": true,
          "waitToShutdownThreadsOnStop": 60000,
          "backlog": 0,
          "receiveBufferSize": 0,
          "isReuseAddress": false,
          "threadPoolSize": 128,
          "logPeriodicOnDebug": true,
          "destroyThreadOnTimeout": false,
          "threadExecutingTimeOut": 240000,
          "entryPoint": "QUEUE",
          "SSL": {
            "isSSL": false,
            "isTwoWaySSLAuthentication": false,
            "X.509.Format": {
              "isActive": true,
              "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
              "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
            }
          }
        },
        "TRANSMISSION": {
          "port": 9096,
          "readTimeout": 480000,
          "waitForFinishExecuteAllRequests": false,
          "waitToShutdownThreadsOnStop": 60000,
          "backlog": 0,
          "receiveBufferSize": 0,
          "isReuseAddress": false,
          "threadPoolSize": 64,
          "logPeriodicOnDebug": true,
          "destroyThreadOnTimeout": false,
          "threadExecutingTimeOut": 240000,
          "entryPoint": "TRANSMISSION",
          "SSL": {
            "isSSL": true,
            "isTwoWaySSLAuthentication": true,
            "X.509.Format": {
              "isActive": true,
              "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
              "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
            }
          }
        },
        "INFORMATION": {
          "port": 9097,
          "readTimeout": 480000,
          "waitForFinishExecuteAllRequests": true,
          "waitToShutdownThreadsOnStop": 60000,
          "backlog": 0,
          "receiveBufferSize": 0,
          "isReuseAddress": false,
          "threadPoolSize": 64,
          "logPeriodicOnDebug": true,
          "destroyThreadOnTimeout": false,
          "threadExecutingTimeOut": 240000,
          "entryPoint": "INFORMATION",
          "SSL": {
            "isSSL": false,
            "isTwoWaySSLAuthentication": false,
            "X.509.Format": {
              "isActive": true,
              "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
              "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
            }
          }
        },
        "INFORMATION_HTTP": {
          "port": 9098,
          "readTimeout": 480000,
          "waitForFinishExecuteAllRequests": true,
          "waitToShutdownThreadsOnStop": 60000,
          "backlog": 0,
          "receiveBufferSize": 0,
          "isReuseAddress": false,
          "threadPoolSize": 64,
          "logPeriodicOnDebug": true,
          "destroyThreadOnTimeout": false,
          "threadExecutingTimeOut": 240000,
          "entryPoint": "INFORMATION_HTTP",
          "SSL": {
            "isSSL": false,
            "isTwoWaySSLAuthentication": false,
            "X.509.Format": {
              "isActive": true,
              "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
              "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
            }
          }
        }
      },
      "ENTRY_POINTS": {
        "JLRMC": {
          "isSilentErrorMessageMode": false,
          "isSilentStackTraceMode": false,
          "logPeriodicOnDebug": false,
          "serializeType": "default"
        },
        "ELASTIC_HTTP": {
          "isSilentErrorMessageMode": false,
          "isSilentStackTraceMode": false,
          "keepAliveOverNetProtocolTimeInMillis": 1000,
          "checkKeepAlive": false,
          "logPeriodicOnDebug": false,
          "defaultSequenceName": "jacksonParamArrayJsonInOutSequence",
          "defaultApiId": "ROA",
          "simpleCORSEnabled": true,
          "serializeType": "default"
        },
        "TRANSMISSION": {
          "isSilentErrorMessageMode": false,
          "isSilentStackTraceMode": false,
          "logPeriodicOnDebug": false
        },
        "INFORMATION": {
          "isSilentErrorMessageMode": false,
          "isSilentStackTraceMode": false,
          "logPeriodicOnDebug": false
        },
        "INFORMATION_HTTP": {
          "isSilentErrorMessageMode": false,
          "isSilentStackTraceMode": false,
          "logPeriodicOnDebug": false,
          "keepAliveOverNetProtocolTimeInMillis": 1000,
          "checkKeepAlive": false
        },
        "QUEUE": {
          "logPeriodicOnDebug": false,
          "serializeType": "default",
          "BUSES": {
            "simpleBus": {
              "timeToSwitchQueueInMillis": 2000,
              "threadPoolSizeForTaskList": 16,
              "delay": 0,
              "probeAmount": 2,
              "waitTimeToStopInMillis": 1000,
              "taskListAmount": 2,
              "logLoopOnDebug": false
            },
            "simpleBusWithDelay": {
              "timeToSwitchQueueInMillis": 2000,
              "threadPoolSizeForTaskList": 16,
              "delay": 5000,
              "probeAmount": 2,
              "waitTimeToStopInMillis": 1000,
              "taskListAmount": 2,
              "logLoopOnDebug": false
            }
          }
        }
      },
      "INITIALIZING_LOGGER": {
        "fileName": "main_server_initialize",
        "fileExtension": "log",
        "fileSizeInMB": 10,
        "maxFiles": 10
      },
      "MICROSERVICES_LOCAL_PORT": {
        "offset": 20000
      },
      "PROCESS_MANAGER": {
        "isCheckAvailableOSMemoryOnMicroservicesStart": true,
        "OS_PROCESSES_KEEPER": {
          "isCheckOSProcessAlive": true,
          "howOftenCheckingProcessInMillis": 5000
        },
        "JVM_MEMORY_ERRORS_KEEPER": {
          "isCheckMemoryErrors": true,
          "howOftenCheckingProcessInMillis": 5000
        }
      },
      "TECHNICAL_PROCESS_MANAGER": {
        "isCheckOSProcessAlive": true,
        "howOftenCheckingProcessInMillis": 5000,
        "responseOSTimeToCheckProcessAliveInMillis": 2000
      },
      "EVENT_LOG_MANAGER": {
        "howOftenCheckingExpireTimeInMillis": 20000,
        "logExpireTimeInMillis": 120000,
        "maximumSizeInMegabytes": 5
      },
      "MONITORING_MANAGER": {
        "howOftenRefreshAllEnvironmentStateInMillis": 10000,
        "isJMXEnable": true
      },
      "MICROSERVICES_LOAD_BALANCER_SETTINGS": {
        "singleRequestRepeatsAmount": 3,
        "howOftenCheckingMicroservicesInMillis": 5000,
        "externalHealthCheckPeriod": 5000,
        "EXTERNAL_CONNECTIONS": {
          "connectionSocketTimeoutInMillis": 1000,
          "readTimeoutInMillis": 90000,
          "isKeepAlive": false,
          "isOOBInline": false,
          "isTcpNoDelay": false,
          "isReuseAddress": false,
          "sendBufferSize": 0,
          "receiveBufferSize": 0,
          "soLinger": 0,
          "trafficClass": 0
        }
      },
      "NODE_PEERS": {
        "NODE_1": {
          "ip": "127.0.0.1",
          "jlrmcPort": 9090,
          "queuePort": 9095,
          "transmissionPort": 9096,
          "informationPort": 9097
        }
      }
    },
    "jlupinMainServersInZone": [
      {
        "name": "NODE_1",
        "ip": "127.0.0.1",
        "jlrmcPort": 9090,
        "queuePort": 9095,
        "transmissionPort": 9096,
        "informationPort": 9097
      }
    ],
    "jlupinMainServerProcessManagerConfiguration": {
      "checkAvailableOSMemoryOnMicroservicesStart": true,
      "jlupinProcessManagerOSProcessesKeeperConfiguration": {
        "howOftenCheckingProcessInMillis": 5000,
        "logPath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/process_manager",
        "checkOSProcessAlive": true
      },
      "jlupinProcessManagerJvmMemoryErrorsKeeperConfiguration": {
        "howOftenCheckingProcessInMillis": 5000,
        "path": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/memory_manager/errors",
        "archivePath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/memory_manager/archive",
        "heapDumpPath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/memory_manager/errors",
        "restartLogPath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/memory_manager/restart",
        "checkMemoryErrors": true
      }
    },
    "jlupinMainServerInitializingLoggerConfiguration": {
      "directoryPath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/server/main",
      "fileName": "main_server_initialize",
      "fileExtension": "log",
      "fileSizeInMB": 10,
      "maxFiles": 10
    },
    "jlupinMainServerMonitoringManagerConfiguration": {
      "howOftenRefreshAllEnvironmentStateInMillis": 10000,
      "jmxenable": true
    }
  },
  "MAIN_SERVER_SOURCE_CONFIGURATION_MAP": {
    "ZONE": {
      "name": "default"
    },
    "MAIN_SERVER": {
      "name": "NODE_1"
    },
    "SERVERS": {
      "JLRMC": {
        "port": 9090,
        "readTimeout": 480000,
        "waitForFinishExecuteAllRequests": true,
        "waitToShutdownThreadsOnStop": 60000,
        "backlog": 0,
        "receiveBufferSize": 0,
        "isReuseAddress": false,
        "threadPoolSize": 128,
        "logPeriodicOnDebug": true,
        "destroyThreadOnTimeout": false,
        "threadExecutingTimeOut": 240000,
        "entryPoint": "JLRMC",
        "SSL": {
          "isSSL": false,
          "isTwoWaySSLAuthentication": false,
          "X.509.Format": {
            "isActive": true,
            "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
            "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
          }
        }
      },
      "ELASTIC_HTTP": {
        "port": 8082,
        "readTimeout": 480000,
        "waitForFinishExecuteAllRequests": true,
        "waitToShutdownThreadsOnStop": 60000,
        "backlog": 0,
        "receiveBufferSize": 0,
        "isReuseAddress": false,
        "threadPoolSize": 128,
        "logPeriodicOnDebug": true,
        "destroyThreadOnTimeout": false,
        "threadExecutingTimeOut": 240000,
        "entryPoint": "ELASTIC_HTTP",
        "SSL": {
          "isSSL": false,
          "isTwoWaySSLAuthentication": false,
          "X.509.Format": {
            "isActive": true,
            "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
            "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
          }
        }
      },
      "QUEUE": {
        "port": 9095,
        "readTimeout": 480000,
        "waitForFinishExecuteAllRequests": true,
        "waitToShutdownThreadsOnStop": 60000,
        "backlog": 0,
        "receiveBufferSize": 0,
        "isReuseAddress": false,
        "threadPoolSize": 128,
        "logPeriodicOnDebug": true,
        "destroyThreadOnTimeout": false,
        "threadExecutingTimeOut": 240000,
        "entryPoint": "QUEUE",
        "SSL": {
          "isSSL": false,
          "isTwoWaySSLAuthentication": false,
          "X.509.Format": {
            "isActive": true,
            "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
            "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
          }
        }
      },
      "TRANSMISSION": {
        "port": 9096,
        "readTimeout": 480000,
        "waitForFinishExecuteAllRequests": false,
        "waitToShutdownThreadsOnStop": 60000,
        "backlog": 0,
        "receiveBufferSize": 0,
        "isReuseAddress": false,
        "threadPoolSize": 64,
        "logPeriodicOnDebug": true,
        "destroyThreadOnTimeout": false,
        "threadExecutingTimeOut": 240000,
        "entryPoint": "TRANSMISSION",
        "SSL": {
          "isSSL": true,
          "isTwoWaySSLAuthentication": true,
          "X.509.Format": {
            "isActive": true,
            "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
            "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
          }
        }
      },
      "INFORMATION": {
        "port": 9097,
        "readTimeout": 480000,
        "waitForFinishExecuteAllRequests": true,
        "waitToShutdownThreadsOnStop": 60000,
        "backlog": 0,
        "receiveBufferSize": 0,
        "isReuseAddress": false,
        "threadPoolSize": 64,
        "logPeriodicOnDebug": true,
        "destroyThreadOnTimeout": false,
        "threadExecutingTimeOut": 240000,
        "entryPoint": "INFORMATION",
        "SSL": {
          "isSSL": false,
          "isTwoWaySSLAuthentication": false,
          "X.509.Format": {
            "isActive": true,
            "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
            "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
          }
        }
      },
      "INFORMATION_HTTP": {
        "port": 9098,
        "readTimeout": 480000,
        "waitForFinishExecuteAllRequests": true,
        "waitToShutdownThreadsOnStop": 60000,
        "backlog": 0,
        "receiveBufferSize": 0,
        "isReuseAddress": false,
        "threadPoolSize": 64,
        "logPeriodicOnDebug": true,
        "destroyThreadOnTimeout": false,
        "threadExecutingTimeOut": 240000,
        "entryPoint": "INFORMATION_HTTP",
        "SSL": {
          "isSSL": false,
          "isTwoWaySSLAuthentication": false,
          "X.509.Format": {
            "isActive": true,
            "serverX509CertificateWithRSAPublicKeyFileName": "serverX509Certificate.crt",
            "serverPKCS8EncodedWithRSAPrivateKeyFileName": "serverPrivateKey.pk"
          }
        }
      }
    },
    "ENTRY_POINTS": {
      "JLRMC": {
        "isSilentErrorMessageMode": false,
        "isSilentStackTraceMode": false,
        "logPeriodicOnDebug": false,
        "serializeType": "default"
      },
      "ELASTIC_HTTP": {
        "isSilentErrorMessageMode": false,
        "isSilentStackTraceMode": false,
        "keepAliveOverNetProtocolTimeInMillis": 1000,
        "checkKeepAlive": false,
        "logPeriodicOnDebug": false,
        "defaultSequenceName": "jacksonParamArrayJsonInOutSequence",
        "defaultApiId": "ROA",
        "simpleCORSEnabled": true,
        "serializeType": "default"
      },
      "TRANSMISSION": {
        "isSilentErrorMessageMode": false,
        "isSilentStackTraceMode": false,
        "logPeriodicOnDebug": false
      },
      "INFORMATION": {
        "isSilentErrorMessageMode": false,
        "isSilentStackTraceMode": false,
        "logPeriodicOnDebug": false
      },
      "INFORMATION_HTTP": {
        "isSilentErrorMessageMode": false,
        "isSilentStackTraceMode": false,
        "logPeriodicOnDebug": false,
        "keepAliveOverNetProtocolTimeInMillis": 1000,
        "checkKeepAlive": false
      },
      "QUEUE": {
        "logPeriodicOnDebug": false,
        "serializeType": "default",
        "BUSES": {
          "simpleBus": {
            "timeToSwitchQueueInMillis": 2000,
            "threadPoolSizeForTaskList": 16,
            "delay": 0,
            "probeAmount": 2,
            "waitTimeToStopInMillis": 1000,
            "taskListAmount": 2,
            "logLoopOnDebug": false
          },
          "simpleBusWithDelay": {
            "timeToSwitchQueueInMillis": 2000,
            "threadPoolSizeForTaskList": 16,
            "delay": 5000,
            "probeAmount": 2,
            "waitTimeToStopInMillis": 1000,
            "taskListAmount": 2,
            "logLoopOnDebug": false
          }
        }
      }
    },
    "INITIALIZING_LOGGER": {
      "fileName": "main_server_initialize",
      "fileExtension": "log",
      "fileSizeInMB": 10,
      "maxFiles": 10
    },
    "MICROSERVICES_LOCAL_PORT": {
      "offset": 20000
    },
    "PROCESS_MANAGER": {
      "isCheckAvailableOSMemoryOnMicroservicesStart": true,
      "OS_PROCESSES_KEEPER": {
        "isCheckOSProcessAlive": true,
        "howOftenCheckingProcessInMillis": 5000
      },
      "JVM_MEMORY_ERRORS_KEEPER": {
        "isCheckMemoryErrors": true,
        "howOftenCheckingProcessInMillis": 5000
      }
    },
    "TECHNICAL_PROCESS_MANAGER": {
      "isCheckOSProcessAlive": true,
      "howOftenCheckingProcessInMillis": 5000,
      "responseOSTimeToCheckProcessAliveInMillis": 2000
    },
    "EVENT_LOG_MANAGER": {
      "howOftenCheckingExpireTimeInMillis": 20000,
      "logExpireTimeInMillis": 120000,
      "maximumSizeInMegabytes": 5
    },
    "MONITORING_MANAGER": {
      "howOftenRefreshAllEnvironmentStateInMillis": 10000,
      "isJMXEnable": true
    },
    "MICROSERVICES_LOAD_BALANCER_SETTINGS": {
      "singleRequestRepeatsAmount": 3,
      "howOftenCheckingMicroservicesInMillis": 5000,
      "externalHealthCheckPeriod": 5000,
      "EXTERNAL_CONNECTIONS": {
        "connectionSocketTimeoutInMillis": 1000,
        "readTimeoutInMillis": 90000,
        "isKeepAlive": false,
        "isOOBInline": false,
        "isTcpNoDelay": false,
        "isReuseAddress": false,
        "sendBufferSize": 0,
        "receiveBufferSize": 0,
        "soLinger": 0,
        "trafficClass": 0
      }
    },
    "NODE_PEERS": {
      "NODE_1": {
        "ip": "127.0.0.1",
        "jlrmcPort": 9090,
        "queuePort": 9095,
        "transmissionPort": 9096,
        "informationPort": 9097
      }
    }
  },
  "IS_AVAILABLE_MAIN_SERVER": true,
  "MICROSERVICE_REMOTELY_SERVICES_NAMES_MAP": {
    "exchange-rates": [
      "exchangeRatesService"
    ],
    "exchange": [
      "GET|/",
      "POST|/convert"
    ]
  },
  "EVENT_LOG_MAP": {},
  "MICROSERVICE_INFORMATION_DETAIL_MAP": {
    "exchange-rates": {
      "previousJLupinCommonMicroserviceState": "NEW",
      "readyToStartAfterDistributionProcess": false,
      "createdDateTime": "2018-03-01 09:19:03",
      "updatedDateTime": "2018-03-01 09:19:03",
      "distributedDateTime": "2018-03-01 09:19:03",
      "md5": null,
      "jlupinCommonMicroserviceType": "NATIVE",
      "currentJLupinProcessState": "RUNNING"
    },
    "exchange": {
      "previousJLupinCommonMicroserviceState": "NEW",
      "readyToStartAfterDistributionProcess": false,
      "createdDateTime": "2018-03-01 09:19:14",
      "updatedDateTime": "2018-03-01 09:19:14",
      "distributedDateTime": "2018-03-01 09:19:14",
      "md5": null,
      "jlupinCommonMicroserviceType": "SERVLET",
      "currentJLupinProcessState": "RUNNING"
    }
  },
  "MICROSERVICES_CONFIGURATION_MAP": {
    "exchange-rates": {
      "jlrmcServer": {
        "readTimeout": 480000,
        "waitForFinishExecuteAllRequests": true,
        "waitToShutdownThreadsOnStop": 60000,
        "backlog": 0,
        "receiveBufferSize": 0,
        "threadPoolSize": 128,
        "logPeriodicOnDebug": true,
        "destroyThreadOnTimeout": false,
        "threadExecutingTimeOut": 240000,
        "name": "JLRMC",
        "reuseAddress": false
      },
      "transmissionServer": {
        "readTimeout": 480000,
        "waitForFinishExecuteAllRequests": false,
        "waitToShutdownThreadsOnStop": 60000,
        "backlog": 0,
        "receiveBufferSize": 0,
        "threadPoolSize": 8,
        "logPeriodicOnDebug": true,
        "destroyThreadOnTimeout": false,
        "threadExecutingTimeOut": 3600000,
        "name": "TRANSMISSION",
        "reuseAddress": false
      },
      "queueServer": {
        "readTimeout": 480000,
        "waitForFinishExecuteAllRequests": true,
        "waitToShutdownThreadsOnStop": 60000,
        "backlog": 0,
        "receiveBufferSize": 0,
        "threadPoolSize": 128,
        "logPeriodicOnDebug": true,
        "destroyThreadOnTimeout": false,
        "threadExecutingTimeOut": 240000,
        "name": "QUEUE",
        "reuseAddress": false
      },
      "servletServer": null,
      "microserviceSourceConfigurationMap": {
        "SERVERS": {
          "JLRMC": {
            "readTimeout": 480000,
            "isWaitForFinishExecuteAllRequests": true,
            "waitToShutdownThreadsOnStop": 60000,
            "backlog": 0,
            "receiveBufferSize": 0,
            "isReuseAddress": false,
            "threadPoolSize": 128,
            "isLogPeriodicOnDebug": true,
            "isDestroyThreadOnTimeout": false,
            "threadExecutingTimeOut": 240000
          },
          "TRANSMISSION": {
            "readTimeout": 480000,
            "isWaitForFinishExecuteAllRequests": false,
            "waitToShutdownThreadsOnStop": 60000,
            "backlog": 0,
            "receiveBufferSize": 0,
            "isReuseAddress": false,
            "threadPoolSize": 8,
            "isLogPeriodicOnDebug": true,
            "isDestroyThreadOnTimeout": false,
            "threadExecutingTimeOut": 3600000
          },
          "QUEUE": {
            "readTimeout": 480000,
            "isWaitForFinishExecuteAllRequests": true,
            "waitToShutdownThreadsOnStop": 60000,
            "backlog": 0,
            "receiveBufferSize": 0,
            "isReuseAddress": false,
            "threadPoolSize": 128,
            "isLogPeriodicOnDebug": true,
            "isDestroyThreadOnTimeout": false,
            "threadExecutingTimeOut": 240000
          }
        },
        "PROPERTIES": {
          "jvmOptions1": "-Xms64M -Xmx128M",
          "switchDelayTime": 0,
          "connectionSocketTimeoutInMillis": 1000,
          "readTimeoutInMillis": 30000,
          "expectedCheckResponseTimeInMillis": 2000,
          "isKeepAlive": false,
          "isOOBInline": false,
          "isTcpNoDelay": false,
          "isReuseAddress": false,
          "sendBufferSize": 0,
          "receiveBufferSize": 0,
          "soLinger": 0,
          "trafficClass": 0,
          "waitForProcessInitResponseTimeInMillis": 90000,
          "waitForProcessStartResponseTimeInMillis": 90000,
          "waitForProcessDestroyResponseTimeInMillis": 30000,
          "isAllFilesToJVMAppClassLoader": false,
          "isArchiveOnStart": false,
          "startLogMode": "INFO",
          "isInitErrorCauseWithNetworkInformation": true,
          "checkAvailableScript": "function isAvailable(checkResponseTimeInMillis, jrmcActiveThreads, jrmcMaxThreads, queueActiveThreads, queueMaxThreads, servletActiveThreads, servletMaxThreads, jvmMaxMemoryInBytes, jvmTotalMemoryInBytes, jvmFreeMemoryInBytes, jvmProcessCpuLoadInPercentage, userAvailableFlag) {\nvar isAvailableByUser = Boolean(userAvailableFlag); if(checkResponseTimeInMillis > 20000 || !isAvailableByUser) { return false; } return true; }"
        },
        "APPLICATION": {
          "applicationContainerProducerClassName": "com.example.currency.converter.configuration.ExchangeRatesJLupinConfiguration"
        },
        "INITIALIZING_LOGGER": {
          "fileExtension": "log",
          "fileSizeInMB": 20,
          "maxFiles": 10
        },
        "MEMORY_ERRORS": {
          "isRestartOnError": true,
          "howManyTimes": 4,
          "percentageGrowth": 15,
          "isHeapDump": true
        }
      },
      "microserviceName": "exchange-rates",
      "tempRunningClassPath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/start/temp/temp_exchange-rates/temp_1519892336348",
      "jlupinCommonMicroserviceType": "NATIVE",
      "jlupinMicroserviceInitializingLoggerConfiguration": {
        "directoryPath": null,
        "fileName": null,
        "fileExtension": "log",
        "fileSizeInMB": 20,
        "maxFiles": 10
      },
      "jlupinMicroservicePropertiesConfiguration": {
        "jvmOptions1": "-Xms64M -Xmx128M",
        "jvmOptions2": null,
        "connectionSocketTimeoutInMillis": 1000,
        "readTimeoutInMillis": 30000,
        "sendBufferSize": 0,
        "receiveBufferSize": 0,
        "soLinger": 0,
        "trafficClass": 0,
        "startProcessCommand": null,
        "waitForProcessInitResponseTimeInMillis": 90000,
        "waitForProcessStartResponseTimeInMillis": 90000,
        "waitForProcessDestroyResponseTimeInMillis": 30000,
        "startLogMode": "INFO",
        "checkAvailableScript": "function isAvailable(checkResponseTimeInMillis, jrmcActiveThreads, jrmcMaxThreads, queueActiveThreads, queueMaxThreads, servletActiveThreads, servletMaxThreads, jvmMaxMemoryInBytes, jvmTotalMemoryInBytes, jvmFreeMemoryInBytes, jvmProcessCpuLoadInPercentage, userAvailableFlag) {\nvar isAvailableByUser = Boolean(userAvailableFlag); if(checkResponseTimeInMillis > 20000 || !isAvailableByUser) { return false; } return true; }",
        "reuseAddress": false,
        "oobinline": false,
        "tcpNoDelay": false,
        "keepAlive": false,
        "allFilesToJVMAppClassLoader": false,
        "archiveOnStart": false,
        "initErrorCauseWithNetworkInformation": true
      },
      "jlupinMicroserviceApplicationConfiguration": {
        "applicationContainerProducerClassName": "com.example.currency.converter.configuration.ExchangeRatesJLupinConfiguration"
      },
      "jlupinMicroserviceAdditionalConfigurationFromMainServer": {
        "memoryErrorsPath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/memory_manager/errors/exchange-rates",
        "memoryErrorsArchivePath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/memory_manager/archive/exchange-rates",
        "heapDumpPath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/memory_manager/errors/exchange-rates"
      },
      "jlupinMicroserviceMemoryErrorsConfiguration": {
        "restartOnError": true,
        "howManyTimes": 4,
        "percentageGrowth": 15,
        "heapDump": true
      }
    },
    "exchange": {
      "jlrmcServer": null,
      "transmissionServer": {
        "readTimeout": 480000,
        "waitForFinishExecuteAllRequests": false,
        "waitToShutdownThreadsOnStop": 60000,
        "backlog": 0,
        "receiveBufferSize": 0,
        "threadPoolSize": 8,
        "logPeriodicOnDebug": true,
        "destroyThreadOnTimeout": false,
        "threadExecutingTimeOut": 3600000,
        "name": "TRANSMISSION",
        "reuseAddress": false
      },
      "queueServer": null,
      "servletServer": {
        "servletServerType": "SPRING_BOOT",
        "waitForFinishExecuteAllRequests": true,
        "waitToShutdownThreadsOnStop": 5000,
        "httpPrimaryPort": -1,
        "httpSecondaryPort": -1,
        "name": "SERVLET",
        "springBootLoaderClassName": "org.springframework.boot.loader.WarLauncher",
        "contextName": "/exchange"
      },
      "microserviceSourceConfigurationMap": {
        "SERVERS": {
          "HTTP": {
            "type": "spring_boot",
            "httpPrimaryPort": -1,
            "httpSecondaryPort": -1,
            "waitForFinishExecuteAllRequests": true,
            "waitToShutdownThreadsOnStop": 5000,
            "springBootLoaderClassName": "org.springframework.boot.loader.WarLauncher",
            "contextName": "/exchange"
          },
          "TRANSMISSION": {
            "readTimeout": 480000,
            "isWaitForFinishExecuteAllRequests": false,
            "waitToShutdownThreadsOnStop": 60000,
            "backlog": 0,
            "receiveBufferSize": 0,
            "isReuseAddress": false,
            "threadPoolSize": 8,
            "isLogPeriodicOnDebug": true,
            "isDestroyThreadOnTimeout": false,
            "threadExecutingTimeOut": 3600000
          }
        },
        "PROPERTIES": {
          "jvmOptions1": "-Xms64M -Xmx192M",
          "switchDelayTime": 1000,
          "connectionSocketTimeoutInMillis": 1000,
          "readTimeoutInMillis": 30000,
          "isKeepAlive": false,
          "isOOBInline": false,
          "isTcpNoDelay": false,
          "isReuseAddress": false,
          "sendBufferSize": 0,
          "receiveBufferSize": 0,
          "soLinger": 0,
          "trafficClass": 0,
          "waitForProcessInitResponseTimeInMillis": 90000,
          "waitForProcessStartResponseTimeInMillis": 90000,
          "waitForProcessDestroyResponseTimeInMillis": 30000,
          "isAllFilesToJVMAppClassLoader": true,
          "isStackDumping": true,
          "isArchiveOnStart": false,
          "startLogMode": "INFO",
          "isInitErrorCauseWithNetworkInformation": true,
          "checkAvailableScript": "function isAvailable(checkResponseTimeInMillis, jrmcActiveThreads, jrmcMaxThreads, queueActiveThreads, queueMaxThreads, servletActiveThreads, servletMaxThreads, jvmMaxMemoryInBytes, jvmTotalMemoryInBytes, jvmFreeMemoryInBytes, jvmProcessCpuLoadInPercentage, userAvailableFlag) {\nvar isAvailableByUser = Boolean(userAvailableFlag); if(checkResponseTimeInMillis > 20000 || !isAvailableByUser) { return false; } return true; }"
        },
        "INITIALIZING_LOGGER": {
          "fileExtension": "log",
          "fileSizeInMB": 20,
          "maxFiles": 10
        },
        "MEMORY_ERRORS": {
          "isRestartOnError": true,
          "howManyTimes": 4,
          "percentageGrowth": 15,
          "isHeapDump": true
        }
      },
      "microserviceName": "exchange",
      "tempRunningClassPath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/start/temp/temp_exchange/temp_1519892336550",
      "jlupinCommonMicroserviceType": "SERVLET",
      "jlupinMicroserviceInitializingLoggerConfiguration": {
        "directoryPath": null,
        "fileName": null,
        "fileExtension": "log",
        "fileSizeInMB": 20,
        "maxFiles": 10
      },
      "jlupinMicroservicePropertiesConfiguration": {
        "jvmOptions1": "-Xms64M -Xmx192M",
        "jvmOptions2": null,
        "connectionSocketTimeoutInMillis": 1000,
        "readTimeoutInMillis": 30000,
        "sendBufferSize": 0,
        "receiveBufferSize": 0,
        "soLinger": 0,
        "trafficClass": 0,
        "startProcessCommand": null,
        "waitForProcessInitResponseTimeInMillis": 90000,
        "waitForProcessStartResponseTimeInMillis": 90000,
        "waitForProcessDestroyResponseTimeInMillis": 30000,
        "startLogMode": "INFO",
        "checkAvailableScript": "function isAvailable(checkResponseTimeInMillis, jrmcActiveThreads, jrmcMaxThreads, queueActiveThreads, queueMaxThreads, servletActiveThreads, servletMaxThreads, jvmMaxMemoryInBytes, jvmTotalMemoryInBytes, jvmFreeMemoryInBytes, jvmProcessCpuLoadInPercentage, userAvailableFlag) {\nvar isAvailableByUser = Boolean(userAvailableFlag); if(checkResponseTimeInMillis > 20000 || !isAvailableByUser) { return false; } return true; }",
        "reuseAddress": false,
        "oobinline": false,
        "tcpNoDelay": false,
        "keepAlive": false,
        "allFilesToJVMAppClassLoader": true,
        "archiveOnStart": false,
        "initErrorCauseWithNetworkInformation": true
      },
      "jlupinMicroserviceApplicationConfiguration": null,
      "jlupinMicroserviceAdditionalConfigurationFromMainServer": {
        "memoryErrorsPath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/memory_manager/errors/exchange",
        "memoryErrorsArchivePath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/memory_manager/archive/exchange",
        "heapDumpPath": "/opt/jlupin_next_server_ee_version_1_4_1_0-RC4/server/logs/memory_manager/errors/exchange"
      },
      "jlupinMicroserviceMemoryErrorsConfiguration": {
        "restartOnError": true,
        "howManyTimes": 4,
        "percentageGrowth": 15,
        "heapDump": true
      }
    }
  }
}