Periodic Cache Replication‌

Data stored in the cache can be updated periodically. The period is set using the parameter updatePeriod. After each period, each DMZ server asks its inner server if there have been updates. Typically, a partial update is started then. If more time than the configured fullUpdatePeriod has passed, a full update is executed. If at the start of a partial update a restart of the inner server or its Authentification Service is detected, a full update is executed instead. In a partial update, version numbers govern which data needs to be updated. For this purpose, it is first determined which partner IDs are affected and whether the change affects the record of the partner, the channels or the certificates. Therefore, the amount of data is minimal and the time taken to execute the update is rather small. This means that even periods of about a minute are possible. A period less than three seconds or negative values are ignored and the default value is used instead.

The services/message.log stores the time a partial update occurred:

... SYSTEM:AUTH:MSGAUTHSERVICE: starting partial update of local cache database for partnerIDs: []

If the ID list is empty, no data is copied. Only version numbers will be updated.

If updatePeriod equals 0, no update is executed while running. Not even a full update after the fullUpdatePeriod and also not after a restart of the inner server or if the current date has changed. The immediate update after a syncRequired message from the inner server is also not executed. The DMZ cache will not be altered after the initial update on DMZ start.

If updatePeriod is set to a very large value, that period will never be reached in practice, but the immediate update after syncRequired is executed if ignoreNotification is not set to true. In that case, an update is executed only if the DMZ server sends requests to the inner server and relevant changes exist, possibly filtered by channel types according to section Restricted Caching by Channel Types ('cachedChannelTypes')‌. If an update is started in this manner, a full update is executed if in the meantime the current date changed, the inner server has been restarted or fullUpdatePeriod lapsed.

If fullUpdatePeriod is set to 0 (default value), full updates are only executed if an update is scheduled anyway (see above) and if either the current date changed or the inner server has been restarted. If fullUpdatePeriod has a very small positive value, e.g. 1, all updates are executed as a full update. This is not recommended. When those updates occur is governed by the rules described above, not by the setting of this parameter.