Salesforce

How does defer agent startup work?

« Go Back

Information

 
TitleHow does defer agent startup work?
URL NameP109682
Article Number000127574
EnvironmentProduct: OpenEdge Replication
Version: All supported versions
OS: All supported platforms
Question/Problem Description
How does defer agent startup work?
What happens when the defer-agent-startup time-out property expires?
What is the difference between the deferred agent startup and immediate agent startup modes for OpenEdge Replication?
Steps to Reproduce
Clarifying Information
Error Message
Defect NumberDocumentation Defect PSC00253339 / OE00231294
Enhancement Number
Cause
Resolution
The defer-agent-startup property is defined in the <source>.repl.properties file under the [Server] section.

When the defer-Agent-startup property is set to a valid non-zero value:

Replication is set to the deferred agent startup mode. Activity against the source database is allowed (except schema updates) once the source database is started and before the Replication Server contacts its configured Agent(s) as soon as the "Database connections have been enabled (10471)" message is posted once shared memory has initialised.

Before synchronization begins, if the Replication Server (RPLS) cannot connect to its configured Agent(s) on the first connection attempt within the configured connect-timeout, it will go into a deferred agent startup state. While in this state, the RPLS will retry every five minutes to attempt the Replication Agent (RPLA) connection again, until the defer-agent-startup configured time expires or "DSRUTIL source -C canceldefer" is instructed. Once all Agents are connected, startup, initialization, and synchronization are performed. If you do not want to wait for the five minute intervals between connection attempts to the Agent(s), it can be forced by using the "DSRUTIL source -C startAgent" function. While the defer-Agent-startup property is in effect, clients are allowed to use the source database while AI files fill with their transaction activity. The RPLS will remain in this state until all Replication Agent(s) are connected or until the time-out specified in the defer-agent-startup expires.

Once the defer-agent-startup time out expires or is cancelled with "DSRUTIL source -C canceldefer", the RPLS will shutdown but the source database will continue operations until all the AI extents have filled up.  This will eventually happen if left unattended as the AI files will remain in LOCKED status (reserved until they are applied to target database and therefore not available for re-use), because the RPLS is no longer running once the defer-agent-startup time-out has expired, even if the target database is subsequently re-started. In such cases, either the RPLS needs to be restarted with the "DSRUTIL source -C restart server", or the source database restarted.

The defer-agent-startup property is only used on the initial startup of the Replication Server connection and subsequent synchronisation with the Replication Agent(s).

When the defer-Agent-startup property is set to 0:

Replication is set to the immediate agent startup mode. This is the default mode if the defer-agent-startup property is undefined in the <source>.repl.properties file.

The Documentation is incorrect concerning the immediate agent startup mode. It states that source database activity is not be allowed until the very end of the Replication synchronization process.
"The default immediate agent startup mode does not allow source or target database activity until both the Replication Server and Agent have completed their startup and initialization phases."
A Documentation Defect (PSC00253339 / OE00231294) has been opened for review but has not been corrected in the OpenEdge Documentation sets to date (OpenEdge 11.5).

The immediate Agent startup mode simply requires that the Replication Agent(s) start before the length of time set for the connect-timeout Agent property has expired. The connect-timeout specifies how many seconds the Replication Server will wait for connection to the Replication Agent before the Replication Server shuts itself down. In other words, the Replication Server does not attempt to re-connect to the Replication Agent after the first connection attempts within the connect-timeout period. It simply shuts down and will need to be restarted when the target database is running with the Replication Agent listening and network communications between the two allow the RPLS to establish communications with the RPLA so that synchronisation can proceed, complete and normal operations resume.

In both the defered and immediate Agent startup mode, database connections are allowed against the source database as soon as "(10471) Database connections have been enabled." ERO connections to the Target database however, cannot ensue until synchronisation has completed.
Workaround
Notes

References to Other Documentation:

OpenEdge Replication: User Guide "Setting Up OpenEdge Replication", "Getting Started", "Choosing the OpenEdge Replication agent startup mode"

Keyword Phrase
Last Modified Date9/13/2015 5:39 AM

Powered by