createStreamingConnection

Create a streaming connection

The "createStreamingConnection" action creates a streaming connection to a FairCom DB or RTG server. You can later use the "alterStreamingConnection" action to modify the connection.

The "streamingConnectionName" property is most important because it uniquely identifies the connection. You must use this name when running the "startDataChangeStream" action to create a data change stream.

 

Request examples

 

Minimal

{
  "api": "admin",
  "action": "createStreamingConnection",
  "params": {

    "streamingConnectionName": "db1",

    "sourceHostname": "10.70.13.112",
    "sourcePort": 5597,
    "sourceUsername": "ADMIN",
    "sourcePassword": "ADMIN"
  },
  "authToken": "replaceWithAuthTokenFromCreateSession"
}

 

Maximal

This example configures a connection to multiple source servers. The FairCom MQ server attempts to connect to the servers in the list in the order they are listed. If a connection fails, it connects to the next server in the list. If the connection to the last server in the list fails, it attempts to connect to the first one.

{
  "api": "admin",
  "action": "createStreamingConnection",
  "params": {
    "streamingConnectionName": "db1",
"logLevel": "error", "metadata": {}, "maxSecondsBeforeConnectingToNextServer": 15, "streamParallelism": 4, "sourceServers": [ { "purpose": "Primary Server", "sourceServerName": "FAIRCOMS", "sourceHostname": "10.70.13.112", "sourcePort": 5597, "sourceUsername": "ADMIN", "sourcePassword": "ADMIN", "tls": { "enabled": true, "caCertificateFilename": "ca.crt", "allowedCipherSuites": "", "clientCertificateEnabled": true, "clientCertificateFilename": "admin_client.crt", "clientPrivateKeyFilename": "admin_client.key" } }, { "purpose": "Secondary Server", "sourceServerName": "FAIRCOMS2", "sourceHostname": "10.70.13.113", "sourcePort": 5597, "sourceUsername": "ADMIN", "sourcePassword": "ADMIN", "tls": { "enabled": true, "caCertificateFilename": "ca.crt", "allowedCipherSuites": "", "clientCertificateEnabled": true, "clientCertificateFilename": "admin_client.crt", "clientPrivateKeyFilename": "admin_client.key" } } ] }, "authToken": "replaceWithAuthTokenFromCreateSession" }

 

Response examples

 

Maximal

{
  "authToken": "authToken",
  "result": {

    "streamingConnectionName": "db1",
"logLevel": "error", "metadata": {}, "streamParallelism": 4, "sourceServers": [ { "purpose": "Primary Server", "sourceServerName": "FAIRCOMS", "sourceHostname": "10.70.13.112", "sourcePort": 5597, "sourceUsername": "ADMIN", "sourcePassword": "ADMIN", "tls": { "enabled": true, "caCertificateFilename": "ca.crt", "allowedCipherSuites": "", "clientCertificateEnabled": true, "clientCertificateFilename": "admin_client.crt", "clientPrivateKeyFilename": "admin_client.key" } }, { "purpose": "Secondary Server", "sourceServerName": "FAIRCOMS2", "sourceHostname": "10.70.13.113", "sourcePort": 5597, "sourceUsername": "ADMIN", "sourcePassword": "ADMIN", "tls": { "enabled": true, "caCertificateFilename": "ca.crt", "allowedCipherSuites": "", "clientCertificateEnabled": true, "clientCertificateFilename": "admin_client.crt", "clientPrivateKeyFilename": "admin_client.key" } } ] }, "errorCode": 0, "errorMessage": "" }

 

"params"

createStreamingConnection "params" property summaries
Property Description Default Type Limits (inclusive)
logLevel Defines what types of messages the replication agent will log.  "debug" string enum

"off" - no messages logged

"debug" - logs debug, info, warning, and error messages

"info" - logs info, warning, and error messages

"warning" - logs warning and error messages

"error" - logs error messages

