Relay Server Configuration (rs.config)

The rs.config file defines the configuration of individual Relay Servers, and Relay Server clusters (farms).

The rs.config file is divided into four sections:
  • [relay_server] – defines configuration for a single Relay Server
  • [backend_farm] – defines a homogeneous group (e.g., a cluster) of back-end servers, which are targeted by client requests
  • [backend_server] – defines the connection to each back-end server, supported by one or more RSOEs
  • [options] – defines general configuration properties that apply to all Relay Servers in a cluster (farm)

[relay_server] Section

  • enable – Specifies whether the Relay Server is included in a Relay Server cluster.
    Possible values are:
    • yes
    • no
    Default is yes.
  • host – Host name or IP address to be used by the Outbound Enabler to make a direct connection to the Relay Server.
  • http_port – HTTP port to be used by the Outbound Enabler to make a direct connection to the Relay Server.
    Possible values are:
    • 0 or off  — Disable HTTP access from Outbound Enabler

    • 1 to 65535 — Enable HTTP access on the specified port

    Default is 80.
  • https_port – HTTPS port to be used by the Outbound Enabler to make a direct connection to the Relay Server.
    Possible values are:
    • 0 or off  — Disable HTTP access from Outbound Enabler

    • 1 to 65535 — Enable HTTP access on the specified port

    Default is 443.
  • description – User-definable description of the Relay Server, up to 2048 characters.

[backend_farm] Section

  • active_cookie – Specifies whether a cookie is set to maintain client-server session affinity.
    Possible values are:
    • yes — Relay Server injects a standard HTTP set-cookie command, with a proprietary cookie name in the response.
    • no — Use this option when the back-end farm serves a sessionless browser application.
  • active_header – Specifies whether a header is set to maintain client-server session affinity.
    Possible values are:
    • yes — Relay Server injects a proprietary header in the response, in case intermediaries tamper with the active cookie.
    • no — Use this option to reduce traffic volume, if the back-end farm serves only browser applications, or if the active cookie works for all clients of the back-end farm.
  • backend_security – Specifies the level of security required of an Outbound Enabler in the back-end farm.
    Possible values are:
    • on — All connections from the back-end farm must use HTTPS.
    • off — All connections from the back-end farm must use HTTP.
    If no value is specified, the Outbound Enabler can use either HTTP or HTTPS.
  • client_security – Specifies the level of security the back-end farm requires of its clients.
    Possible values are:
    • on — All clients must use HTTPS.
    • off — All clients must use HTTP.
    If no value is specified, the clients can use either HTTP or HTTPS.
  • description – User-definable description of the back-end farm, up to 2048 characters.
  • enable – Specifies whether to allow connections from the back-end farm.
    Possible values are:
    • yes
    • no
    Default is yes.
  • id – User-definable string that identifies the back-end farm, up to 2048 characters.
  • verbosity – Relay Server logging verbosity.
    Possible values are:
    • 0 — Log errors only.
    • 1 — Session-level logging.
    • 2 — Request-level logging.
    • 3 - 5 — Detailed logging, used primarily for technical support.
    Default is 0.
  • socket_level_affinity – Specifies whether socket level affinity is required or not.
    Possible values are:
    • yes
    • no
    Default is yes.
    Note: For REST API applications (including those running inside Hybrid Web Container, socket_level_affinity should be set to no). 

[backend_server] Section

  • description – User-definable description of the back-end server, up to 2048 characters.
  • enable – Specifies whether to allow connections from the back-end server.
    Possible values are:
    • yes
    • no
    Default is yes.
  • farm – User-definable string that identifies a back-end farm.

    This property associates the back-end server with a back-end farm. This value must match the id value in a [backend_farm] section.

  • id – User-definable string that identifies the back-end server, up to 2048 characters.
  • MAC – MAC address of the network adapter used by Outbound Enabler to make a connection with the Relay Server.

    If this property is not specified, Relay Server does not check the MAC address on Outbound Enabler connections.

  • token – A security token used by Relay Server to authenticate the back-end server connection, up to 2048 characters.
  • verbosity – Relay Server logging verbosity.
    Possible values are:
    • 0 — Log errors only.
    • 1 — Session-level logging.
    • 2 — Request-level logging.
    • 3 - 5 — Detailed logging, used primarily for technical support.
    Default is 0.

