Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added information about RMR environment variables

(We'll also provide the answers!)

What environment variables are used and/or expected by RMR?

There are several RMR environment variables which cause the behaviour of RMR to vary from the default. The following table lists the variables, their effects, and where applicable possible values.

VariableUse/EffectValue Limits/Meanings
RMR_SEED_RTProvides RMR with an initial Route Table. The table is read once during initalisation and is overlaid with the first table delivered by the Route ManagerAny valid file name readable by the application.
RMR_VCTL_FILEProvides the filename of a verbosity level control file used by the route collection thread. The first line of the file is read and if non-zero debugging information related to the Route Manager updates will be written to the standard error device.  The value in the file may change during the lifetime of the process, but in order to change it dynamically the variable and file must exist at the time rmr_init() is invoked by the application (thus it is possible for the application to set the name and value before initialising RMR.   This is meant as a debugging tool only and no effort to make this any more "pretty" has been made. 

Values in the file that are recognised:

0 == off

1== some

2 == more. 

RMR_SRC_NAMEONLYRMR will send only the hostname:port as the source of each message and will never send the IP-address:port. The source information is what a receiving process will use when the rmr_rts_msg( ) (return to sender) is used.values may be 0 (off) or 1(on).
RMR_SRC_IDThis provides the string which RMR will place into all outbound messages as the source of the message. This should be hostname:port or similar. It might be needed when a container hostname cannot be used to route messages back to the container (e.g. when host networking is being used).   If not supplied, the host:port for the container is used.
RMR_LOG_VLEVELThis controls the verbosity level of RMR.  Normally, RMR does not write any messages to standard error except severe and fatal errors.  Most of RMR debugging message generation code is disabled during compile so as not to bog the process down with "if( err_level )" checks which eventually can consume a significant number of CPU cycles, thus setting a level of 5 (debug) will likely not generate the amount of messages that might be expected.  If not set a value of 2 (error and critical) is assumed. 

Values are in a range of 0 through 5;

0 == off 

1 == critical only

2 == +errors

3 == +warnings

4 == + info

5 == + debug

RMR_RTG_SVC

This variable controls how RMR expects to receive update messages from the Route Manager. This variable's value will contain either a host:port  or just a port.    When it is a host:port RMR will attempt to connect to the Route Manager using the address. When only a port is given, RMR will assume that it will listen on the port for Route Manager connections.

If not defined, then the servicename:port "routemgr:4561" is used. 
RMR_CTL_PORTThis is the control port that RMR will use to receive control messages and is the port sent to Route Manager as the return to sender port when the RMR_RTG_SVC contains a host:port value.  If not supplied the default is 4561.  (This is a new variable with the 3.x.x versions of RMR.) Any valid port for the application, likely assigned by the container manager.



When the xAPP receives an RMR response for a subscription request, what should the subscription ID in that RMR message be?

...