Brett VanderVeen
Brett VanderVeen

Reputation: 904

How advanced can Tibco EMS selectors get?

What I am aiming to do in my Bridge Selector is something to the effect of what you see here:

(DC in('2','3','4','5','6','8','9','10','20','21','22','23') AND ActivityType in('Begin Day','End Day','Depart Center','Arrive Center','Payment'))
OR
(DC in('2','3','4','5','6') AND ActivityType in('Trip Begin','Trip End'))

Shown here in a multi-line format just so it's easier to read.

Is this valid? Is there a large performance hit with having such a complicated selector? Any help would be very much appreciated.

Upvotes: 3

Views: 1262

Answers (2)

Pascal Rottier
Pascal Rottier

Reputation: 69

It's not only the load that impacts the performance. It's also the size of the queue. The load determines how many times per time unit the selector is executed. The size of the queue determines against how many messages it is executed. And of course, if you have load-balanced consumers, then that again multiplies the number of times the selector is executed.

You can also consider creating a bridge (if that is feasible in your situation). Bridge your input queue to another queue and apply the selector on the bridge. Then your consumer can read from the queue without selector.

In that scenario, the selector is applied to each message only once.

Upvotes: 0

Brett VanderVeen
Brett VanderVeen

Reputation: 904

It is valid. I thought I would communicate some of my findings after implementing the selector in the question...

After doing some testing, messages are being selected by the bridge as expected. There also doesn't appear to any noticeable performance hit when the system is under a moderate load. Due to time constraints I wasn't able to simulate a heavy load, so I can't provide any comments on how it would behave there.

Upvotes: 1

Related Questions