MATRIXX Engine Connection Properties
Timeout and Throttling Configuration Properties describes the properties for configuring SBA Gateway connections to MATRIXX Engine.
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:
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:
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"