Some environments have issues with host resolution between servers and this can cause issues with the Platform. It typically happens in environments where all the hostnames aren't resolvable, e.g. cloud provisioned servers or processes launched under Kubernetes.
Support has been added for more configurable host resolution when registering with Control and the Messaging Server. Previously the registering host used in both cases was derived by the system and provided no options to customize.
By default when processes start, they attempt to to derive a FQDN using a combination of kdb+ and system commands. This host is then reported to Control and used by other services for communication. In some scenarios, this derived host can be wrong, especially in cloud or Kubernetes installations where the reported host is not addressable.
To override this default behavior, a process can be configured to use a specific value or else derive something custom.
The former approach is done using the
.ex.i.regHostMode instance parameter.
IP- registers with the local IP address, returned by
ZHOST- uses the hostname, returned by
Custom logic can be used by creating an instruction to run at start-up and calling the
.ex.setRegHost API with a custom hostname.
When a process registers with the MS process, a host name is registered against it, which is subsequently used for processes to communicate. By default the MS resolves this value from the remote IP during registration. Similar to above, the value can be configured in two ways; instance parameters or custom logic.
The former is done using the
IP- register using the local IP address, returned by
host- uses the process-derived host name, returned by
Custom logic can be used by creating an instruction to run at start-up and calling
.dm.setRegHost with the desired hostname.
The screenshot below shows a basic example of host to use custom logic to set the hostname for both Control and Messaging.
Control processes connect to each other using the host names defined in the
failover.csv file. Host resolution
happens as part of the handshake and can cause similar issues to above two areas. To disable this behavior
the following value can be set.
This is a requirement to use phopen