You can address Heap bloat using the following steps:
  1. Identify and address the memory leaks in an ABL application. Heap is likely to grow or bloat when the ABL session grows over time because of memory leaks.
    You can use the following tools to help you identify memory leaks in an ABL application:
    1. Iceberg
    2. LeakCheck class
  2. Reconfigure the PAS for OpenEdge instance to distribute the memory use across multiple PAS for OpenEdge agents by using fewer ABL sessions per agent and more agent processes per instance. This distribution is achieved by reducing the maxABLSessionsPerAgent and increasing the maxAgents.

    In other words, if Out of Memory Reaper is targeting the PAS for OpenEdge agents, reduce the potential for excessive memory consumption by reducing the number of ABL sessions per agent.

  3. Pre-reap the PAS for OpenEdge agents. Use OS system utilities, such as top on Unix OS, to periodically read how much memory is being used by the PAS for OpenEdge agent. Initiate a graceful shutdown of the PAS for OpenEdge agents that have bloated.

    For more information, see OEMANAGER utility.

  4. Use the session life-cycle management properties of the PAS for OpenEdge agent to trigger automatic trimming of an ABL session. This action will not necessarily help the Heap bloat problem, but will automatically free up memory within the Heap, which the malloc API will then have available to meet memory requests.

    For more information, see Optimize PAS for OpenEdge for continuous operations.