2 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
3 .. SPDX-License-Identifier: CC-BY-4.0
4 .. CAUTION: this document is generated from source in doc/src/rtd.
5 .. To make changes edit the source and recompile the document.
6 .. Do NOT make changes directly to .rst or .md files.
9 RMR Configuration and Delpoyment
10 ============================================================================================
12 The RIC Message Router (RMR) is a library which applications
13 use to send and receive messages where the message routing,
14 endpoint selection, is based on the message type rather than
15 on traditional DNS names or IP addresses. This document
16 contains information regarding the configuration of RMR when
17 it is embedded by a *user application* . RMR itself is not a
21 --------------------------------------------------------------------------------------------
23 Several aspects of RMR behaviour is controlled via
24 environment variables which are set at the time that a user
25 application invokes the RMR initialisation function. This
26 allows these variables to be set before the application is
27 started as a function of the true environment, or set by the
28 application as a means for the application to influence RMR's
29 behaviour. The following is a list of RMR variables which RMR
30 recognises (see the main RMR manual page in the development
31 package for more details).
36 Allows the asynch connection mode to be turned off (by
37 setting the value to 0. When set to 1, or missing from the
38 environment, RMR will invoke the connection interface in
39 the transport mechanism using the non-blocking (asynch)
40 mode. This will likely result in many "soft failures"
41 (retry) until the connection is established, but allows
42 the application to continue unimpeeded should the
43 connection be slow to set up.
47 This provides the interface that RMr will bind listen
48 ports to allowing for a single interface to be used rather
49 than listening across all interfaces. This should be the
50 IP address assigned to the interface that RMr should
51 listen on, and if not defined RMr will listen on all
56 RMr opens a TCP listen socket using the port defined by
57 this environment variable and expects that the route table
58 generator process will connect to this port. If not
59 supplied the port 4561 is used.
63 Is set to 1 if the route table generator is sending
64 "plain" messages (not using RMr to send messages, 0 if the
65 rtg is using RMr to send. The default is 1 as we don't
66 expect the rtg to use RMr.
70 This is used to supply a static route table which can be
71 used for debugging, testing, or if no route table
72 generator process is being used to supply the route table.
73 If not defined, no static table is used and RMr will not
74 report *ready* until a table is received.
78 This is either the name or IP address which is placed into
79 outbound messages as the message source. This will used
80 when an RMR based application uses the rmr_rts_msg()
81 function to return a response to the sender. If not
82 supplied RMR will use the hostname which in some container
83 environments might not be routable.
87 This supplies the name of a verbosity control file. The
88 core RMR functions do not produce messages unless there is
89 a critical failure. However, the route table collection
90 thread, not a part of the main message processing
91 component, can write additional messages to standard
92 error. If this variable is set, RMR will extract the
93 verbosity level for these messages (0 is silent) from the
94 first line of the file. Changes to the file are detected
95 and thus the level can be changed dynamically, however RMR
96 will only suss out this variable during initialisation, so
97 it is impossible to enable verbosity after startup.
101 If set to 1, RMR will write some warnings which are
102 non-performance impacting. If the variable is not defined,
103 or set to 0, RMR will not write these additional warnings.