Receiving message tasks

The Message Agent (dbremote) performs the following tasks when it receives messages:

  • Polling for incoming messages   To check for new messages that have arrived at a database, the Message Agent (dbremote) polls for new messages. See Adjusting the polling interval to check for new messages.

  • Reading the messages   When messages arrive, they are read and stored in cache memory by the Message Agent (dbremote) until they can be applied. See Adjusting throughput by caching messages.

    If a message is missing and the Message Agent (dbremote) is running in continuous mode, then the Message Agent (dbremote) waits for the message to arrive in a subsequent poll. The number of polls that Message Agent (dbremote) waits is referred to as its patience, and is specified by the -rp option.

    • If the missing message arrives before the Message Agent (dbremote) patience expires, then the missing message is added, in the correct order, to the cache.

    • If the missing message does not arrive and the Message Agent (dbremote) patience expires, then the Message Agent (dbremote) sends a request to re-send the message from the publisher database.

    Messages continue to be read and added to the cache until the cache memory usage is exceeded. When the cache memory usage specified using the -m option is exceeded, messages are deleted.

    See Adjusting the requests to resend messages.

  • Applying the messages   The Message Agent (dbremote) applies the messages, in the correct order, to the subscriber database. See Adjusting the number of worker threads.

  • Waiting for confirmation that the messages are applied on the subscriber databases   Once the message has been received and applied at the subscribed database, confirmation is sent back to the publisher. When the publisher Message Agent (dbremote) receives the confirmation, it keeps track of the confirmation in a system table. See Understanding the Guaranteed Message Delivery System.