Home A note on Weblogic JMS Queue pending + current messages count

A note on Weblogic JMS Queue pending + current messages count

Recently I had to perform some load tests on an application that received its input via a Weblogic JMS queue, hence making the rate of message consumption one of the key metrics to keep track of and compare to a known standard.

Developing the WLST script proved a bit challenging only for the fact that all documentation of what constitutes "total pending messages" in the queue is a bit ambiguous (Oracle Weblogic's own documentation being the worst of all). So I did a little digging around and some experimenting and present to you here a graph which I think illustrates quite succinctly what it's all about:

"Messages pending" seem to be the working buffer (tier 1) from where the MDBs consume the messages. "Messages current" seem to be a secondary buffer (tier 2, probably serialized to disk) which are fed into "messages pending" whenever there's available capacity in the latter.

For proof, notice how "messages current" starts climbing only after "messages pending" has reached a certain level, and notice how "messages current" is the first to drop to zero, after which "messages pending" falls to zero as well.

By the way, "messages processed" in the graph was calculated using the simple formula: msgs_received - (msgs_current + msgs_pending).
This post is licensed under CC BY 4.0 by the author.

The Case of the Sudden OC4J Restarts [part 2]

Java Collections waste (or lack thereof)