Loading triggers

Build 1501 on 14/Nov/2017  This topic last edited on: 29/Aug/2014, at 13:56

All the active triggers are stored in the database in the system table gn_TriggerTable. When a trigger is added or removed the system inserts or deletes it from the table, and then records the current data/time in another new database table called gn_ModifiedTable.

All the application and Back4 servers connected to the same database load the triggers from gn_TriggerTable when they need them (i.e. every time they perform a modification of some kind - object creation/modification/deleting/unspiking). They use the last modification date/time read from gn_ModifiedTable to avoid re-loading the triggers if they have not been modified since the last load, and (as a further optimization) check gn_ModifiedTable only every XX seconds. 'XX' is the value of the new 'TriggersDBCheckPeriod' parameter in ServerConfig:

  <ServerConfig

    xmlns="http://www.teradp.com/schemas/GN4/1/ServerConfig.xsd"

    DatabaseAccessInterval="1000"

    PublishRetryNumber="3"

    PublishRetryInterval="1000"

    TempDir=""

    PrefetchItemCount="100"

    PrefetchFulltextItemCount="10"

    ResultsCachePurgePeriod="300"

    TreeCachePurgePeriod="60"

    AlivePeriod="300"

    TriggersDBCheckPeriod="10">

  . . .

The default value is 10 seconds.