WSO2 ESB代理 - JMS消息选择器

时间:2013-08-08 05:20:09

标签: jms wso2 selector message esb

我们让WSO2 ESB监听单个ActiveMQ队列。但是,我们希望在侦听JMS队列时配置多个代理。但是我们希望代理只使用意味着它的消息。 是否存在在ESB代理上设置JMS消息选择器的机制,以便它仅使用为其指定的消息。 ?

由于 拉吉夫·帕蒂尔

2 个答案:

答案 0 :(得分:0)

AFAIK无法执行此类选择。然而,有两种可能的方法来实现上述目标。

  1. 让每个代理阅读所有消息,并选择在代理本身内处理哪些消息
  2. 使用EIP pattern来实现上述目标。一种可能的模式是Message Routing,您可以在其中选择消息并将消息定向到将执行处理的所需序列或代理。

答案 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 +上测试的。