4 Replies Latest reply: Jun 21, 2017 10:26 AM by Joel Butzow RSS

How do I search and chart transactions by message queue?

Joel Butzow


I am trying to see how many and which transactions are making a GET (receive) requests from how many and which queues.  I see that AppInternals automatically detects which queue the JMS methods are pulling a message from, via the "Call Details":



We have tons of queues detected by AppInternals - when I type "queue" in the search bar, it shows me many different queue names.  Such a search would obviously show me how many transactions interfaced with that queue.  That is somewhat helpful, but we have many queues, and it does not give me what I need.


When I try to run a search on both AIX v10 and the old v9 TTWs, the software will not let me use "queue" as a parameter for the search - e.g. if I search for: | transactioncount -group_by queue, or something similar such as -group_by parameter=queue, etc..., I can't get a response.


My question is this: Is there a way to use the AIX query language to chart gets/puts to/from a dynamic number of queues over time?  Something like this would be ideal - only instead of using the MQ stats channel, it's using data that already exists in AIX:


Any help would be appreciated!



Joel B

  • Re: How do I search and chart transactions by message queue?
    Greg O'Reilly

    Hello Joel,

    have you tried typing in "queue" in the search criteria? This should suggest the queue names that SCAI knows about. Once you select your queue, then you can add an analysis operator to get the send/receive activity.


    | transactioncount -group_by class.method

    | timeseries -group_by class.method


    The -group_by -queue does not work yet, but it is something that has been requested, so keep an eye on the release note updates.


    Some screenshots from my own deploymentqueue1-1.png


    Then you can get the methods:



    If you want to breakdown or search application:



    Lastly, get all queue activity:



    Because we cannot group_by queue yet(coming though!), it means we cannot map a transaction type by queue either. You can map transactions based on class.methods though...ie com.ibm.mq.jms.mqqueuereceiver is IBM Websphere MQ's class for receiving messages.


    In the meantime I'd highly recommend that you try creating a custom report, you can then add your specific queues into this by application or however you need it. This works perfectly for me right now, whenever my application teams have a "messaging" issue, or slowness in our messaging applications(EDI etc)...getting these custom reports helps determine whether any performance problems are load, exception, server related etc.


    Here is a sample report: (just replace the bold section with your queue name)



    name,My Messaging Report

    title,MQ Messaging Report

    description,A Queue based report for my application

    header,Classes and Methods (look for send and receive)

    text, Stats for queue "broker.rout.delivery.reply.4?targetclient=1'"

    search, queue = 'queue:///broker.rout.delivery.reply.4?targetclient=1' | transactioncount -group_by class.method

    text, Timeseries View for queue "broker.rout.delivery.reply.4?targetclient=1'"

    search, queue = 'queue:///broker.rout.delivery.reply.4?targetclient=1' | timeseries -group_by class.method

    • Re: How do I search and chart transactions by message queue?
      Joel Butzow

      Hi Greg,


      Thank you for your response.  You are correct - if I knew which queue to view and/or wanted to chart only a few queues, method works perfectly.  What I was hoping for was hoping for was a more dynamic option, much like what we see with the other parameters.  Still, I appreciate your helpful response and brief introduction to custom reports!



      • Re: How do I search and chart transactions by message queue?
        Greg O'Reilly

        No problem Joel. I think once the queue's appear in the "group_by" option, everything will show up as you'd expect in the majority of analysis operators. The same as they do now for SQL, class, url, instance, webservice etc


        If you are using a remote queue manager, you can also see the activity from your applications using the | transactioncount -group_by remoteaddr when they connect etc - this helps sometimes too.


        When I know more about the queue enhancements in SCAI, I'll drop you a note on this thread.



  • Re: How do I search and chart transactions by message queue?
    Joel Butzow

    Hello to anyone interested...


    I found a way to make this work (in the AIX v9 TTW), by using the python API.  I used the examples provided by riverbed and modified them (very) slightly.  You can find the script, info file, and instructions at this github link.  View below to see the results of adding the custom operator.


    By running this search from the TTW:


    I get the following results - and yes, they are real queue names: