Memory Management

Oracle Health Insurance applications consist of a cluster of nodes to which requests are distributed. A single node processes multiple user requests on different threads. These threads share a single memory space.

If a single thread starts using too much memory, the other threads on that same node are impacted. On the other hand, if a node runs out of memory, the node may crash with an out-of-memory error, resulting in service loss. An out-of-memory of a single node may impact the stability of the complete cluster.

Before the actual out-of-memory happens, the performance of the node goes down considerably.

Because of the severe impact, a node must always have sufficient free memory.

Oracle Health Insurance applications have built-in guardrails that prevent from happening an out-of-memory situation.

Memory State

Every node monitors its own memory state. At any point of time, the memory state has one of the value from the following:

Table 1. Memory State
State Meaning Application HealthCheck Status Restrictions

Normal

Sufficient free memory is available.

200

None

Low

The free memory is below the threshold set by the system property ohi.system.memory.threshold.low

429, informs the load-balancer or client programs that no new requests should be sent anymore.

No new background processing tasks are started.

Lower

The free memory is below the threshold set by the system property ohi.system.memory.threshold.lower

429, informs the load-balancer or client programs that no new requests should be sent anymore.

Same restrictions like the Low state. In addition, new HTTP IP/API requests are rejected with status 429.

Critical

The free memory is below the threshold set by the system property ohi.system.memory.threshold.critical

The system now approaches an out-of-memory situation.

429, informs the load-balancer or client programs that no new requests should be sent anymore.

Same restrictions like the Lower state. In addition, existing requests are terminated.

In a correctly configured cluster with proper work distribution, the Critical memory state should never be encountered.