Adjusting throughput by caching messages

When messages arrive, the Message Agent (dbremote) reads the messages and then stores them in cache memory until they are applied. This caching of messages prevents:

  • Rereading of out-of-order messages from the message system, which may lower performance on large systems. Caching of messages is useful when messages are being read over a WAN (such as Remote Access Services or POP3 through a modem).

  • Contention between database worker threads reading messages (a single threaded task) because the message contents are cached.

How messages are cached

Messages are stored in memory until they are applied by the Message Agent (dbremote) when one of the following conditions occurs:

  • The transactions are so large that they require multi-part messages.

  • The messages arrive out of order.

Specifying the message cache size

Use the Message Agent (dbremote) -m option to specify the size of the message cache. The -m option specifies the maximum amount of memory to be used by the Message Agent (dbremote) for holding messages. The allowed size can be specified as n (in bytes), nK, or nM. The default is 2048K (2M). When the specified cache memory usage is exceeded, messages are deleted.

The -m option is useful when you have a single consolidated database and a large number of remote databases. See the -m option in Message Agent (dbremote).

Example

The following command starts a Message Agent (dbremote) using 12 MB of memory as a message cache:

dbremote -c "DSN=SQL Anywhere 11 Demo" -m 12M
See also