Creating the rs_marker stored procedure

Replication Server executes the rs_marker system function in a primary database during subscription materialization. The function works by executing a replicated stored procedure that is also named rs_marker. The procedure checks to make sure it is marked replicated and issues a warning if it is not. Because the rs_marker stored procedure is replicated, Adaptive Server records its executions in the transaction log for the database, where they can be read by RepAgent.

Sybase Central and rs_init create rs_marker when you designate a database as having primary data. It is not required in databases that have no primary data. The exact text of the stored procedure can always be found in rs_install_primary.sql or rsinssys.sql in the scripts directory of the Sybase release directory.

Here is a sample text:

create procedure rs_marker
    @rs_api varchar(255)
as
    declare @rep_constant smallint
    select @rep_constant = -32768
    if not exists (select sysstat from sysobjects
      where name = 'rs_marker'
        and type = 'P'
        and sysstat & @rep_constant != 0)
    begin
      print "Have your DBO execute
      ''sp_setreplicate'' on the procedure
      ''rs_marker''"
 return(1)
 end

rs_marker does not modify data in the database. Its purpose is to execute so that it can be recorded in the transaction log.

If rs_marker is not marked as replicated, you can mark it with sp_setreplicate:

sp_setreplicate rs_marker, 'true'