views:

101

answers:

1

Messaging middleware solutions (JSM, Tibco, etc.) allow publish/subscribe with "topic" filtering using wildcards to subscribe to all messages of a certain "topic", e.g. SUBSCRIBE("ACCOUNT.*") topic allows you to subscribe to both "ACCOUNT.WITHDRAW" message and "ACCOUNT.CHECKBALANCE" message.

The problem is that such subscription also receives my own published messages.

I'm looking for a mechanism, similar to, say, UDP multicast loopback which can be turned ON or OFF by the transport layer without messing with the data being sent.

Is there a common, declarative (no custom code, configuration only) way to configure the middleware not to receive messages which that very same service instance has published? Ideally, this should also be able to filter out everything published by ALL servers (nodes) of the same "kind".

Thanks in advance.

A: 

No one is answering, so I'll chime in (in a hand-wavey way).

I believe there's nothing in the JMS spec around controlling whether you get your own sent messages back on a topic receiver. So any capability like this would be a non-portable vendor feature. Especially for your second requirement (based on "kind" of JMS client versus some control based on the same connection doing the sending/receiving).

If you've got no flexibility to modify code or message content (properties), I think you've got no portable solutions. And likely no solution at all for that second "kind" requirement.

If you want to investigate vendor-specific options, you'll need to tell us which vendor you're interested in. You may get nothing, but there's no way to know without asking.

John M
Thanks. I was interested in any solution/vendor that supports the functionality I need. I don't mind it being non-generic, although I was a bit surprised that such a basic functionality doesn't come standard (it exists even in very trivial message broadcasting mechanism - UDP)
Borka
You've got the building blocks to do this type of things w/ message properties and consumer selectors. But that requires flexibility in modifying code.I don't happen to know a vendor who offers a feature like this. I was just speculating...
John M