接收mule流之间持久主题订阅者中排队的所有消息



我想在mule流之间检索持久主题订阅者中排队的所有消息。我曾尝试使用Mule请求程序,但对于JMS内置持久主题订阅者,我们必须证明"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 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>

请对此提出解决方法。

mule请求程序的持久主题订阅者可以通过创建一个通用端点并向其传递主题、持久、持久名称属性来实现。

这种方法的唯一问题是,studio在使用properties元素时会显示验证错误,我们需要忽略并部署应用程序。

端点将类似

<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]"/>

最新更新