Synchronizing Buffers

Use

For performance reasons, data that is not changed very often in the database is held in internal buffers in the SAP System. This data is accessed in these buffers instead of it being read from the database each time. If buffered data is changed, the relevant buffer contents must be invalidated.

The procedure used for this is called buffer synchronization.

Two software components are involved in controlling this synchronization:

  • Transport control program tp called by R3trans
  • the SAP System

Procedure

Each of these components has parameters controlling their behavior:

In the transport profile, the parameter buffreset can have the values 1 or 0. If the parameter is not specified explicitly in this file, tp takes the default value 1.

SAP System

Synchronization is controlled in the SAP System with the profile parameter rdisp/bufrefmode . This parameter controls whether:

  • The application servers of the SAP System write synchronization records ( sendon ) or not ( sendoff )
  • The various application servers react to synchronization records that they have written themselves ( exeauto ) or not ( exeoff ).

Values recommended for bufrefmode are:

  • Central system (only one application server):

bufrefmode = sendoff,exeauto

  • An SAP System with several application servers:

bufrefmode = sendon,exeauto

Also note the SAP profile parameter rdisp/bufreftime .

It regulates the intervals at which the application server is checked to see if buffered data has been invalidated. Only when each application server has read the entry for the invalidation of the data is the changed date the same throughout the SAP Systems.

Known Problems

When changed ABAP Dictionary objects are imported, transactions may terminate. The same can occur when the respective changes are made in the SAP System. The transport programs tp / R3trans should be regarded as an additional application server.

As a result of structural changes, an instance may regenerate an ABAP program due to nametab changes before being able to synchronize its own nametab buffer. At runtime (now with a current nametab), the table work area no longer matches the structure used at generation time. The program terminates with GETWA_CANT_CLEAR .

Solution

Postpone imports of transports with changed ABAP Dictionary objects to a time when there is not much system activity, for example at night.