我有2个端点,我想在它们之间建立路由。由于这些端点(JMS主题)的性质,我希望桥接是双向的。
Tibco终结点的基础JmsComponent启用了pubSubNoLocal参数,该参数可确保使用者不接收根据http://camel.apache.org/jms.html
本身发送的消息pubSubNoLocal否 指定是否禁止传递由其自己的连接发布的消息。
但是,这没有效果,因为这两个路由创建了到JMS主题my.topic的单独连接。
因此,以下内容将创建一个无限循环。 如前所述,我需要在两个方向上进行操作以实现“无缝集成”
<c:route>
<c:from uri="tibco:topic:my.topic"/>
<c:to uri="solace-jms:topic:mytopic" />
</c:route>
<c:route>
<c:from uri="solace-jms:topic:mytopic"/>
<c:to uri="tibco:topic:my.topic" />
</c:route>
答案 0 :(得分:1)
我建议考虑message selectors and headers的概念。
我的看法是,您做两件事:
完成了吗?
(当然,您也可以使用2个主题...但是我认为这是不可能的...)
答案 1 :(得分:0)
您将需要在消息中添加一些指示,表明它已通过任一网桥发送。您可以使用现有属性(交付?),也可以添加新属性。例如,设置属性bridged = true穿过桥时。然后,您可以在定义中过滤掉已桥接的每条消息。