我们让WSO2 ESB监听单个ActiveMQ队列。但是,我们希望在侦听JMS队列时配置多个代理。但是我们希望代理只使用意味着它的消息。 是否存在在ESB代理上设置JMS消息选择器的机制,以便它仅使用为其指定的消息。 ?
由于 拉吉夫·帕蒂尔
答案 0 :(得分:0)
AFAIK无法执行此类选择。然而,有两种可能的方法来实现上述目标。
答案 1 :(得分:0)
是的,您可以让多个代理服务侦听同一个队列,每个队列都遵循某个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 +上测试的。