maxSecondsBeforeConnectingToNextServer (optional) specifies the maximum number of seconds the server will attempt to reconnect to the existing server before it attempts to connect to the next server in the "sourceServers" list. 30 int32 1 to 65535
metadata (optional) specifies metadata about the streaming connection. It must be a JSON object, and you may add your own properties to it. {} object 0 or more key/value pairs
sourceServers specifies a list of FairCom DB or RTG servers. FairCom MQ attempts to connect to the first server in the list. If that fails, it attempts to connect to the next one. If it reaches the last server in the list, it attempts to connect to the first. Required - No default value array of server connection objects
{
  "purpose": "Primary Server",
  "sourceServerName": "FAIRCOMS",
  "sourceHostname": "10.70.13.112",
  "sourcePort": 5597,
  "sourceUsername": "ADMIN",
  "sourcePassword": "ADMIN",
  "tls": {
    "enabled": true,
    "caCertificateFilename": "ca.crt",
    "allowedCipherSuites": "",
    "clientCertificateEnabled": true,
    "clientCertificateFilename": "admin_client.crt",
    "clientPrivateKeyFilename": "admin_client.key"
  }
}
sourceServers
.purpose
(optional) defines a short description of the server's purpose. "" string 1 to 64 bytes
sourceServers
.sourceHostname
(conditional) specifies a unique host name or TCP/IP address of a FairCom DB or RTG server. Required - No default value string 1 to 255 bytes
sourceServers
.sourcePassword
(optional) specifies the login password of a FairCom DB or RTG server. "ADMIN" string 1 to 128 bytes
sourceServers
.sourcePort
(optional) specifies the ISAM TCP/IP port of a FairCom DB or RTG server. 5597 int16 1 to 65535
sourceServers
.sourceServerName
(conditional) specifies the server name of a FairCom DB or RTG server. It is the name specified by the SERVER_NAME keyword defined in the target server's configuration file, ctsrvr.cfg. The server name used by most FairCom DB and RTG servers is "FAIRCOMS". Required if "sourceHostname" is not defined - No default value string 1 to 255 bytes
sourceServers
.sourceUsername
(optional) specifies the login name of a FairCom DB or RTG server. "ADMIN" string 1 to 64 bytes
sourceServers
.tls
(optional) specifies Transport Layer Security settings for connecting to a FairCom DB or RTG server. {} object
"allowedCipherSuite"
"caCertificateFilename"
"clientCertificateEnabled"
"clientCertificateFilename"
"clientPrivateKeyFilename"
"enabled"
sourceServers
.tls
.allowedCipherSuites
(optional) limits the ciphers that FairCom MQ is willing to use when communicating with a FairCom DB or RTG server. "" string No limits
sourceServers
.tls
.caCertificateFilename
(optional) specifies the name and optional path of the CA certificate file (such as ca.pem). "" string No limits
sourceServers
.tls
.clientCertificateEnabled
(optional) enables client certificate authentication if true. The target FairCom DB or RTG server must be configured to accept client certificates. false boolean
false
true
sourceServers
.tls
.clientCertificateFilename
specifies the file name, such as admin_client.crt, of a client certificate accepted by the target FairCom DB or RTG server. Required - No default value string No limits
sourceServers
.tls
.clientPrivateKeyFilename
specifies the file name, such as admin_client.key, of a client certificate private key file accepted by the target FairCom DB or RTG server. Required - No default value string No limits
sourceServers
.tls
.enabled
(optional) enables or disables tls. null boolean
false
true
streamingConnectionName specifies a unique, user-defined name for a streaming connection. This API uses it to identify streaming connections and to connect a data change stream to a FairCom DB or RTG server. Required - No default value string 1 to 64 characters
streamParallelism (optional) specifies the number of parallel streams the server uses to deliver data changes to the FairCom MQ server. You typically use a number that does not exceed the number of cores on the FairCom MQ server. 8 integer 1 to 65535

 

logLevel

The "logLevel" property is an enumerated string that defines what types of messages the replication agent will log. You can set this property to the following values:

  • "off" - no messages logged
  • "debug" - logs debug, info, warning, and error messages
  • "info" - logs info, warning, and error messages
  • "warning" - logs warning and error messages
  • "error" - logs error messages

 

"metadata"

The "metadata" property is an optional JSON object. It exists primarily for the user interface to find integration information. By default, it is an empty JSON object.

  • It contains a flexible set of properties.
  • It typically contains tags and description properties.

 

