How do I non-destructively view a message payload of the most recent message in a queue?

AllenW
AllenW Member Posts: 8 ✭✭

I've come across this issue a few times recently. The two tools I've tried using are JMSToolbox and SDKPerf. I've found neither really have the documentation or resources to help with this.

The problem I'm having is I have large queues and DMQs (some with 2M+ messages) and we are trying to determine the payloads of these messages to troubleshoot, and implement more data cleansing before the messages reach Solace. However, in queues so large I'm having difficulty filtering messages to the latest. Ideally I want the latest messages in the Queue to be examined, JMSToolbox shows messages from oldest to newest unfortunately..

SDKPerf:

I found this command from anther thread usefull.

sdkperf_jms.bat -cip smfs://:55443 -cu <client-username@VPN -cp -jcf -jndi -sql -qb -md >> 03122020_Latest.txt

To view all the messages in the Queue and write to a text file. However, for huge queues this is unfeasible. Is there any way to add a timestamp or filter the messages by message-id perhaps?

JMSToolbox is usefull however for queues this large it freezes. I've also tried using selectors and a unix timestamp to filter, however this also doesn't work as expected.

JMSTimestamp > 1687823291

Open to suggestions of any other tools some might recommend.

Best Answer

Answers

  • Tamimi
    Tamimi Member, Administrator, Employee Posts: 489 admin
    edited July 2023 #3

    Hey @AllenW - have you considered queue browsing from the API? you can pass extra configuration parameters to your queue browsing.

    We also have a chrome extension queue browser project on our Solace Community that you might find interesting https://github.com/solacecommunity/solace-queue-browser-extension. Note: this is a community contributed project, so you can also contribute to it if you find it helpful to extend it!

    I'll see what others also have to say about this

  • AllenW
    AllenW Member Posts: 8 ✭✭

    Hi @Tamimi - thanks for the reply.

    I've only tried using SDKPerf & JMSToolbox. Which API were you referring to? I'm keen to check it out if you have a link? Chrome extensions are blocked by our company unfortunately.

    Thanks a lot for your help.

  • Tamimi
    Tamimi Member, Administrator, Employee Posts: 489 admin
    #5 Answer ✓

    You could look into creating a browser in most of our APIs. For example, here is how you can do it with JMS (https://docs.solace.com/API-Developer-Online-Ref-Documentation/jms/javax/jms/QueueBrowser.html) and with JCSMP (https://docs.solace.com/API-Developer-Online-Ref-Documentation/java/com/solacesystems/jcsmp/Browser.html) by creating a Browser object.

  • Aaron
    Aaron Member, Administrator, Moderator, Employee Posts: 497 admin

    There is no way to "browse from latest". Unfortunately.

    One option (not a great one) might be to setup another queue, configure it with the same topic subscriptions as the original main (very full) queue. Then initiate a replay request (if you have replay enabled in your VPN) for the last n minutes (or whatever) to give you at least some of the messages. Might be easier than "while hasMore next" on a Browser for millions of loops.

  • sjaak
    sjaak Member Posts: 103 ✭✭✭
    edited July 2023 #7

    The Chrome extension is what we use (we developed it ourselves), but it is not ideal. Our problem is that we, as a Solace partner, are currently managing 20-30 Solace instances. To switch from Solace VPN A to B, you must update the credentials of the Chrome extension. JMS Toolbox does not scale.

    So, when does Solace add a message viewer to PubSub+? 😀