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. See “admin verify_repserver_cmd”.
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
WARNING! 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.
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, admin verify_repserver_cmd, sysadmin skip_bad_repserver_cmd