Jeroen van Veldhuizen
Jeroen van Veldhuizen

Reputation: 176

How can you listen to multiple queues in WSO2 ESB

I am creating a hosted system where multiple customers can send messages. I am receiving thoses messages on a JMS queue.

Now, all processing is done in a similar way and I want my process to poll all incoming queues for messages and handle them. Is there a way in WSO2 ESB to subscribe to multiple queues?

If not possible, the workaround would be to create a seperate listener process for each queue and have this post the message to a central processing queue. But that seems to be a less clean solution (and I think it will scale worse than listening to multiple queues).

Any ideas on this?

Upvotes: 2

Views: 459

Answers (2)

Rohit
Rohit

Reputation: 2152

If changes to activeMQ server is possible ie. if OP is able to influence the configuration to the server, something like ActiveMQ diverts could do the trick.

<divert name="prices-divert">
   <address>jms.queue.ABC</address>
   <forwarding-address>jms.queue.theone</forwarding-address>
   <exclusive>true</exclusive>
</divert>

<divert name="prices-divert">
   <address>jms.queue.xyz</address>
   <forwarding-address>jms.queue.theone</forwarding-address>
   <exclusive>true</exclusive>
</divert>

Basically, multiple diverts that converge the messages from multiple queues to the single queue. This method has advantage over the reading and writing to single queue-as mentioned by the OP and would in my view scale well as it is inbuilt feature.

Upvotes: 1

Rajeev Sampath
Rajeev Sampath

Reputation: 2757

You can define a sequence with all the required logic in it and then call it from multiple proxy services (each listening to a specific queue). Otherwise you can try something similar to this sample.

Upvotes: 0

Related Questions