我们让WSO2 ESB监听单个ActiveMQ队列。但是,我们希望在监听JMS队列时配置多个代理。然而,我们希望代理只使用为它准备的消息。是否有一种机制可以在ESB代理上设置JMS消息选择器,以便它只使用为其指定的消息。?
感谢Rajiv Patil
发布于 2013-08-13 08:39:04
AFAIK不可能执行这样的选择。然而,有两种可能的方法来实现上述目标。
发布于 2013-12-06 23:28:47
是的,您可以让多个代理服务侦听同一队列,每个代理服务都遵循特定的JMS MessageSelector。您必须为每个代理设置transport.jms.MessageSelector
参数,如下所示(值100是可变的,每个代理服务包含不同的数字):
<parameter name="transport.jms.MessageSelector">account='100'</parameter>
而将消息发送到JMS代理的Java消息生成器使用以下命令设置消息选择器:
// this will set a key/value pair as JMS message selector
// 100 should be a variable in your case
message.setStringProperty("account", "100");
这在ActiveMQ 4.7和WSO2 ESB 4+上进行了测试。
https://stackoverflow.com/questions/18118417
复制相似问题