Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added information about table IDs

...

Code Block
themeEmacs
linenumberstrue
newrt|start | id000345
mse| 1000 | 10 | forwarder:43086
mse| 1000,forwarder:43086 | 10 | app2:43086
mse| 1000 | -1 | app0:43086,app1:43086;logger:20311  # rr to app0/app1 and always send to logger
newrt|end

...

For the first two entries, a subscription ID of 10 is defined, and thus messages which set both a message type 1000 and the subscription ID of 10 will select an endpoint from the entry retained by the application.  When a message is sent with the message type of 1000, but without setting the subscription ID, the last entry in the table will be used.  This entry will also cause two messages to be sent: one will be sent to either app0 or app1 from the first round-robin group, and the second will always be sent to the logger.  


Table ID on Start Record

The final field on the newrt|start record (id000345 in the example above) is used when RMR sends acknowledges to the Route Manager. Each ack is sent with the table ID provided in order for the Route Manager to track state of each update delivered.  If omitted, RMR will return a default string similar to "<id-missing>".

Providing A Static Table

Normally, when the RMR initialisation function is invoked, a listener is started to receive route table information from a route manager process.  During testing it is often useful to be able to supply a static table which is available should no route management process exist, or to provide a seed table to use before the first table is delivered.  The environment variable RMR_SEED_RT  can be set to provide the RMR initialisation function with the name of the static table to use. If a static table is provided, it will be loaded only once, and if a route manager subsequently connects and delivers a complete or updated table, it will override the static table. 

...

To select an endpoint for the message based on the MEID in a message, RMR must know which endpoint owns the MEID.  This information, known as an MEID map,  is provided by the Routing Manager over the same communication path as the route table is supplied.  The following is the syntax for an MEID map.


  meid_map | start | <table-id>
  mme_ar | <owner-endpoint> | <meid> [<meid>...]
  mme_del | <meid> [<meid>...]
  meid_map | end | <count> [| <md5sum> ]

...

If a static seed file is being used for the route table, a second section can be given which supplies the MEID map. The following is a small example of a seed file:

Code Block
newrt|start | id-64306
        mse|0|-1| %meid
        mse|1|-1|172.19.0.2:4560
        mse|2|-1|172.19.0.2:4560
        mse|3|-1|172.19.0.2:4560
        mse|4|-1|172.19.0.2:4560
        mse|5|-1|172.19.0.2:4560
newrt|end

meid_map | start | id-028919
        mme_ar| 172.19.0.2:4560 | meid000 meid001 meid002 meid003 meid004 meid005
        mme_ar| 172.19.0.42:4560 | meid100 meid101 meid102 meid103
        mme_del | meid1000
meid_map | end | 1

...