WSO2 ESB代理-JMS消息选择器

WSO2 ESB代理-JMS消息选择器,jms,wso2,selector,message,esb,Jms,Wso2,Selector,Message,Esb,我们让WSO2 ESB监听单个ActiveMQ队列。但是,我们希望在侦听JMS队列时配置多个代理。。但是,我们希望代理仅使用为其指定的消息。 是否有一种机制可以在ESB代理上设置JMS消息选择器,以便它只使用为其指定的消息 谢谢 拉吉夫·帕蒂尔(Rajiv Patil)AFAIK不可能进行这样的选择。然而,有两种可能的方法来实现上述目标 让每个代理读取所有消息,并选择要在代理本身内部处理的消息 使用一个工具来实现上述目标。一种可能的模式是,您可以选择消息并将消息定向到执行处理的所需序列或代理 是

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

谢谢
拉吉夫·帕蒂尔(Rajiv Patil)

AFAIK不可能进行这样的选择。然而,有两种可能的方法来实现上述目标

  • 让每个代理读取所有消息,并选择要在代理本身内部处理的消息
  • 使用一个工具来实现上述目标。一种可能的模式是,您可以选择消息并将消息定向到执行处理的所需序列或代理

  • 是的,您可以有多个代理服务侦听同一队列,每个代理服务都遵循某个JMS MessageSelector。您必须像这样为每个代理设置
    transport.jms.MessageSelector
    参数(值100是可变的,每个代理服务包含不同的数字):

    这是在ActiveMQ 4.7和WSO2 ESB 4+上测试的

    <parameter name="transport.jms.MessageSelector">account='100'</parameter>
    
    // this will set a key/value pair as JMS message selector
    // 100 should be a variable in your case
    message.setStringProperty("account", "100");