3.1.1.3 Publisher Tables

A publisher table is an array of registered publishers on the server. Each publisher in the table SHOULD contain the publisher name, the publisher identifier, and the channels to which the publisher will write events.

A typical publisher table structure is as follows:

<Publisher1 Name><Publisher1 Identifier><Channel List for Publisher 1><Resource File of Publisher 1><Parameter File of Publisher 1><Message File of Publisher 1>

<Publisher2 Name><Publisher2 Identifier><Channel List for Publisher 2><Resource File of Publisher 2><Parameter File of Publisher 2><Message File of Publisher 2>

<Publisher n Name><Publisher n Identifier><Channel List for Publisher n><Resource File of Publisher n><Parameter File of Publisher n><Message File of Publisher n>

The channel list for each publisher is a list of channels. The channel list format is specified in the publisher examples in section 3.1.1.2.

The publisher table is saved on the server's disk and is permanent. Adding or removing entries in this table can only be executed by the server or some automatic configuration tool provided by the server.

The server reads the table from disk at start up and loads it into memory for fast processing and lookup. The client MAY be able to change some information in the memory but cannot touch the information saved on disk. A changed memory snapshot can only be applied toward the copy on disk through the EvtRpcAssertConfig method (as specified in section 3.1.4.29) or EvtRpcRetractConfig (as specified in section 3.1.4.30).

The server can also add access control of the publisher table entry, or the server MAY define the access rights for the table entry. By doing this, the server can control the client access rights to the publishers in the table. For example, the server can set the publisher 1's information to be accessed only by administrators. If a non-administrator client wants to get the information for publisher 1, the server can deny access with an error.