[options] Section

  • start – Method used to start the State Manager.
    Possible values are:
    • auto — State Manager is started automatically by Relay Server Web extensions.
    • no — State Manager is started as a service.
    • full path — Full path to the State Manager executable (rshost).
    Default is auto.
  • shared_mem – Maximum amount of shared memory used for state tracking.

    Specify a value and a unit (units are KB, MB, or GB); for example 2048 GB. If you do not specify a value, the default is 10MB. SAP recommends adding the unit to the value to clarify the configuration setting.

  • verbosity – Relay Server logging verbosity.
    Possible values are:
    • 0 — Log errors only.
    • 1 — Session-level logging.
    • 2 — Request-level logging.
    • 3 - 5 — Detailed logging, used primarily for technical support.
    Default is 0.

Example: N+2 Architecture Configuration

There are two Relay Servers in a Relay Server farm: RS1.sybase.com and RS2.sybase.com. There are also two back-end server types: Afaria and SAP Mobile Server. The Afaria system has two servers: Afaria1.sap.com and Afaria2.sap.com. There is one SAP Mobile Server: SMP.sap.com.

Relay Servers use Microsoft IIS, and the Web server is configured with the following paths:
  • \ias_relay_server\client – the install location of rs_client.dll.
  • \ias_relay_server\server – the install location of rs_server.dll, rshost.exe, and rs.config.
#----------------------------
# Relay server with auto start option
#-------------------------------------
[options]
start = no
verbosity = 1

Start State Manager as a Windows service.

#--------------------
# Relay server peers
#--------------------
[relay_server]
enable          = yes
host            = RS1.sap.com
http_port       = 80
https_port      = 443
description     = Machine #1 in RS farm

[relay_server]
enable          = yes
host            = RS2.sap.com
http_port       = 80
https_port      = 443
description     = Machine #2 in RS farm
Because there are two Relay Servers, both instances need to be defined in the peer list. This list is used by the RSOE to establish a connection with each Relay Server node in the farm.
#---------------
# Backend farms
#---------------
[backend_farm]
enable          = yes
id              = AfariaFarm
client_security = on
backend_security= on
description     = This is the definition for the Afaria farm.

[backend_farm]
enable          = yes
id              = SMPFarm
client_security = on
backend_security= on
description     = This is the definition for the SMP farm.
There are two types of back-end farms in this example. SAP Mobile Server and Afaria. Each farm requires an entry in the [backend_farms] section, and each must have a unique Farm ID.
#-----------------
# Backend servers
#-----------------
[backend_server]
enable   = yes
farm     = AfariaFarm
id       =  for Afaria1.sap.com
mac      = 01-23-45-67-89-ab
token    = 7b2493b0-d0d4-464f-b0de-24643e1e0feb

[backend_server]
enable   = yes
farm     = AfariaFarm
id       =  for Afaria1.sap.com
mac      = 01-23-45-67-89-ac
token    = de1aac83-a653-4e0f-8a6c-0a161a6ee407

[backend_server]
enable   = yes
farm     = SMPFarm
id       =  for SMP.sap.com
mac      = 01-23-45-67-89-ad
token    = 621ece03-9246-4da7-99e3-c07c7599031c
There are three back-end server nodes in this scenario. Two are part of the AfariaFarm and the third is part of the SMPFarm. Afaria back-end servers use the Transmitter ID as the Server ID. SAP Mobile Platform typically uses the machine name as the Server ID. The Server ID must be unique for each back-end server entry.
Note: When Relay Servers have been deployed and configured, clients connect to severs in the back-end farms differently:
  • For the AfariaFarm example, clients would use:
    url_suffix=/ias_relay_server/client/rs_client.dll/AfariaFarm
  • For the SUPFarm example, clients would use:
    url_suffix=/ias_relay_server/client/rs_client.dll/SMPFarm