1

I need a query or just a command to see stopped/delayed/waiting messages in a queue, but for long time.

6
  • Could someone with enough reputation create the tag 'websphere-mq'?
    – ᄂ ᄀ
    Commented Apr 16, 2014 at 21:01
  • @fnt Is Websphere different from Websphere MQ? I'm afraid my knowledge of proprietary middleware products is a little rusty. And on the topic, if you could clarify the question, it might be helpful. I know the syntax of pulling messages from a queue in Webshpere, but don't know what "stop" means in this context. Is it a queue? A message status? A generic verb? Commented Apr 16, 2014 at 22:47
  • @HopelessN00b WebSphere is an umbrella name for a line of IBM products - www-01.ibm.com/software/websphere When people say 'WebSphere' they frequently understand WebSphere Application Server as it is the most used one. At StackOverflow 'WebSphere' means just that, although strictly speaking this is not quite correct. Anyway, there should be a separate tag to indicate questions about specific product WebSphere MQ.
    – ᄂ ᄀ
    Commented Apr 17, 2014 at 6:32
  • @HopelessN00b I can only assume that "stop" in this context means that the processing of messages takes more time than expected.
    – ᄂ ᄀ
    Commented Apr 17, 2014 at 6:35
  • Excuse, but @HopelessN00b is correct. Messages takes more time than expected. Commented Apr 17, 2014 at 17:45

1 Answer 1

2

Messages that are sitting on a queue and not being processed can be seen using the following command:-

DISPLAY QSTATUS(q-name) ALL

First of all you can see the CURDEPTH value which very simply shows you how many messages there are on the queue. That single number does not itself reflect whether those messages arrived 1 second ago or 1 hour ago, it just shows you how many messages were on the queue at the time you issued the command. If there are applications processing the messages on that queue, you might well see a different number if you issued it again a moment later.

There are various other fields that are returned on this command that will show you more information about how long messages are staying on this queue before being processed. If you are concerned that no application is getting the messages off the queue, you should check out LGETDATE and LGETTIME which show you the date and time that the last message was got off the queue. If this is a while ago, it is worth also checking out IPPROCS which show the count of applications which have the queue open for getting (Input).

If you can see that applications are working on the queue, and that LGETTIME seems to be regularly changing suggesting that regular processing is happening, but your still think you have messages on the queue for a long time, you may have applications that are not getting the next message but instead are picking up specific messages by message-id or correlation-id. In this case although the queue is being regularly processed you may have some old messages and these will show up as a high value in MSGAGE.

N.B. Some of these fields caused additional time stamps to be taken by the queue manager code, specifically of those I mentioned, LGETTIME and MSGAGE. These are controlled by the MONQ attribute so that you do not spend this extra CPU time if you don't want to view this kind of data. Turn on these extra bits of information by issuing the command:-

 ALTER QLOCAL(q-name) MONQ(HIGH)

Related Information:

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .