【问题标题】:Using JMS Connector on Mule在 Mule 上使用 JMS 连接器
【发布时间】:2015-10-30 00:58:48
【问题描述】:

当在 Mule 流上使用 JMS 连接器时,JMS 请求将是异步的,还是我必须将 JMS 连接器放在 Async Scope 中,这样无论 JMS 请求如何,流都会继续处理?

【问题讨论】:

    标签: jms mule


    【解决方案1】:

    你需要保持在异步块中

    参考:http://blogs.mulesoft.com/dev/mule-dev/asynchronous-message-processing-with-mule/ https://docs.mulesoft.com/mule-user-guide/v/3.6/async-scope-reference

    <http:listener-config name="HTTP_Listener_Configuration" host="localhost" port="8081" doc:name="HTTP_Listener Configuration" />
     <jms:activemq-connector name="Active_MQ" specification="1.1" brokerURL="tcp://localhost:61616" validateConnections="true" doc:name="Active MQ" numberOfConsumers="2" />
        <flow name="samplepocFlow">
            <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
            <logger message="** Triggered the flow ** ${name} ${name}" level="INFO" doc:name="Logger"/>
            <scripting:component doc:name="Groovy">
                <scripting:script engine="Groovy"><![CDATA[File file = new File("C://Users//schiraboina//Desktop//123.txt")
    payload=file.getText()   ]]></scripting:script>
            </scripting:component>
            <logger message="Final Data #[payload]" level="INFO" doc:name="Logger"/>
        </flow>
     <flow name="jms_message_sender">
         <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP" allowedMethods="GET, POST" />
         <set-payload value="JMS EXAMPLE" doc:name="Set Payload" />
         <object-to-string-transformer doc:name="Object to String" />
         <logger message="Sending message to queue" level="INFO" doc:name="Logger" />
            <async doc:name="Async">
                <jms:outbound-endpoint exchange-pattern="request-response" queue="MyQueue" connector-ref="Active_MQ" doc:name="JMS"/>
            </async>
         <logger message="After JMS " level="INFO" doc:name="Logger" />
     </flow>
     <flow name="jms_message_consumer">
      <jms:inbound-endpoint exchange-pattern="request-response" queue="MyQueue" connector-ref="Active_MQ" doc:name="JMS" />
        <logger message="Consuming Message from queue " level="INFO" doc:name="Logger" />
     </flow>
    

    【讨论】:

    • 其实不需要添加Async Scope。您刚刚在答案中添加的链接之一说:“某些传输和连接器,例如 JMS 或 VM 传输,默认情况下是异步的”。那么@eddú 仍然是正确的!
    【解决方案2】:

    它是异步的。不需要async 范围。更多信息可以阅读https://developer.mulesoft.com/docs/display/current/JMS+Transport+Reference

    【讨论】:

      猜你喜欢
      • 2013-08-22
      • 2023-03-08
      • 2020-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 2021-12-02
      • 2017-08-22
      相关资源
      最近更新 更多