Library Version 18.1.25

DbEnv::repmgr_set_incoming_queue_max()
Prev | Chapter 11. Replication Methods | Next

## DbEnv::repmgr_set_incoming_queue_max()

    #include <db_cxx.h>
    int
    DbEnv::repmgr_set_incoming_queue_max(u_int32_t gbytes,
    u_int32_t bytes);

The `DbEnv::repmgr_set_incoming_queue_max()` method sets a byte-count limit on the amount of dynamic memory used by the Replication Manager incoming queue. When the incoming queue reaches this limit, incoming messages are dropped until the Replication Manager processes some of the messages already in the queue. Any dropped messages are automatically rerequested at a later time. This limit is not a hard limit, and the message that exceeds this limit is the last one to be enqueued.

The Replication Manager incoming queue has a default size limit of 100MB. We recommend a minimum size limit of 32MB.

If the values passed to the `DbEnv::repmgr_set_incoming_queue_max()` method are both zero, then the incoming queue size limit is turned off.

We recommend increasing the incoming queue size limit in the following cases:

- Master leases are enabled, particularly if there are many DB_REP_LEASE_EXPIRED errors.

- Clients are far behind the master.

- The master is using bulk transfer to send groups of records to the clients in a single network transfer.

- The master has blob databases and is performing many blob operations on them.

- The master is performing intensive write operations.

The database environment's replication subsystem may also be configured using the environment's DB_CONFIG file. The syntax of the entry in that file is a single line with the string "repmgr_set_incoming_queue_max", one or more whitespace characters, and the limit specified in two parts: the gigabytes and the bytes values. For example, "repmgr_set_incoming_queue_max 0 104857600" sets a 100 megabyte limit. Because the DB_CONFIG file is read when the database environment is opened, it will silently overrule configuration done before that time.

The `DbEnv::repmgr_set_incoming_queue_max()` method configures a database environment, not only operations performed using the specified DbEnv handle.

The `DbEnv::repmgr_set_incoming_queue_max()` method may be called at any time during the life of the application. If the limit is reduced, messages already in the queue are not removed, but further incoming messages are not added to the queue until its size drops below the new limit.

The `DbEnv::repmgr_set_incoming_queue_max()` method either returns a non-zero error value or throws an exception that encapsulates a non-zero error value on failure, and returns 0 on success.

### Parameters

#### gbytes

The gbytes parameter specifies the number of gigabytes which, when added to the bytes parameter, specifies the maximum size limit of the incoming queue.

#### bytes

The bytes parameter specifies the number of bytes which, when added to the gbytes parameter, specifies the maximum size limit of the incoming queue.

### Class

DbEnv

### See Also

Replication and Related Methods

Prev | Up | Next
DbEnv::repmgr_set_ack_policy() | Home | DbEnv::repmgr_set_socket()