Why the EMS server does not release the memory back to OS after a huge backlog of messages which are eventually consumed by the client applications?

Why the EMS server does not release the memory back to OS after a huge backlog of messages which are eventually consumed by the client applications?

book

Article ID: KB0090207

calendar_today

Updated On:

Products Versions
TIBCO Enterprise Message Service -
Not Applicable -

Description

Resolution:
What you are observing is the result of high water-mark that is present on most of UNIX platforms.

That is, the process memory usage shown is the highest level ever achieved. Although application frees memory when it is no longer using
it, the freed memory is not actually released back to OS. However, that memory is available for reuse by EMS process. So, if you publish new
messages, the tibemsd process size should not increase as long as the amount of memory needed for the new message is lower than the previous peak.

In our tests, we observed that for Solaris/HP-UX systems, memory (although freed) is not released back to the kernel, and,  by contrast, on Windows we see the memory freed being returned  to the kernel.

Issue/Introduction

Why the EMS server does not release the memory back to OS after a huge backlog of messages which are eventually consumed by the client applications?