在mule flow

时间:2016-05-05 08:45:17

标签: mule activemq mule-component jms-topic

我想在mule流之间检索持久主题订阅者中排队的所有消息。我曾尝试使用Mule请求者,但对于JMS inbount持久主题订阅者,我们必须证明“durableName”属性。它与入站端点一起工作正常,但无法弄清楚如何在流执行之间调用它。  请找到以下代码

<jms:activemq-connector name="Active_MQ" clientId="xyz-001" password="admin" brokerURL="tcp://localhost:61616" validateConnections="true" doc:name="Active MQ" persistentDelivery="true"/>
<mulerequester:config name="Mule_Requester" doc:name="Mule Requester"/>
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="activemqtestFlow1">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/getTopicMessages" doc:name="HTTP"/>
    <mulerequester:request-collection config-ref="Mule_Requester" resource="jms://testTopic?connector=Active_MQ" doc:name="Mule Requester"/>
    <foreach doc:name="For Each">
        <logger message="subscriber two pay load" level="INFO" doc:name="Logger"/>
    </foreach>
</flow>

以下流程工作正常,但我希望在JMS主题之间实现mule flow调用,

<flow name="activemqtestFlow1">
   <jms:inbound-endpoint  connector-ref="Active_MQ" doc:name="JMS"  topic="testTopic" durableName="xyz-001">
          <jms:transaction action="NONE"/>
    </jms:inbound-endpoint>
    <logger message="#[payload]" level="INFO" doc:name="Logger"/>
</flow>

请为此建议解决方法。

1 个答案:

答案 0 :(得分:0)

可以通过创建通用端点并向其传递topic,durable,durableName属性来实现对mule请求者的持久主题订阅者。

只有这种方法的问题是,工作室将在使用我们需要忽略和部署应用程序的属性元素时显示验证错误。

端点就像

<endpoint name="durablesubscriberEndpoint" connector-ref="Active_MQ" address="jms://testTopic" doc:name="Generic">
    <property value="true" key="durable"/>
    <property value="subscriber-name" key="durableName"/>
    <property value="true" key="topic"/>
</endpoint>

骡子请求者可以被称为

<mulerequester:request-collection config-ref="Mule_Requester"  resource="durablesubscriberEndpoint" doc:name="Mule Requester"/>

它就像魅力...... !!

使其更通用和动态的另一种方法可以使用以下

<set-variable variableName="resource" value="jms://#[message.inboundProperties.activeMQTopic]?connector=Active_MQ&amp;durable=true&amp;durableName=#[message.inboundProperties.'subscriber-name']&amp;topic=true" doc:name="Variable"/>
<mulerequester:request-collection doc:name="Mule Requester" config-ref="Mule_Requester" resource="#[flowVars.resource]"/>