How 'local' flag is used

This page applies to Multiple Resilience Configurations Only

This section describes the use of the 'local' flag and its interaction with the location override flag.

The location information for a table stored on the database is as follows:

When an application first accesses a particular table, AUXDISTR creates an in-memory copy of an @NETWORK table entry for that table as follows: the list of server numbers is copied from the entry on the database, if there is one, and otherwise is taken from the list of default servers supplied by command tails. The network.local flag is copied from the @RELDATA table entry (unless the −nolocal command tail is used on AUXDISTR, in which case network.local will be set to No). The value of local contained in any persistent @network record for the table is ignored.

Subsequently this in-memory copy of the @NETWORK table entry is used to determine which servers to use whenever the table is accessed.

rec_post() and rec_kill()operations on the @NETWORK table operate exclusively on the in-memory copy of the table and are not passed on to the database. Posting to @NETWORK can change the list of server numbers and the 'local' flag. Deleting from @NETWORK causes the original default entry to be restored.

AUXDISTR determines which servers to use for an operation on a database table as follows:

  1. The in-memory copy of the @NETWORK table entry is looked up.
  2. If the value LOCN_OVERRIDE has been added to the flags passed by the application, the value of the network.local field is temporarily reversed.
  3. If the (possibly reversed) network.local field is TRUE the local server is used; otherwise the servers in the list are used.