Consultor Eletrônico



Kbase P133583: How to define and what is -asc parameter for OpenEdge Replication
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   4/29/2011
Status: Verified

GOAL:

How to define -asc parameter for OpenEdge Replication ?

GOAL:

Where to set -asc with OpenEdge Replication?

GOAL:

What is -asc parameter ?

GOAL:

Where is the -asc parameter set?

GOAL:

How do I tell if I correctly set the -asc parameter?

FACT(s) (Environment):

All Supported Operating Systems
OpenEdge Replication 10.1x
OpenEdge Replication 10.2A
OpenEdge 10.1B
OpenEdge 10.1C
OpenEdge 10.2x

FIX:


The -asc parameter is an OpenEdge Replication specific parameter introduced in OpenEdge 10.1B and above. Although it is not documented, it's use is supported and may help with certain performance issues.

The -asc value governs how many AI blocks are sent to the target database before an acknowledgement is sent back from the replagent (RPLA) to the replserv (RPLS). It causes the Replication Server to wait for the Replication Agent to acknowledge receipt of and complete processing of 10 (AI) blocks. During the time it takes the Replication Server to wait for the acknowledgement, it is not processing AI blocks which could result brief periods of source database inactivity if the Database Service Queue (-pica) is full. In other words, the -asc value determines how often the Replication Server (RPLS) will wait for the Replication Agent (RPLA) to catch up.

By default the value for -asc is set to 10 AI Blocks. It can be set to any value between 10 and 500. If set to 501 specifically, the acknowledgement is essentially turned off.

A value of < 500 indicates the number of blocks at which the acknowledgement will occur.
A value of 501 instructs replication server to never wait for acknowledgment and constantly feed replication agent with AI blocks for agent to apply.

Setting -asc to a value higher than the default of 10 may have a positive impact on the overall OE Replication performance, as with higher -asc setting, there will be less TCP/IP packets sent between source and target database (i.e. between OE Replication Server and Agent). Setting -asc has no effect or impact on the replication synchronization point when a crash, shutdown or anything else unexpected happens. However, increasing the -asc value (say to 100) then just means that the packet is sent every 100 blocks instead of every 10. So if the network breaks between one batch of 100 and the next, we can't recognise the failure as quickly. Turning off this feature with -asc value 501, is going to mean that replication is totally reliant on the network layers informing the database manager of failure.
To monitor the performance of the replication processes use both replication monitor reviewing wait and recovery information and promon R&D 1, 6; if the Free Message Entries approaches 0 this is an indication of a performance problem.
Changes in the Replication Agent acknowledgements settings do not effect communication errors, they will still be posted as the occur in the database log files. They do not affect the updating of the *.replication.recovery files, synchronization or recovery synchronization process, or effect any other replication functions outside of communicating to the replication server.

The -asc setting can be changed in the $DLC/pmmgr.properties file. It is set under the REPLSERV section:

Example: pmmgr.properties

[replserv]
install-dir=< DLC >
install-date= Ddd Mmm YY HH:MM:SS YYYY
version=10.1x
arguments=-asc 100
[replagent]
install-dir=< DLC >
install-date= Ddd Mmm YY HH:MM:SS YYYY
version=10.1x

Once the value for -asc has been set, the source database needs to be stopped and restarted (it is not sufficient to simply restart the replication server) for the new arguments to be picked up.

To check if this parameter was successfully implemented, the current value of the -asc parameter can be verified using the DSRUTIL replication monitoring utility as follows:

- Run dsrutil against the source database >$ dsrutil source -C monitor

- Choose Replication Server Remote Agents
R. Replication server remote agents

- Choose the specific agent from the list
1. agent1

- Go to the second page of the display:

Server to agent load check interval: 100 blocks


The "repl.server.startup.lg" can also be parsed, when these arguments are actually in effect:

...
Executable
----------
Name : DLC/BIN/RPSERVER.EXE
Argument 1 : -asc
Argument 2 : 100
Argument 3 : -db
Argument 4 : source

As opposed to when the replication server is restarted after being terminated with "dsrutil source -C restart server", the [replserv] arguments=-asc 100 are not taken:
$ dsrutil source -C restart server
#repl.server.startup.lg

...
Executable
----------
Name : DLC/BIN/RPSERVER.EXE
Argument 1 : -restr
Argument 2 : -db
Argument 3 : source

and the replication monitor (above), will still show the value taken at initial source startup:
Server to agent load check interval: 10 blocks.