Re: Can one jboss mq queue transfer data with another jboss mq queue or topic?
Friday, January 7, 2005 07:05 AM
what you are looking for is commonly referred to as a "clustered" or "federated" queue. Several vendors provide support for clustered queues. However, there will be a significant performance penalty to guarantee exact delivery semantics (such as exactly once). This is caused by the necessary group communications between all the brokers/machines to ensure that only exactly one client actually consumes a message from a clustered queue. You could have a look at SonicMQ for this feature (and i think even JBossMQ might provide some support for this in its latest incarnation).
On the other hand, as a developer with application-specific domain knowledge, you can use this knowledge to obtain better performance by doing manual routing. You'd then create separate queues on each node and manually forward messages to the node with the appropriate consumer.
This optimisation is possible, for example, if it's clear in advance, that only clients on a particular machine ever consume messages with a given content or property set. Several vendors allow you to include custom-logic within the JMS broker to handle such content-based routing of messages. Have a look at ArjunaMS Message-driven Services (MDS) for example. ArjunaMS integrates with JBoss AS.
Hope this helps! Kind regards, thomas