Poor performance and stable queue size increasing

Sometimes poor Replication Server performance is caused by the Stable Queue Transaction (SQT) cache size being too small. If the SQT cache is not big enough to hold all open transactions, transactions that cannot fit completely into the cache are processed one command at a time.

The inbound stable queues grow (more than 1MB) because Replication Server cannot process the transactions fast enough.

To solve this problem:

  1. Make sure the problem is not caused by orphaned transactions. For more information about orphaned transactions, see “Log truncation problems”.

  2. Find the optimal size for the sqt_max_cache_size and sqt_max_prs_size parameters for your application. You may want to increase the Replication Server default from 131072 bytes to 256 KB (262144 bytes). sqt_max_prs_size determines the memory available for pre-parsing of messages, a larger size will give a performance improvement. It should be at least as large as sqt_max_cache_size.

  3. Check the SQT cache size. If any of the following conditions are false, you may have an SQT cache that is too small. Check the sqt_max_cache_size and sqt_max_prs_size parameters:

  4. As long as these conditions above are not fulfilled, keep increasing the values for sqt_max_cache_size and sqt_max_prs_size parameters in the RSSD.

  5. Try to set the sqt_max_cache_size and sqt_max_prs_size parameters so that on the average about 20 transactions are closed at any one time. More than 20 closed transactions indicates the cache is larger than required, fewer than 20 indicates the cache is not large enough.

    1. Suspend the connection to the data server.

    2. Log in to Replication Server and run these commands:

      > configure replication server
      			set sqt_max_cache_size to ‘new_value
      > go
      > configure replication server
      			set sqt_max_prs_size to ‘new_value
      > go 
      
    3. To activate the new values, resume the connection. If you want to dump the SQT cache, use the sysadmin sqt_dump_queue command.