MATRIXX Engine Connection Properties

Timeout and Throttling Configuration Properties describes the properties for configuring SBA Gateway connections to MATRIXX Engine.

Table 1. Timeout and Throttling Configuration Properties
Property Description
engine.enabled When set to true, functionality to connect to MATRIXX Engine. The default value is false.
engine.ttl.enabled When set to true, a time-to-live (TTL) timeout on requests is enabled. The default value is true. The timeout duration is the total of the value of engine.connection.requestTimeout and the value of engine.ttl.gracePeriod.
engine.ttl.gracePeriod The duration of a TTL grace period to be added to engine.connection.requestTimeout for the total TTL duration.
engine.loadMdcRetryDelayMillis The delay, in milliseconds, between attempts to download MDC definitions The default value is 5000.
engine.loadMdcFromEngine When set to false, loading MDC definitions from an engine is disabled. The default value is true.
engine.mdc.schemaVersion The MDC schema version. Specify 0 to allow the engine to find the level. Specify a value when pinning to a specific version during the upgrade process. The default value is 0.
engine.mdc.extensionVersion The extension version. Specify 0 to allow the engine to find the level. Specify a value when pinning to a specific version during the upgrade process. The default value is 0.
engine.requestRetry.enabled When set to true, enables repeated attempts to request from an engine if at first it is unresponsive. The default value is true.
engine.requestRetry.maxRetries The maximum number of retries before responding with an error. Set to 0 for unlimited retries. The default value is 32.
Note: This value must be greater than the value specified by engine.connection.poolsize. If a connection failure occurs, connections in the pool might not be detected as broken until a request is attempted.
engine.requestRetry.interval The interval in milliseconds between retry attempts. The default value is 100.
engine.connection.host The host name of the endpoint (MDC Gateway, Traffic Routing Agent (TRA-PROC, TRA-PUB, TRA-RT), or Gateway Proxy). The default value is localhost.
Note: This setting is ignored if hosts are specified with connection.connections section.
engine.connection.port The port to connect to on the host. The default value is 14060.
engine.connection.authPort The authenticated port of Gateway Proxy. If connecting with the authenticated port, set engine.connection.port to the same value as this property. The default value is 14080.
engine.connection.connectTimeout The timeout value when creating a connection. The default value is 10000.
engine.connection.requestTimeout The timeout value of each request. The default value is 20000.
engine.connection.pingInterval The interval in seconds at which to send a ping. Set to 0 to disable. The default value is 10.
engine.connection.maxPingFailures The maximum number of failed ping messages before reconnecting. The default value is 2.
engine.connection.pingRouteId The value of the TrafficRouteData field of the MtxRequestSysQueryDomain message used to ping a connection. By default this is set to RTID0 which routes to any available sub-domain. In multi-domain deployments this might need to be changed to specify a particular sub-domain (in 523x) as RTIDx, or domain ID (524x onward) as DMIDnn. In 524x releases, the Helm chart configures this property if a domain is specified. The default value is RTID0.
engine.connection.credentials.username The username, if connecting over the authenticated port of Gateway Proxy.
engine.connection.credentials.password The password, if connecting over the authenticated port of Gateway Proxy.
engine.connection.credentials.apiKey The API key, if connecting over the authenticated port of Gateway Proxy.
engine.connections Connections to multiple hosts. For each pool of connections, a host must be specified. The default values for each connection pool are taken from the engine.connection properties. Each value can be overridden per connection pool:
connections:
  siteA:
    host: sitea.example.com
  siteB:
    host: siteb.example.com
    port: 99999
Note: A single connection is routed through a Kubernetes service, which provides load balancing and fail over to multiple TRA-RT instances. This configuration option is often required for hybrid deployments where the TRA-RT instance is not inside the Kubernetes cluster.
engine.failoverMode The fail over mode when multiple connections are defined:
  • ACTIVE_STANDBY (default): Use the first connection in the list of connections unless it fails. On failure, use the next in the list.
  • ACTIVE_ACTIVE: Balance.
Note: If engine.connection.pingInterval is defined, the ping message is used to find if a connection pool is available again. if engine.connection.pingInterval is 0, incoming requests try to use a pool even if it failed before.

