Sections in the FTL Server Cluster Configuration
Provided below is a brief description of each section of the YAML configuration file and a list of all required and optional parameters that can be included in those sections in the context of FTL stores.
globals
The globals section contains parameters that directly affect the operation of the FTL servers in the cluster.
Parameter Name | Description |
---|---|
core.servers
|
This parameter is mandatory. A list of the names of the FTL servers in the cluster along with their location. |
oauth2.claim.username
|
Required when When validating an OAuth 2.0 access token, the TIBCO FTL server will interpret this claim as a username. This property is shared with the EMS server and overrides the |
oauth2.claim.roles
|
Required when When validating an OAuth 2.0 access token, the TIBCO FTL server will interpret this claim as an array of authorization groups. This property is shared with the EMS server and overrides the |
oauth2.audience
|
Optional. When validating an OAuth 2.0 access token, the TIBCO FTL server will ensure that the audience ('aud') claim matches this value. If it does not match, the token is rejected.
This property is shared with the EMS server and overrides the |
servers
The servers
section must contain a list of all FTL servers in the cluster. For each server in the list, a sub-list of services whose behavior is to be configured can be specified. No service should be specified more than once for a given server.
The table below details the parameters available to configure each service.
Parameter Name | Description |
---|---|
tibemsd Service Parameters
|
|
exepath
|
This parameter is mandatory and must be configured for each FTL server in the cluster. The path to the tibemsd executable. This executable is located at |
-license
|
The path to a license file or the URL to the TIBCO Activation Service. The URL to the TIBCO Activation Service may optionally include a fingerprint. If a fingerprint is provided, the EMS server will only connect to the TIBCO Activation Service if the fingerprint matches the public certificate of the TIBCO Activation Service. This parameter must be used in place of the See the License section for syntax and information about EMS license requirements and behavior. |
-listens
|
A comma-separated list of one or more listen URLs for the EMS server. This parameter must be used in place of the Refer to the |
-config_wait
|
When this parameter is specified for all
If this parameter is not specified for all See the Server Configuration Upload/Download section for instructions on uploading the EMS configuration to the FTL server cluster. |
-standby_only
|
This parameter informs the FTL server that its EMS server is configured to be Only one of the 3 FTL servers in this section should have this parameter set for its This parameter should not be specified if the configuration is for a standalone FTL server. |
-preferred_active
|
Setting this parameter designates the EMS server as the preferred active server. In situations where either EMS server in the fault-tolerant pair could potentially enter the active state, the server configured with Configuring this parameter for an EMS server does not guarantee that the server will always be in the active state. The preferred active server will enter the standby state if its fault-tolerant peer EMS server is already in the active state. |
-store
|
The path to the directory where the FTL server will write out FTL store-specific data. If not specified, FTL store data will be written to the current working directory by default. |
-monitor_listen
|
The URL at which the EMS server will listen for health check and Prometheus metrics requests. This URL should follow the same syntax as described in the |
-oauth2_disable_verify_hostname
|
Optional. If set, the name in the CN field of the HTTPS server’s certificate will not be verified. Hostname verification is enabled by default. This parameter is only relevant when the value of This parameter should be used in place of the |
-oauth2_expected_hostname
|
Optional. The name that the EMS server expects in the CN field of the HTTPS server’s certificate. This parameter is optional and only relevant when This parameter should be used in place of the |
load
|
The path to the state file from which the FTL server will load its state information during startup. |
<EMS server command line option>
|
Any EMS server command line option can be included in this section. For example, |
realm Service Parameters
|
|
data
|
The general data directory for the FTL server. This directory will contain all non-FTL store specific data. If not specified, the default is the current working directory. |
drto |
When present, this FTL server cluster recognizes another given FTL server cluster as belonging to a disaster recovery site and attempts to connect to it. Supply a pipe-separated list of the URLs of the FTL servers in the disaster recovery site’s FTL server cluster. Each URL should be of the form:
(You must also configure the disaster recovery FTL servers using the |
drfor
|
When present, this FTL server cluster recognizes that it is in the disaster recovery site for a primary site FTL server cluster. Supply a pipe-separated list of URLs of the FTL servers in the primary site’s FTL server cluster. Each URL should be of the form:
(You must also configure the primary site FTL servers using the |
user
|
The username that the FTL server clusters at the primary and DR sites will use to authenticate each other.
If the authentication data for the primary and DR sites was created based on the steps in FTL Server Cluster Security, the value passed to this option should be This parameter must be specified if setting up disaster recovery with secure FTL server clusters. |
password
|
The password that the FTL server clusters at the primary and DR sites will use to authenticate each other. The value for this parameter should be of the form:
where This parameter must be specified if setting up disaster recovery with secure FTL server clusters. |
ftlserver.properties Parameters
|
|
logfile
|
The prefix for the filenames of the rolling log files generated by the FTL server. If the prefix includes a directory path, the FTL server’s log files will be generated under that directory. If not, the FTL server will generate its log files in the current directory. Any directories included in the prefix value must already exist. If this parameter is not specified, the FTL server will send log output to the console. |
max.log.size
|
The maximum size of each FTL server log file in bytes. |
max.logs
|
The maximum number of rolling log files that can be created. |
oauth2.validation.key
|
Required when The TIBCO FTL server will validate the signature of the access token using one of the given validation keys. The value for this parameter must be of the form:
If a This property is shared with the EMS server and overrides the |
oauth2.provider.trust.file
|
Optional. This parameter specifies the path to a file containing one or more PEM-encoded public certificates. The TIBCO FTL server uses the
trust file to verify the identify
of the OAuth 2.0 provider, such as when the If not specified, the TIBCO FTL server uses the system trust store to verify the identity of the OAuth 2.0 provider. This property is shared with the EMS server and overrides the |
oauth2.jwks.refresh.interval
|
Optional. Sets the regular interval (in seconds) at which the JWKS is refreshed. This property is relevant when This property is shared with the EMS server and overrides the |
oauth2.jwks.refresh.threshold
|
Optional. Sets the duration (in seconds) that FTL must wait between JWKS refresh attempts prompted by OAuth 2.0 access token validation issues. This property is relevant when This property is shared with the EMS server and overrides the |
Examples
Example 1
Configuration for a standalone FTL server that does not have security enabled and is using the default data directories.
globals: core.servers: ftls1: host1:8080 servers: ftls1: - tibemsd: -license: file:///opt/deployment/license.bin -listens: tcp://host1:7222 exepath: /opt/tibco/ems/10.3/bin/tibemsd -config_wait:
Example 2
Configuration for an FTL server cluster that is secured with user-defined TLS certificates and OAuth 2.0 authentication (for EMS server as well as FTL server cluster), has generic and FTL store-specific data directories defined, has logging parameters configured, and is also configured to replicate data to a disaster recovery site.
globals: core.servers: ftls1: host1:8080 ftls2: host2:8085 ftls3: host3:8090 auth.providers: oauth2 oauth2.claim.roles: group oauth2.claim.username: preferred_username oauth2.audience: ems oauth2.svr.endpoint.token: https://host1:32223/oauth2/token servers: ftls1: - tibemsd: -license: file:///opt/deployment/license.bin -listens: ssl://host1:7222 exepath: /opt/tibco/ems/10.4/bin/tibemsd -store: /opt/deployment/ftls1/ftlstore_data -oauth2_expected_hostname: server -config_wait: - realm: data: /opt/deployment/ftls1/ftlserver_data drto: dr_ftls1@host4:8080|dr_ftls2@host5:8085|dr_ftls3@host6:8090 - ftlserver.properties: tls.server.cert: /opt/deployment/tls-user/server_cert.pem tls.server.private.key: /opt/deployment/tls-user/server_key.pem tls.server.private.key.password: password tls.client.trust.file: /opt/deployment/tls-user/client_trust.pem oauth2.validation.key: file:/opt/deployment/oauth2/oauth2.json oauth2.provider.trust.file: /opt/deployment/oauth2/oauth2_provider.crt oauth2.jwks.refresh.interval: 129600 oauth2.jwks.refresh.threshold: 600 oauth2.svr.client.id: ems-client oauth2.svr.client.secret: file:/opt/deployment/oauth2/secret.txt logfile: /opt/deployment/ftls1/logs/log max.log.size: 1048576 max.logs: 100 ftls2: - tibemsd: -license: file:///opt/deployment/license.bin -listens: ssl://host2:7224 exepath: /opt/tibco/ems/10.4/bin/tibemsd -store: /opt/deployment/ftls2/ftlstore_data -oauth2_expected_hostname: server -config_wait: - realm: data: /opt/deployment/ftls2/ftlserver_data drto: dr_ftls1@host4:8080|dr_ftls2@host5:8085|dr_ftls3@host6:8090 - ftlserver.properties: tls.server.cert: /opt/deployment/tls-user/server_cert.pem tls.server.private.key: /opt/deployment/tls-user/server_key.pem tls.server.private.key.password: password tls.client.trust.file: /opt/deployment/tls-user/client_trust.pem oauth2.validation.key: file:/opt/deployment/oauth2/oauth2.json oauth2.provider.trust.file: /opt/deployment/oauth2/oauth2_provider.crt oauth2.jwks.refresh.interval: 129600 oauth2.jwks.refresh.threshold: 600 oauth2.svr.client.id: ems-client oauth2.svr.client.secret: file:/opt/deployment/oauth2/secret.txt logfile: /opt/deployment/ftls2/logs/log max.log.size: 1048576 max.logs: 100 ftls3: - tibemsd: -license: file:///opt/deployment/license.bin -listens: ssl://host3:7226 exepath: /opt/tibco/ems/10.4/bin/tibemsd -store: /opt/deployment/ftls3/ftlstore_data -oauth2_expected_hostname: server -config_wait: -standby_only: - realm: data: /opt/deployment/ftls3/ftlserver_data drto: dr_ftls1@host4:8080|dr_ftls2@host5:8085|dr_ftls3@host6:8090 - ftlserver.properties: tls.server.cert: /opt/deployment/tls-user/server_cert.pem tls.server.private.key: /opt/deployment/tls-user/server_key.pem tls.server.private.key.password: password tls.client.trust.file: /opt/deployment/tls-user/client_trust.pem oauth2.validation.key: file:/opt/deployment/oauth2/oauth2.json oauth2.provider.trust.file: /opt/deployment/oauth2/oauth2_provider.crt oauth2.jwks.refresh.interval: 129600 oauth2.jwks.refresh.threshold: 600 oauth2.svr.client.id: ems-client oauth2.svr.client.secret: file:/opt/deployment/oauth2/secret.txt logfile: /opt/deployment/ftls3/logs/log max.log.size: 1048576 max.logs: 100