Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

ESB: ActiveMQ : Queue's Message count

Hi,

I am using Talend ESB enterprise edition. 

 

My requirement is to peek into a queue (ActiveMQ) to know if the queue is empty. I want to take some action based on if the queue is empty.

1. Is there a way to get Queue's message count with in a Route? 

https://help.talend.com/reader/uIKVtnSbP9Sodkc3AE3_6w/U8aUhCtLmxEVvkAoFwqpmQ this talks about ActiveMQ plugin for Hyperic. But I do not understand if that helps in getting the message count with in a Route. If so, what ESB component can help me read the message count?

 

2. Can I have a ActiveMQ consumer that can just peek the message, but not removing it from the queue?

 

Thanks,

Sowjanya.

 

 

Labels (1)
  • Other

1 Reply
vapukov
Master II
Master II

not sure how it could work in route, but generally You can use REST interface of ActiveMQ for request many information

 

example:

http://localhost:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost,destinationName=TEST,destinationType=Queue

return You:

{
  "request": {
    "mbean": "org.apache.activemq:brokerName=localhost,destinationName=TEST,destinationType=Queue,type=Broker",
    "type": "read"
  },
  "value": {
    "ProducerFlowControl": true,
    "AlwaysRetroactive": false,
    "Options": "",
    "MemoryUsageByteCount": 4376,
    "AverageBlockedTime": 0.0,
    "MemoryPercentUsage": 0,
    "CursorMemoryUsage": 4376,
    "InFlightCount": 4,
    "Subscriptions": [
      {
        "objectName": "org.apache.activemq:brokerName=localhost,clientId=ID_VA-iMac.local-53650-1505260517761-3_3,consumerId=ID_VA-iMac.local-53650-1505260517761-4_3_1_1,destinationName=TEST,destinationType=Queue,endpoint=Consumer,type=Broker"
      }
    ],
    "CacheEnabled": true,
    "DLQ": false,
     ..... skipped
    "MaxPageSize": 200,
    "QueueSize": 4,
    "PrioritizedMessages": false,
    "MemoryUsagePortion": 1.0,
    ..... skipped
    "SlowConsumerStrategy": null
  },
  "timestamp": 1505261888,
  "status": 200
}

JOSN, where QueueSize - it is exactly what are You looking for
of course You need add authorisation parameters - basic HTTP authorisation