Example

{
  "description": "",
  "tags": [""],
  "yourOwnProperties": "usage, purpose, notes, location, etc.",
}

 

"sourceServers"

The "sourceServers" property is a required array containing a list of FairCom DB or RTG server connection objects. FairCom MQ attempts to connect to the first server in the list. If that fails, it attempts to connect to the next one. If it reaches the last server in the list, it attempts to connect to the first.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"purpose"

The "purpose" property is an optional string that provides a short description of the specified server's purpose.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"sourceHostname"

The "sourceHostname" property is a required string that specifies a unique host name or TCP/IP address of a FairCom DB or RTG server.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"sourcePassword"

The "sourcePassword" property is an optional string that specifies the login password of a FairCom DB or RTG server.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"sourcePort"

The "sourcePort" property is an optional integer that specifies the ISAM TCP/IP port of a FairCom DB or RTG server.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"sourceServerName"

The "sourceServerName" property is a conditional string that specifies the server name of a FairCom DB or RTG server. It is the name specified by the SERVER_NAME keyword defined in the target server's configuration file, ctsrvr.cfg. The server name used by most FairCom DB and RTG servers is "FAIRCOMS". This property is required if the "sourceHostname" is not defined.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"sourceUsername"

The "sourceUsername" property is an optional string that specifies the name of a FairCom DB or RTG server.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"tls"

The "tls" property is a JSON object that defines the public server certificate filename, the private key filename, the certificate authority filename, the cipher suites that are allowed, and whether the client certificate is required. This property is optional. It defaults to an empty object. 

 

Example

"tls": { 
  "serverCertificateFilename": "server.crt", 
  "privateKeyFilename": "server.key",
  "caCertificateFilename": "ca.crt",
  "allowedCipherSuites": "AES256-SHA256"
  "requireClientCertificate": "true"
}

 

"allowedCipherSuites"

The "allowedCiperSuites" property is an optional string that specifies an array of ciphers that the server will accept for communications with clients. It defaults to an empty string.

  • It specifies the encryption ciphers that are allowed to be used for encrypting a TLS (SSL) connection.
  • A client is allowed to connect to the server only if it uses one of the ciphers in this list.
  • The default setting of an empty string supports industry-standard secure connections.
  • The default value requires clients to use full AES 256-bit encryption when they talk to the server.
  • If a client cannot support AES 256-bit encryption, a lower encryption level should be added to the list.
    • This is undesirable because malicious users will attempt to connect at the lowest possible level so they can harm the system (for more information, see ciphers main page at OPENSSL.org.
  • Example settings:
    • Maximally secure example:
      • Only allows clients to connect securely.
      • ["AES256-SHA256", "AES256-GCM-SHA384", "DHE-RSA-AES256-SHA256"]
    • Minimally secure example with the broadest client support:
      • ["!aNULL", "!eNULL", "!SSLv2", "!LOW", "!EXP", "!RC4", "!MD5", "@STRENGTH"]
    • Insecure example allowing clients to connect using any level of security from none to the maximal:
      • ["ALL", "!aNULL", "!eNULL", "!SSLv2", "!LOW", "!EXP", "!RC4", "!MD5", "@STRENGTH"]
  • Add @STRENGTH to the end of the list to force the server to prioritize the strongest algorithms first.
  • Place an exclamation point before a cipher to disable it.

 

"caCertificateFilename"

The "caCertificateFilename" property is an optional string that specifies the name and optional path of the CA certificate file (such as "ca.pem"). It defaults to an empty string.

  • You must include "caCertificateFilename" to allow clients to use X509 certificates to authenticate with the server.
  • The certificate authorities file contains the list of certificate authorities the server uses to validate X509 certificates that clients present as authentication credentials.
  • In order for an X509 certificate to be accepted by the server, the certificate must be signed by a certificate authority that is present in the certificate authorities certificate file.

 

"requireClientCertificate"

The "requireClientCertificate" property is an optional boolean property. It defaults to false. If present, it must be set to true or false.

  • When "requireClientCertificate" is true, the listener prompts the client for a client certificate. If the client does not provide one or provides an incorrect certificate, the server refuses to connect to the client. When the server requires a client to authenticate using a client certificate, "requireClientCertificate" must be set to true.
  • When "requireClientCertificate" is false, the listener does not prompt the client for a client certificate. This prevents the server from using a client certificate to authenticate a client.

 

"clientCertificateEnabled"

The "clientCertificateEnabled" property is an optional boolean that enables client certificate authentication if true. The target FairCom DB or RTG server must be configured to accept client certificates.

        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }

 

"clientCertificateFilename"

The "clientCertificateFilename" property is an optional string that specifies the name of the client certificate file. It defaults to an empty string.

        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }

 

"clientPrivateKeyFilename"

The "clientPrivateKeyFilename" property is an optional string that specifies the name of the client private key file. It defaults to an empty string.

        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }

 

"enabled"

The "enabled" property is an optional Boolean that specifies whether or not the feature is enabled. The example below enables the TLS feature.

        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }

 

"streamingConnectionName"

The "streamingConnectionName" property is a required string that specifies a unique, user-defined name for a streaming connection. The API uses it to identify streaming connections and to connect a data change stream to a FairCom DB or RTG server.

  "params": {
    "streamingConnectionName": "db1",
    "metadata": {},
    "maxSecondsBeforeConnectingToNextServer": 15,
    "streamParallelism": 4,
    "sourceServers": []
  },

 

"streamParallelism"

The "streamParallelism" property is an optional integer that specifies the number of parallel streams the server uses to deliver data changes to the FairCom MQ server. You typically use a number that does not exceed the number of cores on the FairCom MQ server.

  "params": {
    "streamingConnectionName": "db1",
    "metadata": {},
    "maxSecondsBeforeConnectingToNextServer": 15,
    "streamParallelism": 4,
    "sourceServers": []
  },

 

"result"

createStreamingConnection "result" property summaries
Property Description Type Contents
logLevel Defines what types of messages the replication agent will log. string enum

"off" - no messages logged

"debug" - logs debug, info, warning, and error messages

"info" - logs info, warning, and error messages

"warning" - logs warning and error messages

"error" - logs error messages

metadata (optional) specifies metadata about the streaming connection. It must be a JSON object, and you may add your own properties to it. object 0 or more key/value pairs
sourceServers specifies a list of FairCom DB or RTG servers. FairCom MQ attempts to connect to the first server in the list. If that fails, it attempts to connect to the next one. If it reaches the last server in the list, it attempts to connect to the first. array of server connection objects
{
  "purpose": "Primary Server",
  "sourceServerName": "FAIRCOMS",
  "sourceHostname": "10.70.13.112",
  "sourcePort": 5597,
  "sourceUsername": "ADMIN",
  "sourcePassword": "ADMIN",
  "tls": {
    "enabled": true,
    "caCertificateFilename": "ca.crt",
    "allowedCipherSuites": "",
    "clientCertificateEnabled": true,
    "clientCertificateFilename": "admin_client.crt",
    "clientPrivateKeyFilename": "admin_client.key"
  }
}
sourceServers
.purpose
(optional) defines a short description of the server's purpose. string 1 to 64 bytes
sourceServers
.sourceHostname
(conditional) specifies a unique host name or TCP/IP address of a FairCom DB or RTG server. string 1 to 255 bytes
sourceServers
.sourcePort
(optional) specifies the ISAM TCP/IP port of a FairCom DB or RTG server. int16 1 to 65535
sourceServers
.sourceServerName
(conditional) specifies the server name of a FairCom DB or RTG server. It is the name specified by the SERVER_NAME keyword defined in the target server's configuration file, ctsrvr.cfg. The server name used by most FairCom DB and RTG servers is "FAIRCOMS". string 1 to 255 bytes
sourceServers
.sourceUsername
(optional) specifies the login name of a FairCom DB or RTG server. string 1 to 64 bytes
sourceServers
.tls
(optional) specifies Transport Layer Security settings for connecting to a FairCom DB or RTG server. object
"allowedCipherSuite"
"caCertificateFilename"
"clientCertificateEnabled"
"clientCertificateFilename"
"clientPrivateKeyFilename"
"enabled"
sourceServers
.tls
.allowedCipherSuites
(optional) limits the ciphers that FairCom MQ is willing to use when communicating with a FairCom DB or RTG server. string A list of accepted ciphers.
sourceServers
.tls
.caCertificateFilename
(optional) specifies the name and optional path of the CA certificate file (such as ca.pem). string The name and path to the CA certificate file.
sourceServers
.tls
.clientCertificateEnabled
(optional) enables client certificate authentication if true. The target FairCom DB or RTG server must be configured to accept client certificates. boolean
false
true
sourceServers
.tls
.clientCertificateFilename
specifies the file name, such as admin_client.crt, of a client certificate accepted by the target FairCom DB or RTG server. string The file name of a client certificate.
sourceServers
.tls
.clientPrivateKeyFilename
specifies the file name, such as admin_client.key, of a client certificate private key file accepted by the target FairCom DB or RTG server. string The file name of a client certificate private key file.
sourceServers
.tls
.enabled
(optional) enables or disables tls. boolean
false
true
streamingConnectionName specifies a unique, user-defined name for a streaming connection. This API uses it to identify streaming connections and to connect a data change stream to a FairCom DB or RTG server. string 1 to 64 characters
streamParallelism (optional) specifies the number of parallel streams the server uses to deliver data changes to the FairCom MQ server. You typically use a number that does not exceed the number of cores on the FairCom MQ server. integer 1 to 65535

 

