E. Scott Daniels | 392168d | 2019-11-06 15:12:38 -0500 | [diff] [blame^] | 1 | |
| 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. |
| 7 | |
| 8 | |
| 9 | RMR Configuration and Delpoyment |
| 10 | ============================================================================================ |
| 11 | |
| 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 |
| 18 | deployable entity. |
| 19 | |
| 20 | Configuration |
| 21 | -------------------------------------------------------------------------------------------- |
| 22 | |
| 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). |
| 32 | |
| 33 | |
| 34 | RMR_ASYNC_CONN |
| 35 | |
| 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. |
| 44 | |
| 45 | RMR_BIND_IF |
| 46 | |
| 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 |
| 52 | interfaces. |
| 53 | |
| 54 | RMR_RTG_SVC |
| 55 | |
| 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. |
| 60 | |
| 61 | RMR_RTG_ISRAW |
| 62 | |
| 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. |
| 67 | |
| 68 | RMR_SEED_RT |
| 69 | |
| 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. |
| 75 | |
| 76 | RMR_SRC_ID |
| 77 | |
| 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. |
| 84 | |
| 85 | RMR_VCTL_FILE |
| 86 | |
| 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. |
| 98 | |
| 99 | RMR_WARNINGS |
| 100 | |
| 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. |
| 104 | |