Why does"Message Memory Usage" is high even thoughPending Messages = 0 andPending Message Size = 0 from server info? How is this possible and where the memory is used?

Why does"Message Memory Usage" is high even thoughPending Messages = 0 andPending Message Size = 0 from server info? How is this possible and where the memory is used?

book

Article ID: KB0092299

calendar_today

Updated On:

Products Versions
TIBCO Enterprise Message Service -
Not Applicable -

Description

Resolution:
Every connection allocates a buffer that is used to construct messages out from the socket.
This buffer size will be of the size of the biggest message received on that connection. This buffer size is accounted
in the Message Memory Usage, which cause the discrepancy between pending count/size and Message Memory Usage).
This buffer is freed when the connection goes away.

So even if there is no pending message, as long as the connection is there, it can show the message memory usage.

Try the following test and this will prove the above.

1)  you send 2 messages to a queue with two connections, one of 1MB and one of 5MB, you will see in info:

Pending Messages:         2
Pending Message Size:     6.0 MB
Message Memory Usage:     12.0 MB out of 512MB

See that MMU is 12MB more than the pending message size 6.0MB (which this one reflects only the user messages).

2) Consume those two messages and now info will be:

Pending Messages:         0
Pending Message Size:     0.0 Kb
Message Memory Usage:     6.0 MB out of 512MB

See that MMU is 6MB, which are for the buffers in two connections, one of 1MB and one of 5MB.


3) Now close the connection of 5MB message and the info will be:

Pending Messages:         0
Pending Message Size:     0.0 Kb
Message Memory Usage:     1.0 MB out of 512MB

4) Now clsoe the both connections, and the info will be:

Pending Messages:         0
Pending Message Size:     0.0 Kb
Message Memory Usage:     10.9 Kb out of 512MB

Issue/Introduction

Why does"Message Memory Usage" is high even thoughPending Messages = 0 andPending Message Size = 0 from server info? How is this possible and where the memory is used?