1
votes

I have a Tibco EMS Message Queue on a production system that routes messages from a single producer to a single consumer application.

We are scaling the application vertically, but due to financial constraints, we cannot scale the two applications in pairs.

A single producer will route messages to the message broker and the message broker will need to bridge the message to 1 of 3 consumers based on a message selector.

I have set up a queue bridge and selector to route messages on the producer queue to consumer queues. This is a 1 to many queue bridge.

I noticed that the bridged consumer queues have consumers attached to them and they are receiving the messages correctly based on the selector, however the producer queue retains copies of the messages which must be manually purged at the end of day.

What is the best way to handle this scenario using bridges and selectors so that the message is retained on the broker until it is consumed (durable) but once a message is consumed by a consumer queue, the message is removed by the broker.

1

1 Answers

1
votes

The easiest way to dispose those messages of the original queue is by introducing MaxMsgs and MaxBytes on the queue.

As for you requirement that the message on the original queue can only be disposes if it was consumed on one of the bridged queues, this is not possible.

That said, it also it not needed, since the bridged queue keep its own message copy, regardless of what happens to the message in the source queue. So expiring messages in the original queue has no effect on the already bridged messages