SAP Replication Server 15.7.1 SP303 was released in March, 2016. Have you had a chance to try some of the new features? If not, review this post for a quick overview of several methods we introduced in SP303 to help you avoid and address issues caused by a missing replication definition version.
And here’s how it works …
The proper way to modify a replication definition is to execute the rs_send_repserver_cmd stored procedure at the primary database with the primary table locked. In the past, you had to lock the primary table by using the corresponding database command. For example, if you want to modify the replication definition called authors for the primary SAP ASE table authorinfo, you need to run the following commands:
begin transaction
lock table authorinfo in exclusive mode
exec rs_send_repserver_cmd ‘alter replication definition authors drop zip’
commit tran
Now if you are working with a primary SAP ASE database, you can also lock the primary table with a new parameter called @ptable in this stored procedure. For instance, the following is equivalent to the above example.
exec rs_send_repserver_cmd ‘alter replication definition authors drop zip’, authorinfo
Locking the primary table when executing the rs_send_repserver_cmd stored procedure ensures the new replication definition version is created either before or after a transaction. This is especially important when there are large or long-running transactions on the primary database. If the replication definition is altered while the transaction is in progress, a replication definition version may be dropped from the system before the data associated with it can be processed by SAP Replication Server. This may result in the shutdown of the Data Server Interface (DSI). To avoid such issue, lock the primary table when you modify a replication definition.
Note that the @ptable parameter is available only when the primary database is SAP ASE. For other database types, please lock the primary table by using the corresponding database command as shown above. Just make sure the primary table is locked when you modify a replication definition at the primary database.
You might have already started wondering what if …
“Somehow I cannot lock the primary table when the replication definition commands are being executed.”
“I need to modify a replication definition directly within SAP Replication Server.”
Now you have another option, which is keeping all old versions in the system by using the new parameter, preserve_repdef_versions, in the configure replication server command within SAP Replication Server. For example,
Configure replication server
set preserve_repdef_versions to ‘on’
Set the value of the preserve_repdef_versions parameter to on to keep old replication definition versions in the system. This way, if you modify a replication definition, older versions are not deleted from the system unless you drop them manually.
With the value of preserve_repdef_versions set to on, if you no longer need an old replication definition version, you need to remove it from your system by using the drop replication definition command.
For example, let’s drop the version 0x010100660000035f for the authors replication definition.
drop replication definition 0x010100660000035f for authors
If you forgot to lock the primary table when executing the rs_send_repserver_cmd stored procedure, or if you executed the alter replication definition command directly within SAP Replication Server without setting the value of preserve_repdef_versions to on, you might run into missing replication definition version issues. In this case, you can recreate the missing replication definition version:
create replication definition <repdef_version_id> for <replication_definition> as <repdef_version_id_to_be_copied>
Please don’t use this command to create the newest replication definition version, which is not allowed. The purpose of this command is to recreate replication definition versions dropped from the system while relevant data is still in the replication system.
alter replication definition authors add zip
This alteration creates a new version of the authors replication definition, which is 0x010400660000035f. This version of replication definition is identical to the missing version 0x010200660000035f.
create replication definition 0x010200660000035f for authors as 0x010400660000035f
The missing version 0x010200660000035f is recreated in the system.
drop replication definition 0x010200660000035f for authors
alter replication definition authors drop zip
This alteration creates a new replication definition version of 0x010500660000035f. It should be identical to the version of 0x010300660000035f.
Run the rs_helprepversion command to review the creation date of a replication definition version to help you decide whether a particular version is old and can be safely removed from the system.
rs_helprepversion authors
go
Repdef Version Repdef Version Active Active Create
Name ID Inbound Outbound Date
-------------------------------------------------- ------------------------------- ----------- -------------- -----------------------------------------
Authors 0x0102006500000065 Yes Yes Feb 4 2016 2:53:25.157219PM
rs_drp010100650000006556b3d665 0x0101006500000065 No No Feb 4 2016 2:51:49.076000PM
rs_drp010000650000006556b3d605 0x0100006500000065 No No Feb 4 2016 2:50:57.716000PM
To summarize, always alter, drop, or create a replication definition at the primary database by executing the rs_send_repserver_cmd stored procedure with the primary table locked. Otherwise, set the value of the preserve_repdef_versions parameter to on within SAP Replication Server. If you fail to do both and run into an issue caused by a missing replication definition version, recreate it with the create replication definition command. For more information about the enhanced replication definition version, please check out the SAP Replication Server Reference Manual.
You can also find out more new features introduced in SAP Replication Server 15.7.1 SP303 in the Replication Server New Features Guide.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
35 | |
25 | |
14 | |
13 | |
7 | |
7 | |
6 | |
6 | |
5 | |
5 |