Executes replication definition change requests directly at the primary database.
rs_send_repserver_cmd ‘<rs_api>’
Contains the replication definition Replication Command Language (RCL) command and parameters you specify for rs_send_repserver_cmd. <rs_api> is a <varchar> parameter with a maximum length of 16370 bytes for Adaptive Server, 4000 bytes for Oracle, and 8000 bytes for Microsoft SQL Server.
Enclose <rs_api> in single quotes, and replace each single quote inside the string with two single quotes.
If the parameter length for <rs_api> is too short for a create or alter replication definition request, you can split the request into two or more requests.
Execute the “authors” alter replication definition request at the primary database to drop the address, city, state, and zip columns:
exec rs_send_repserver_cmd ‘alter replication definition authors drop address, city, state, zip’
If a replication definition RCL is longer than the maximum length allowed for <rs_api>, you can split the request into two or more requests.
exec rs_send_repserver_cmd ‘alter replication definition authors drop address, city’ go exec rs_send_repserver_cmd ‘alter replication definition authors drop state, zip’
In this example, you need to enclose “authors” in double quotes, and ‘off’ in two single quotes:
exec rs_send_repserver_cmd ‘alter replication definition “authors” replicate sqldml ‘‘off’’’
Before you use rs_send_repserver_cmd at the primary database, use admin verify_repserver_cmd to verify that you can execute the replication definition request successfully at the Replication Server.
Replication Server supports rs_send_repserver_cmd for these replication definition commands:
alter replication definition
create replication definition
drop replication definition
alter applied function replication definition
create applied function replication definition
alter request function replication definition
create request function replication definition
Besides Adaptive Server, Replication Server extends support for rs_send_repserver_cmd to supported versions of these non-ASE databases: Microsoft SQL Server and Oracle. See the Release Bulletin for Replication Agent for the supported database versions.
When you execute rs_send_repserver_cmd at the primary database, the Replication Agent sends the RCL command stored in <rs_api> to the Replication Server, which then executes the RCL command. This ensures that Replication Server replicates the primary data with the proper replication definition version—primary data before the rs_send_repserver_cmd is replicated with the old replication definition version, while primary data after the rs_send_repserver_cmd is replicated with the new replication definition version.
You do not always need to issue replication definition change requests directly from a primary data server. For example, you can execute the alter replication definition request directly from the primary Replication Server in these situations:
If there is no subscription to the replication definition
If there are subscriptions to the replication definition, but there is no data in the primary database log for the table or stored procedure
If you are adding or dropping a searchable column to or from a table replication definition
If you are adding or dropping a searchable parameter to or from a function replication definition
If you are altering a replication definition to turn Dynamic SQL on or off
As Replication Server accepts all commands that Replication Agent sends to Replication Server, you must control access to rs_send_repserver_cmd at the primary database.