Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
HakanHaslaman
Product and Topic Expert
Product and Topic Expert

ADS uses the client engine to connect to the destination. A background process is triggered when a new record is put into the replication queue, or when a specific interval has been reached after a previous connection failure, or when you manually trigger the process (adsprocessreplicationqueue). The target only gets SQL commands via the replication, so there's nothing it can detect that a replication is completely processed.

  1. Every time a record is added to the replication queue (when it is modified and passes the filter if one exists), it triggers a "process replication queue" request. If, though, the target was offline, then the length of time "depends". A replication sweep thread periodically checks for items to process. If it succeeds in processing items, it increases the frequency. A failure to process items reduces the frequency. I believe it ranges between 2 minutes and 1 hour. But you can force the replication to "try now". The system procedure sp_ProcessReplicationQueues will do that. Or you can right click on SUBSCRIPTIONS in ARC and choose "Process Replication Queues" to do the same thing.
  2. I don't think there is a simple mechanism for telling the target that replication is finished. One way to do this would be to write a monitoring process that runs at the source database and checks to see if the replication queue has any records in it. It could report to the target (e.g., via a stored procedure) when the queue is empty.