The source database startup parameter, -pica, sets the size (in Kb) of an internal message queue in shared-memory to be used between the database server and the replication server. It contains notifications that the database has just completed writing to an AI block and holds these on a queue for the RPLS process to send through to the listening RPLA. The DSRUTIL monitor metric "Repl Server behind Source db" is all about latency between the source database writing out AI blocks and the ability of the RPLS process to send these messages through to the agent(s) for processing. For further information refer to Article:
It is important to set the size of -pica properly, when this queue fills it causes the source database to stall.
When the Replication Server queue (RPLS-Q) is full, any process trying to attach to database shared memory stalls. An example of this situation is outlined in Article
Contention with replication server over PICA queue has been further enhanced in OpenEdge 11.7.5, 12.0. For further information refer to Article:
Maximum value for -pica :
The database -pica queue (RPLS-Q) is the mechanism which allows the source and targets to be asynchronous.
The maximum RPLS-Q size varies by version:
256 (9.1E, 10.0B, 10.1A), 1024 (9.1e04), 512 (10.0b05), 8192 (10.1A02, 10.1B01), 1000000 (10.2B08, 11.2, and 11.3)
To understand the best Replication Communication Area size for the environment, refer to Article:
If the replication source is managed by the AdminServer, values higher than 8192 can be used since OpenEdge 11.6.3, 11.7.0, otherwise refer to the workaround described in Article:
Monitoring the RPLS-Q:1. With PROMONThe IPC queue (-pica) can be monitored using PROMON (options
R&D >
1 >
16) against the source replication enabled database.
Example:
Start a PROMON session against the source database
PROMON > R&D > 1. Status Displays > 16. Database Service Manager
Status: Database Service Manager
Communication Area Size : 1000000.00 KB
Total Message Entries : 9142822
Free Message Entries : 914
Used Message Entries : 9141908
Used HighWater Mark : 9142820
Area Filled Count : 14
Service Latch Holder : -1
- Used HighWater Mark: indicates message entries have risen to the value recorded at some time due to for example network latency or insufficient bandwith over a transaction activity peak, it does not necessarily indicate the current situation or how often it occurred.
- The Area Filled Count indicates over the time-period of the metric gathering source database performance was affected due to restricted available pica queue entries, when Free Message Entries in the message queue dropped to 0 and the source database stalled until blocks were processed against the target database freeing up pointers in the queue or the replication server is terminated.
- This menu has been further enhanced in later versions. Refer to Article: Enhanced Replication Database Service Manager queue entries
While the source database -pica queue size can be further increased to compensate periods when the AIW is queuing messages faster than the RPLS can read AI blocks to send to the target. These metrics indicate a re-visit to assisting the replication server's workload during peak transaction activity by:
- improving network bandwidth,
- target server performance and
- target database tuning.
2. With _DbServiceManager VST
Since OpenEdge 11.6 the _DbServiceManager VST can be used to programatically monitor these values. Refer to Article: