Sun Java System Directory Server Enterprise Edition 6.0 Installation Guide

Troubleshooting Broker Memory Settings

During normal operation, the Message Queue broker consumes a modest amount of memory. However, during idsync resync operations, the broker’s memory requirements increase. If the broker reaches its memory limit, undelivered messages will accumulate, the idsync resync operation will slow down dramatically (or stop completely), and Identity Synchronization for Windows might be unresponsive afterwards.

When the broker enters a low-memory state, the following messages will appear in its log:

[03/Nov/2003:14:07:51 CST] [B1089]:
In low memory condition,
Broker is attempting to f
ree up resources [03/Nov/2003:14:07:51 CST] [B1088]:
Entering Memory State [B0024]:
RED  from previous state [B0023]:
ORANGE - current memory is 1829876K,
90% of total memory

To avoid this situation:

ProcedureTo Recover from Out of Memory Problems by the Broker

  1. Verify that the broker has a backlog of undelivered messages by examining its persistent message store in the appropriate directory.

    • On Solaris: /var/imq/instances/psw-broker/filestore/message/

    • On Linux: /var/opt/sun/mq/instances/isw-broker/filestore/message/

    • On Windows: installation_root\isw- machine_name\imq\var\instances\isw-broker\filestore\message\

  2. Each file in this directory contains a single undelivered message. If there are more than 10000 files in this directory, then the broker has a backlog of messages. Otherwise, there is another problem with the broker.

  3. The message backlog is probably only log files related to an idsync resync operation and you can safely remove them.

  4. Stop the Message Queue broker as described in Starting and Stopping Services

  5. Remove all files in the persistent message store. The easiest way to remove these files is by recursively removing the message/ directory and then re-creating it.

  6. Restart the Message Queue broker.

    Follow the instructions in this section to ensure the broker does not run out of memory again.