After you set nrm_thread to ‘on’, use the exec_nrm_request_limit parameter with configure replication server or alter connection to specify the total amount of memory available to RepAgent Executor thread for the message queue the NRM threads. If the total amount of memory used by commands on the message queue is larger than than what you specify with exec_nrm_request_limit, the RepAgent Executor thread sleeps,and waits for memory to become available. As the NRM thread processes commands on the message queue, it frees up the memory for the RepAgent Executor thread. For example, to set exec_sqm_nrm_request_limt to 1GB for the connection to the pubs2 database in the SYDNEY_DS data server:
alter connection to SYDNEY_DS.pubs2 set exec_nrm_request_limit to ‘1073741824’
For exec_nrm_request_limit:
Default:
32-bit – 1,048,576 bytes (1MB)
64-bit – 8,388,608 bytes (8MB)
Maximum – 2,147,483,647 bytes (2GB)
Minimum – 16,384 bytes (16KB)
After you change the configuration for exec_nrm_request_limit, suspend and resume the Replication Agent. To suspend and resume:
RepAgent for Adaptive Server, execute in Replication Server; sp_stop_rep_agent and then sp_start_rep_agent.
Replication Agent for supported non-ASE databases; execute suspend and then resume in Replication Agent.