logLevel

The "logLevel" property is an enumerated string that defines what types of messages the replication agent will log. You can set this property to the following values:

  • "off" - no messages logged
  • "debug" - logs debug, info, warning, and error messages
  • "info" - logs info, warning, and error messages
  • "warning" - logs warning and error messages
  • "error" - logs error messages

 

"metadata"

The "metadata" property is an optional JSON object. It exists primarily for the user interface to find integration information. By default, it is an empty JSON object.

  • It contains a flexible set of properties.
  • It typically contains tags and description properties.

 

Example

{
  "description": "",
  "tags": [""],
  "yourOwnProperties": "usage, purpose, notes, location, etc.",
}

 

"sourceServers"

The "sourceServers" property is a required array containing a list of FairCom DB or RTG server connection objects. FairCom MQ attempts to connect to the first server in the list. If that fails, it attempts to connect to the next one. If it reaches the last server in the list, it attempts to connect to the first.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"purpose"

The "purpose" property is an optional string that provides a short description of the specified server's purpose.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"sourceHostname"

The "sourceHostname" property is a required string that specifies a unique host name or TCP/IP address of a FairCom DB or RTG server.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"sourcePort"

The "sourcePort" property is an optional integer that specifies the ISAM TCP/IP port of a FairCom DB or RTG server.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"sourceServerName"

The "sourceServerName" property is a conditional string that specifies the server name of a FairCom DB or RTG server. It is the name specified by the SERVER_NAME keyword defined in the target server's configuration file, ctsrvr.cfg. The server name used by most FairCom DB and RTG servers is "FAIRCOMS". This property is required if the "sourceHostname" is not defined.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"sourceUsername"

The "sourceUsername" property is an optional string that specifies the name of a FairCom DB or RTG server.

    "sourceServers": [
      {
        "purpose": "Primary Server",
        "sourceServerName": "FAIRCOMS",
        "sourceHostname": "10.70.13.112",
        "sourcePort": 5597,
        "sourceUsername": "ADMIN",
        "sourcePassword": "ADMIN",
        
        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }
      }
    ]

 

"tls"

The "tls" property is a JSON object that defines the public server certificate filename, the private key filename, the certificate authority filename, the cipher suites that are allowed, and whether the client certificate is required. This property is optional. It defaults to an empty object. 

 

Example

"tls": { 
  "serverCertificateFilename": "server.crt", 
  "privateKeyFilename": "server.key",
  "caCertificateFilename": "ca.crt",
  "allowedCipherSuites": "AES256-SHA256"
  "requireClientCertificate": "true"
}

 

"allowedCipherSuites"

