Disk-based messages

The recovery database stores disk-based messages. Make disk-based messages available at the process level. The overall memory limit, MSGSPACELIM, is specified in megabytes. It indicates the amount of memory that the process allocates for message data before storing messages to the recovery database. If the MSGSPACELIM field is 0, then no memory is allocated.

A memory leak happens if:

  • One or more outbound protocol threads go down.
  • Disk-based Queuing for the process was not selected.

To prevent this leak from causing the system to cease operating, the post-translate queue depths and virtual memory usage are monitored.

This is configured in the Network Configurator's Process Configuration dialog box.

Recovery database message flags

  • MSG_FLAG_KEEPONDISK

    Set when a message is created. This is used to keep message data on disk, in the recovery database, instead of in memory (RAM). It operates the same way as using the recovery database for recovery purposes; after being set, it remains in effect until the message leaves the engine, or when message delivery is successful.

  • MSG_FLAG_USERDB 0x00008000

    Used to store messages for recovery purposes.

    After a message is marked for recovery, it is backed by the recovery database throughout its life in the engine.

    The recovery database backs up the thread and process queues. If an engine process or thread stops running, then it retains the message data from the recovery database when the thread or process is restarted.

  • MSG_FLAG_ISONDISK 0x00001000

    The message is kept on the hard disk, and not in the recovery database.