Products | Versions |
---|---|
TIBCO Adapter SDK | - |
Not Applicable | - |
Resolution:
The memory allocated by malloc() will not be released to some
UNIX OS even if free() is called. As stated in UNIX programming
FAQ and below web links. Please research internet for more
information.
<<<
http://mail.gnome.org/archives/gtk-list/1999-March/msg00576.html
...
Which is not a problem of RV or SDK, rather it is a problem of UNIX.
Under UNIX, when you free() memory, it is not released to the OS.
The size of your process won't ever shrink, it can only increase.
...
http://www.faqs.org/faqs/C-faq/abridged/
>>>
However, the subsequence malloc()/new will use the freed/deleted
memory first, until freed memory already allocated to the application
are no longer sufficient for new/malloc(). This is why it's a "high water mark"
symptom, which can only be reversed by restarting your adapter.
To resolve the issue, need investigate and determine what is the real cause of the problem.
For instance, in a scenario where an SDK adapter is receiving messages at an extremely higher rate than the adapter can process, a great deal of memory is allocated to queue the incoming messages by RVD before they are delivered to the RVD client, i.e. an SDK adapter.
There will resources contention one way or the other, as sufficient resources
are not put in place to achieve the processing capacity that the adapter is intended for.
User may consider getting much higher speed processors or more machines, using multiple RVCMQ members on separate processors for load balancing or implement
additional program logic to communicate with the sender to slow down or other measures.