The "allowedCiperSuites" property is an optional string that specifies an array of ciphers that the server will accept for communications with clients. It defaults to an empty string.

  • It specifies the encryption ciphers that are allowed to be used for encrypting a TLS (SSL) connection.
  • A client is allowed to connect to the server only if it uses one of the ciphers in this list.
  • The default setting of an empty string supports industry-standard secure connections.
  • The default value requires clients to use full AES 256-bit encryption when they talk to the server.
  • If a client cannot support AES 256-bit encryption, a lower encryption level should be added to the list.
    • This is undesirable because malicious users will attempt to connect at the lowest possible level so they can harm the system (for more information, see ciphers main page at OPENSSL.org.
  • Example settings:
    • Maximally secure example:
      • Only allows clients to connect securely.
      • ["AES256-SHA256", "AES256-GCM-SHA384", "DHE-RSA-AES256-SHA256"]
    • Minimally secure example with the broadest client support:
      • ["!aNULL", "!eNULL", "!SSLv2", "!LOW", "!EXP", "!RC4", "!MD5", "@STRENGTH"]
    • Insecure example allowing clients to connect using any level of security from none to the maximal:
      • ["ALL", "!aNULL", "!eNULL", "!SSLv2", "!LOW", "!EXP", "!RC4", "!MD5", "@STRENGTH"]
  • Add @STRENGTH to the end of the list to force the server to prioritize the strongest algorithms first.
  • Place an exclamation point before a cipher to disable it.

 

"caCertificateFilename"

The "caCertificateFilename" property is an optional string that specifies the name and optional path of the CA certificate file (such as "ca.pem"). It defaults to an empty string.

  • You must include "caCertificateFilename" to allow clients to use X509 certificates to authenticate with the server.
  • The certificate authorities file contains the list of certificate authorities the server uses to validate X509 certificates that clients present as authentication credentials.
  • In order for an X509 certificate to be accepted by the server, the certificate must be signed by a certificate authority that is present in the certificate authorities certificate file.

 

"requireClientCertificate"

The "requireClientCertificate" property is an optional boolean property. It defaults to false. If present, it must be set to true or false.

  • When "requireClientCertificate" is true, the listener prompts the client for a client certificate. If the client does not provide one or provides an incorrect certificate, the server refuses to connect to the client. When the server requires a client to authenticate using a client certificate, "requireClientCertificate" must be set to true.
  • When "requireClientCertificate" is false, the listener does not prompt the client for a client certificate. This prevents the server from using a client certificate to authenticate a client.

 

"clientCertificateEnabled"

The "clientCertificateEnabled" property is an optional boolean that enables client certificate authentication if true. The target FairCom DB or RTG server must be configured to accept client certificates.

        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }

 

"clientCertificateFilename"

The "clientCertificateFilename" property is an optional string that specifies the name of the client certificate file. It defaults to an empty string.

        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }

 

"clientPrivateKeyFilename"

The "clientPrivateKeyFilename" property is an optional string that specifies the name of the client private key file. It defaults to an empty string.

        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }

 

"enabled"

The "enabled" property is an optional Boolean that specifies whether or not the feature is enabled. The example below enables the TLS feature.

        "tls": {
          "enabled": true,
          "caCertificateFilename": "ca.crt",
          "allowedCipherSuites": "",
          
          "clientCertificateEnabled": true,
          "clientCertificateFilename": "admin_client.crt",
          "clientPrivateKeyFilename": "admin_client.key"
        }

 

"streamingConnectionName"

The "streamingConnectionName" property is a required string that specifies a unique, user-defined name for a streaming connection. The API uses it to identify streaming connections and to connect a data change stream to a FairCom DB or RTG server.

  "params": {
    "streamingConnectionName": "db1",
    "metadata": {},
    "maxSecondsBeforeConnectingToNextServer": 15,
    "streamParallelism": 4,
    "sourceServers": []
  },

 

"streamParallelism"

The "streamParallelism" property is an optional integer that specifies the number of parallel streams the server uses to deliver data changes to the FairCom MQ server. You typically use a number that does not exceed the number of cores on the FairCom MQ server.

  "params": {
    "streamingConnectionName": "db1",
    "metadata": {},
    "maxSecondsBeforeConnectingToNextServer": 15,
    "streamParallelism": 4,
    "sourceServers": []
  },