When to enable OpenEdge Replication logging ?
When Replication fails to start or in the event of replication failure after the RPLS and RPLA have started, should the immediate problem not be identifiable by analyzing the source, target and system log files, enhanced replication logging can be enabled.
To enable Replication logging since OpenEdge 11.7.2, 12.1
The logging level is configured in the
repl.properties configuration file, under the respective
[agent] and/or
[server] sections. This is the logging level used when the respective RPLS / RPLA initialises when the database is started. It can also be raised or lowered online by changing the verbose level in the properties file, but the RPLS / RPLA will need to be re-started with:
DSRUTIL -C restart [ server | agent ]
logging-level=2
Replication logging levels can also be changed while Replication is running for both the Replication Server and Agents, when they are running with the DSRUTIL command:
$ dsrutil dbname -C logginglevel [0,1,2,3]
Once logging is enabled or disabled on the fly, the new logging level remains in effect until Replication is either restarted or it is changed again online. When the Replication Server or Agent is restarted, the logging-level value set in the repl.properties file is used as outlined in the pre 11.7.2, 12.1 instruction below.
Enhanced Replication log files
With Replication Logging enabled, in addition to the respective source and target database log files, the following files are created the specific replication logging messages.
Replication Server or Agent startup:
- source: repl.server.startup.lg
- target: repl.agent.startup.lg
Replication Server or Agent logging:
- source: <source>.repl.server.lg
- target:<target>.repl.agent.lg
To enable Replication logging (pre OpenEdge 11.7.2, 12.0)
Open DLC/pmmgr.properties under the respective [replserv] and [replagent] sections add:
arguments=-logging 2
Example: Replication Properties for enhanced logging
[Server]
install-dir=c:\prgs\116
install-date=Fri Nov 15 17:55:48 2019
version=16.4
arguments=-logging 2 -asc 200
[Agent]
install-dir=c:\prgs\116
install-date=Fri Nov 15 17:55:48 2019
version=16.4
arguments=-logging 3
Replication
pmmgr.properties configuration changes require a database restart to be used, because the pmmgr.properties file is only read during database startup not when the replication server or agent starts up.
To verify Replication Logging is enabled
1. Replication Server or Agent startup log files record this information in the
"Executable" section
Example: repl.server.startup.lg
Executable
----------
Name : RPSERVER.EXE
Argument 1 : -logging
Argument 2 : 2
Argument 3 : -asc
Argument 4 : 200
Argument 5 : -db
Argument 6 : source
2. Parse the rpagent and rpserver process's command line for the 'logging' argument using Operating System utilities (tasklist / ps command)
Which Replication Database to restart?
When enhanced logging is only needed for the replication source
It is not necessary to shut down the target database only the source replication server:
When the
source.repl.properties under the [server] section is configured for:
- "agent-shutdown-action=normal", then it is still necessary to restart both the source and target databases to enable enhanced logging
- "agent-shutdown-action=recovery", then it is only necessary to restart the source database to enable enhanced logging. It is not necessary to shut down the target database. The RPLS will reconnect within configured timeouts to the RPLA which will be running in PRE-TRANSITION mode.
When enhanced logging is only needed for the replication target
It is only necessary to restart the target database to enable enhanced logging.
It is not necessary to shut down the source database only the source replication server. The source database will remain running provided there are enough available AI extents to record transaction notes generated by ongoing online transaction processing (OLTP):
$ proshut <target> -by
$ dsrutil <source> -C terminate server
$ dsrutil <source> -C RELWAITS
$ proserve <target> [+ database parameters] -DBService replagent
$ dsrutil <source> -C restart server