The following gateway.yaml excerpt shows the common configuration default values (where defaults exist) for these properties:

# Settings Related to Matrixx Engine
engine:

  # Is the functionality to connect to the Engine enabled?
  enabled: false

  # Add ttl configuration values
  # To enable set to true
  # Grace period for service call
  # Will use the engine.requestTimeout with engine.ttl.gracePeriod to define aggregate timeout
  ttl:
    enabled: true
    gracePeriod: 2000  

  # Delay (milliseconds) between retries to download MDC definitions
  loadMdcRetryDelayMillis: 5000

  # Optionally disable loading the MDCs from the engine
  loadMdcFromEngine: true

  # MDC Schema and Extension Version. Leave as 0 for the Engine 
  # to decide the level. Specify a value when 'version pinning' during upgrade
  mdc:
    schemaVersion: 0
    extensionVersion: 0

  # Retry requests to the engine if an error occurs (e.g. a connection failure)
  requestRetry:
    # Retry requests
    enabled: true
    # Max number of retries before responding with an error. Set to 0 for unlimited retries.
    # Note: If a connection failure occurs, connections in the pool may not be detected as broken
    # until a request is attempted. So this value should be greater than poolsize.
    maxRetries: 32
    # Interval in milliseconds between retry attempts.
    interval: 100

  # Engine connection details.
  # A "connection" is in fact a pool of TCP connections to a host/port.
  #
  # Depending on the environment, SBA can connect to:
  #   * MDC Gateway
  #   * TRA-LB
  #   * TRA-RT
  #   * Gateway Proxy
  connection:
    # Hostname of one of the above endpoints (e.g. TRA-RT)
    # Note: This will be ignored if hosts are specified in the connection.connections section.
    host: localhost
    # Port to connect to
    port: 14060
    # Authenticated port (of Gateway Proxy). If connecting over the Authenticated port of
    # Gateway Proxy, set Port to the same value as this.
    authPort: 14080
    # Timeout when creating a connection
    connectTimeout: 10000
    # Timeout duration each request
    requestTimeout: 5000
    # Send a ping at this interval (in seconds). Set to zero to disable.
    pingInterval: 10
    # Max number of successive failed Ping messages before reconnecting
    maxPingFailures: 2
    # The value of the TrafficRouteData field of the MtxRequestSysQueryDomain message used 
    # to ping a connection. By default this is set to RTID0 which will route to any
    # available subdomain. In multi-domain deployments this may need to be changed to
    # specify a particular subdomain (in 523x) as RTIDx, or domain id (524x onward) as
    # DMIDnn. In 524x, the Helm Chart will configure this automatically if a Domain is 
    # specified.
    pingRouteId: RTID0
    # If connecting via the Authenticated port of Gateway Proxy, create login credentials
    # in Gateway Proxy for SBA Gateway and specify those credentials here.
    credentials:
      username: sba_username
      password: sba_password
      apiKey: sba_apiKey

  # Connect to multiple hosts. For each (pool of) connections, a host must be specified.
  # The default values for each connection pool will be taken from the connection configuration
  # section above. Each value can be overridden per connection pool.
  # e.g:
  # connections:
  #   siteA:
  #     host: sitea.example.com
  #   siteB:
  #     host: siteb.example.com
  #     port: 99999
  #
  # NOTE: For Kubernetes deployments, a single connection will be routed over a Service,
  #       which will provide load balancing and failover to multiple TRA-RT instances.
  #       This configuration option is more likely required for hybrid deployments
  #       where the TRA-RT is not inside the Kubernetes cluster.
  connections: []

  # Failover mode when multiple connections are defined.
  #   ACTIVE_STANDBY (default): Use the first connection in the list of connections unless it fails. On failure,
  #                             use the next in the list and so-on.
  #   ACTIVE_ACTIVE: Balance
  # Note: If pingInterval is defined, the ping message will be used to determine if
  #       a connection pool is available again. If pingInterval is set to zero, 
  #       incoming requests will try to use a pool even if it has previously failed.
  failoverMode: "ACTIVE_STANDBY"