RV: DrainQueue: out of memory.RV: TIB/Rendezvous Error Not Handled by Process: {ADV_CLASS="WARN" ADV_SOURCE="SYSTEM" ADV_NAME="RVD.DISCONNECTED"}

RV: DrainQueue: out of memory.RV: TIB/Rendezvous Error Not Handled by Process: {ADV_CLASS="WARN" ADV_SOURCE="SYSTEM" ADV_NAME="RVD.DISCONNECTED"}

book

Article ID: KB0089621

calendar_today

Updated On:

Products Versions
TIBCO Rendezvous -
Not Applicable -

Description

Resolution:
Description:
===========
The error message "DrainQueue: out of memory" indicates that client application has encountered an "out of memory" situation. The client API does not have enough memory to read messages from the RV daemon. The queue is maintained at the client level.  The client gets disconnected (ADV_NAME="RVD.DISCONNECTED) because this queue is the queue that drains the socket connected to the daemon. If the API cannot read messages from the daemon, it closes the connection with the daemon. This specific error happens only when the API tries to allocate memory and fails.

You might notice these errors even if the operating system reports that there is plenty of available memory.  This is because of the limitation of the operating system's (OS) memory-addressing mechanism for a 32-bit process. For example, on a HP-UX OS, a 32-bit process is limited to ~960MB.  Hence when the operating system reaches this address space limit, all the calls to allocate memory returns no memory causing above errors. Similarly, a 32 bit process on UNIX/Linux OS limit is ~3GB and for Windows OS it is ~2GB. You may check the exact limits with your OS vendor.

Usually during volume/ stress tests you may see such errors when publishing messages in a tight loop, where the publisher, listener and the rvd grows in CPU / Memory usage.

Environment:
===========
All Operating Systems and TIBCO/RV version

Issue/Introduction

RV: DrainQueue: out of memory.RV: TIB/Rendezvous Error Not Handled by Process: {ADV_CLASS="WARN" ADV_SOURCE="SYSTEM" ADV_NAME="RVD.DISCONNECTED"}