Gateway Proxy Connection Properties

The Gateway Proxy must be configured to connect to the MATRIXX Engine. Configure these properties in the gateway_proxy.yaml file.

Gateway Proxy Connection Properties lists the properties that you use to connect the Gateway Proxy to the MATRIXX Engine.

Table 1. Gateway Proxy Connection Properties
Property Description
authPort When set to port 4080, initializes the Gateway Proxy to require client authentication. Clients connecting to the Gateway Proxy must provide a login ID and password. This is the default port.
Note: A sample Java program, sample_java_client-5000.jar, demonstrates how to create a Java program that uses authentication mode. For more information about the sample Java programs, see the discussion about creating a Java client application in MATRIXX Subscriber Management API.
nonAuthPort When set to port 4070, initializes the Gateway Proxy without requiring client authentication.
engineCount The number of Traffic Routing Agents in sub-domain routing/site independence/disaster recovery mode (TRA-RT-(SI/DR))s to connect to, to communicate with corresponding engines. The Gateway Proxy can communicate with multiple TRA-RT-(SI/DR)s. In a distributed environment set up for high availability (HA), the value should be 2 or 3, depending on the number of sites, with one TRA-RT-(SI/DR) per site.

When the Gateway Proxy receives a message from a client, it finds the highest priority (lowest number) TRA-RT/DR for the engine that is ACTIVE and sends the message to it. If the send fails, after the configured timeout value, the Gateway Proxy sends the message to the next highest priority TRA-RT/DR until all attempts have failed.

The Gateway Proxy actively monitors all engines. It opens a connection pool to any newly active engine and removes the connection pool from an engine if it fails. For information about engine configuration, see the discussions about configuring MATRIXX using Helm and configuration input settings.

snmpAgentAddress The SNMP IP address and port. For example: 0.0.0.0/5700
prometheusPort The port for Prometheus metrics.
prometheusApplication For example, gateway-proxy.
reconnectSleep The number of milliseconds to wait after a connection is lost before trying to make a new connection.
threads The number of IO listener threads for incoming connections to the Gateway Proxy service. If you do not specify a value, the value is set to 512 threads for unlimited threads.
The following information must be configured for each engine in the environment. This applies to system properties that are used to override the configuration. In the gateway_proxy.yaml configuration file, configure a list of engines under the engine: key.
active Specifies whether the engine is active or not. Values are true or false.
domainId Set to the domain for which this Gateway Proxy instance should service requests. You can specify the number, such as domainId: 2 or you can use the TRA routing term domainId: DMID2.

The Gateway Proxy uses this information to determine all sub-domains that are part of the specified domain.

routeId For MATRIXX version 5240 and later, do not set this value.
host The VIP address of the application-layer Traffic Routing Agent (TRA-RT-(SI/DR)).
idleTime The number of milliseconds to allow the connection (thread) to the engine to be idle. If the engine is idle in the pool for more than the idle time, it is closed. For test environments, where the engine is stopped and started frequently, the idleTime might be set to 20,000 to 30,000 milliseconds. For production environments, the values should be 2–10 times higher than this values.
port The MATRIXX Engine port to connect to.
retryOnOtherEngines Controls whether the Gateway Proxy retries requests on additional engines if more than one engine exists and a failure to communicate with the current engine occurs. The out-of-the-box-value is false.
threads The number of concurrent connections allowed to MATRIXX Engine.
timeBetweenTests The number of milliseconds to wait before checking to see if a connection the engine has failed. This controls the interval between checks. For test environments, where the engine is stopped and started often, the timeBetweenTests value set to 5,000–10,000 milliseconds. For production environments, the values should be 2–10 times higher than this value.
timeout The number of milliseconds to wait before assuming an error occurred and closing the connection. This is provided for failover capabilities when a disaster recovery operation is in progress. After the timeout period, the Gateway Proxy automatically connects to the next engine in the series if one is configured.

The default setting for this property is 1000 ms. In deployments where there are few or no multi-request MATRIXX Data Containers (MDCs), where there is no sub-domain routing, and where the Gateway Proxy is connecting directly to an engine, this default value may be enough. In other deployments this value should be examined and the timeout increased to 5000 ms or even 10000–15000 ms.

The following example shows a gateway_proxy.yaml file configured to communicate with two MATRIXX Engine platforms.
# Port for intializing gateway proxy in in auth mode
authPort: 4080
nonAuthPort: 4070

# Number of IO listener threads for incoming connections
threads: 16

# how long to sleep after a connection goes away before trying a new connection
reconnectSleep: 1000

# How many engines should I connect to.  These connections are cycled through one
# at a time.  When a connection fails, an attempt to connect to the next known
# engine is made
engineCount: 2

# snmpAgentAddress: 0.0.0.0/5700	

# Prometheus Metrics
prometheusPort: 5705
prometheusApplication: gateway-proxy

# this setting controls whether gateway proxy will retry requests on additional
# engines if more than one engine exists and a failure to communicate with the
# current engine occurs.  The default value for this property is "false".  This
# is a change in behavior introduced in release 5220.  You must explicitly set this
# property to "true" if you want to reenable this retry capability
retryOnOtherEngines: false

# Engine configuration.  One section per known engine
#  host:              the host name or address of the engine
#  port:              the socket port of the engine
#  schemaVersion      the MATRIXX engine schema version number
#  extensionVersion   the service provider schema version
#  threads:           number of allowed concurrent connections to the engine
#  timeout:           ms. to wait for a request to complete
#  idleTime:          ms. an engine connection can sit in the pool idle
#  timeBetweenTests:  ms. between runs of the thread that will evict idle engine connections
#  active:            "true" or "false" whether the engine is active or not

# Engine Connection
engine: 
  # engine [0] 
  - active: "true" 
    host: 10.10.176.54 
    idleTime: 60000 
    port: 4060 
    threads: 16 
    timeBetweenTests: 15000 
    timeout: 5000
    domainId: DMID1
    routeId: DMID1

  # engine [1]
  - active: "true" 
    host: 10.10.176.55 
    idleTime: 60000 
    port: 4060 
    threads: 16 
    timeBetweenTests: 15000 
    timeout: 5000
    domainId: DMID1
    routeId: DMID1