The table buffers reside locally on each application server in the system. This makes it necessary for the buffer administration to transfer all changes made to buffered objects to all the application servers of the system. In the following figure you can see the basic model of the relation between a program, a table buffer in the application server and the database.
If a buffered table is modified, it is updated synchronously in the buffer of the application server from which the change was made. The buffers of the whole network, that is, the buffers of all the other application servers, are synchronized with an asynchronous procedure.
Entries are written in a central database table (DDLOG) after each modification on a buffered table. Each application server reads these entries at fixed time intervals.
If the system finds entries that show a change to the data buffered by this server, this data is invalidated. If this data is accessed again, the system reads it directly from the database.
To prevent a table being constantly loaded to the buffer and then immediately invalidated there, the table can only be loaded again to the buffer after a waiting time following invalidation.
The advantage of this method over a synchronous method (where the network immediately reports each change to buffered data of one server to all the other servers) is that the load on the network is kept to a minimum. If the buffers are synchronized after each modification, each server has to report each modification to a buffered table to all the other servers using the network. This has a negative effect on performance.
The disadvantage of this method as compared with synchronous updating is that the data is not up-to-date during the time interval between two synchronizations.
The asynchronous buffer synchronization method restricts the number of tables that can be buffered. You must note the following when setting the table buffering:
For central systems with only one application server, it is not necessary to fill the DDLOG table with the modifications on buffered tables. The INSERT DDLOG statements can be switched off by setting profile parameter 'rdisp/bufrefmode' to 'sendoff,exeauto'.