Skip to main content
Version: 2022.3

Server Configuration - Service Definitions

Just as each application must have a -processes.xml config file, it must also have a -service-definitions.xml file. This is where you specify the ports of the various processes. These are used to communicate internally between processes.

<configuration>
<service host="localhost" name="GENESIS_CLUSTER" port="8510"/>
<service host="localhost" name="GENESIS_WEBMON" port="8511"/>
<service host="localhost" name="GENESIS_WEB_ADAPTER" port="8512"/>
</configuration>

When genesisInstall is executed, all products have their -service-definitions.xml files compiled into a system-wide $GC/global-service-definitions.xml. Here is an example of a global-service-definitions.xml file where we have the auth, genesis and gcom products installed:

<configuration>
<service external="false" host="localhost" name="GENESIS_AUTH_DATASERVER" port="8502" secure="false"/>
<service external="false" host="localhost" name="GENESIS_AUTH_MANAGER" port="8501" secure="false"/>
<service external="false" host="localhost" name="GENESIS_AUTH_PERMS" port="8503" secure="false"/>
<service external="false" host="localhost" name="GENESIS_CLUSTER" port="8510" secure="false"/>
<service external="false" host="localhost" name="GENESIS_WEBMON" port="8511" secure="false"/>
<service external="false" host="localhost" name="GENESIS_ROUTER" port="8512" secure="false"/>
<service external="false" host="localhost" name="GCOM_DATA_SERVER" port="8570" secure="false"/>
<service external="false" host="localhost" name="GCOM_REQUEST_SERVER" port="8571" secure="false"/>
</configuration>

If the process lives on a different server, then set the external attribute to "true". For example:

<configuration>
<service host="hostname" name="GENESIS_CLUSTER" port="8510" external="true"/>
</configuration>

Enable SSL for processes

To enable SSL for a process, set the secure attribute to "true" on the process in the -service-definitions.xml file. For example:

<configuration>
<service host="localhost" name="GCOM_REQUEST_SERVER" port="8571" secure="true"/>
</configuration>

You must also edit the application genesis-system-definition.kts file, as specified in the example below:

systemDefinition {
global {
item(name = "DefaultKeystoreLocation", value = "/home/applicationName/keystore.jks")
item(name = "DefaultKeystorePassword", value = "Password123")
item(name = "DefaultCertificate", value = "/home/applicationName/certificate.crt")
}
}
danger

The global-service-definitions.xml file and the processes.xml file are are erased and re-generated every time you run genesisInstall. (You should never change these files, because any changes will be lost the next time you run genesisInstall.)

Therefore, it is essential that you set the service-definitions.xml file this way for every service or module for which you want to enable SSL.