【问题标题】:Mule Issue if Multiple flows in one project如果一个项目中有多个流程,则 Mule 问题
【发布时间】:2014-06-22 15:34:06
【问题描述】:

我有一个项目,我在其中创建了 10 个流程。 其中,8 个流与不同的队列相连。此外,我正在使用 java 转换器进行一些转换并将转换后的文件放在某个文件夹中。

不,问题是所有 10 个流同时触发。如果 2 个队列包含一些数据,则同时触发相应的两个流。我只想在第一个流程停止时触发另一个流程,因为那里已经应用了一个 commom java 类,因此我没有得到准确的结果。

我没有流量依赖。这就是为什么,我不能使用流量参考。另外,我使用处理策略作为最大 1 个线程,因为我需要从一个队列中一个一个地处理消息。

帮我解决这个问题。这是我的 XML

      <queued-asynchronous-processing-strategy name="allowOneThread" maxThreads="1" doc:name="Queued Asynchronous Processing Strategy" threadWaitTimeout="2000"/>
<spring:beans>
      <context:property-placeholder location="classpath:mule-app.properties" />
 </spring:beans>
       <wmq:connector name="WMQ" hostName="${wmq.hostname}" port="${wmq.port}" queueManager="${wmq.queue.manager}" username="${wmq.username}" password="${wmq.password}" validateConnections="true" doc:name="WMQ" channel="${wmq.channel}"/>
         <file:connector name="File" autoDelete="false" streaming="true" validateConnections="true" doc:name="File" pollingFrequency="20000"/>
       <flow name="CatalogueFlow_AB" doc:name="CatalogueFlow_AB" processingStrategy="allowOneThread">

    <wmq:inbound-endpoint queue="${wmq.queue.nameCT_AB}" doc:name="WMQ" connector-ref="WMQ"/>
    <object-to-string-transformer doc:name="File Mapping"/>
    <custom-transformer class="com.tcs.sdm.kcm.catalog.ServiceController_AB" doc:name="Java"/>
    <logger level="INFO" doc:name="CAT Logger" category="Audit_LogCAT" message="******************Entered Catalogue SOAP File with Province Name AB is Processed from queue*********"/>
    <catch-exception-strategy doc:name="Catch Exception Strategy">
        <logger level="INFO" doc:name="CAT Exception Logger" category="Audit_LogCAT" message="*******************************Entered Catalogue SOAP File with Province Name AB is having error: #[exception.causeException]****************"/>
    </catch-exception-strategy>
</flow>
<flow name="CatalogueFlow_BC" doc:name="CatalogueFlow_BC" processingStrategy="allowOneThread">
    <wmq:inbound-endpoint queue="${wmq.queue.nameCT_BC}" connector-ref="WMQ" doc:name="WMQ"/>
    <object-to-string-transformer doc:name="File Mapping"/>
    <custom-transformer class="com.tcs.sdm.kcm.catalog.ServiceController_BC" doc:name="Java"/>
    <logger message="******************Entered Catalogue SOAP File with Province Name BC is Processed from queue*********" level="INFO" category="Audit_LogCAT" doc:name="CAT Logger"/>
    <catch-exception-strategy doc:name="Catch Exception Strategy">
        <logger message="*******************************Entered Catalogue SOAP File with Province Name BC is having error: #[exception.causeException]****************" level="INFO" category="Audit_LogCAT" doc:name="CAT Exception Logger"/>
    </catch-exception-strategy>
</flow>
<flow name="CatalogueFlow_ON" doc:name="CatalogueFlow_ON" processingStrategy="allowOneThread">
    <wmq:inbound-endpoint queue="${wmq.queue.nameCT_ON}" connector-ref="WMQ" doc:name="WMQ"/>
    <object-to-string-transformer doc:name="File Mapping"/>
    <custom-transformer class="com.tcs.sdm.kcm.catalog.ServiceController_ON" doc:name="Java"/>
    <logger message="******************Entered Catalogue SOAP File with Province Name ON is Processed from queue*********" level="INFO" category="Audit_LogCAT" doc:name="CAT Logger"/>
    <catch-exception-strategy doc:name="Catch Exception Strategy">
        <logger message="*******************************Entered Catalogue SOAP File with Province Name ON is having error: #[exception.causeException]****************" level="INFO" category="Audit_LogCAT" doc:name="CAT Exception Logger"/>
    </catch-exception-strategy>
</flow>
<flow name="CatalogueFlow_MB" doc:name="CatalogueFlow_MB" processingStrategy="allowOneThread">
    <wmq:inbound-endpoint queue="${wmq.queue.nameCT_MB}" connector-ref="WMQ" doc:name="WMQ"/>
    <object-to-string-transformer doc:name="File Mapping"/>
    <custom-transformer class="com.tcs.sdm.kcm.catalog.ServiceController_MB" doc:name="Java"/>
    <logger message="******************Entered Catalogue SOAP File with Province Name MB is Processed  from queue*********" level="INFO" category="Audit_LogCAT" doc:name="CAT Logger"/>
    <catch-exception-strategy doc:name="Catch Exception Strategy">
        <logger message="*******************************Entered Catalogue SOAP File with Province Name MB is having error: #[exception.causeException]****************" level="INFO" category="Audit_LogCAT" doc:name="CAT Exception Logger"/>
    </catch-exception-strategy>
</flow>
<flow name="InterchangablePriority_AB" doc:name="InterchangablePriority_AB" processingStrategy="allowOneThread">
    <wmq:inbound-endpoint queue="${wmq.queue.nameIP_AB}" doc:name="WMQ" connector-ref="WMQ"/>
    <object-to-string-transformer doc:name="File Mapping"/>
    <custom-transformer class="com.tcs.sdm.kcm.interchangeablePriority.IPController_AB" doc:name="Java"/>
    <logger level="INFO" doc:name="IP Logger" category="Audit_LogIP" message="******************Entered IP SOAP File with Province Name AB is Processed from queue*********"/>
    <catch-exception-strategy doc:name="Catch Exception Strategy">
        <logger level="INFO" doc:name="IP Exception Logger" category="Audit_LogIP" message="*******************************Entered IP SOAP File with Province Name AB is having error: #[exception.causeException]****************"/>
    </catch-exception-strategy>
</flow>
<flow name="InterchangablePriority_BC" doc:name="InterchangablePriority_BC" processingStrategy="allowOneThread">
    <wmq:inbound-endpoint queue="${wmq.queue.nameIP_BC}" connector-ref="WMQ" doc:name="WMQ"/>
    <object-to-string-transformer doc:name="File Mapping"/>
    <custom-transformer class="com.tcs.sdm.kcm.interchangeablePriority.IPController_BC" doc:name="Java"/>
    <logger message="******************Entered IP SOAP File with Province Name BC is Processed from queue*********" level="INFO" category="Audit_LogIP" doc:name="IP Logger"/>
    <catch-exception-strategy doc:name="Catch Exception Strategy">
        <logger message="*******************************Entered IP SOAP File with Province Name BC is having error: #[exception.causeException]****************" level="INFO" category="Audit_LogIP" doc:name="IP Exception Logger"/>
    </catch-exception-strategy>
</flow>
<flow name="InterchangablePriority_ON" doc:name="InterchangablePriority_ON" processingStrategy="allowOneThread">
    <wmq:inbound-endpoint queue="${wmq.queue.nameIP_ON}" connector-ref="WMQ" doc:name="WMQ"/>
    <object-to-string-transformer doc:name="File Mapping"/>
    <custom-transformer class="com.tcs.sdm.kcm.interchangeablePriority.IPController_ON" doc:name="Java"/>
    <logger message="******************Entered IP SOAP File with Province Name ON is Processed from queue*********" level="INFO" category="Audit_LogIP" doc:name="IP Logger"/>
    <catch-exception-strategy doc:name="Catch Exception Strategy">
        <logger message="*******************************Entered IP SOAP File with Province Name ON is having error: #[exception.causeException]****************" level="INFO" category="Audit_LogIP" doc:name="IP Exception Logger"/>
    </catch-exception-strategy>
</flow>
<flow name="InterchangablePriority_MB" doc:name="InterchangablePriority_MB" processingStrategy="allowOneThread">
    <wmq:inbound-endpoint queue="${wmq.queue.nameIP_MB}" connector-ref="WMQ" doc:name="WMQ"/>
    <object-to-string-transformer doc:name="File Mapping"/>
    <custom-transformer class="com.tcs.sdm.kcm.interchangeablePriority.IPController_MB" doc:name="Java"/>
    <logger message="******************Entered IP SOAP File with Province Name MB is Processed from queue*********" level="INFO" category="Audit_LogIP" doc:name="IPLogger"/>
    <catch-exception-strategy doc:name="Catch Exception Strategy">
        <logger message="*******************************Entered IP SOAP File with Province Name MB is having error: #[exception.causeException]****************" level="INFO" category="Audit_LogIP" doc:name="IP Exception Logger"/>
    </catch-exception-strategy>
</flow>

【问题讨论】:

  • 我认为您需要在 xml 配置中发布您所描述的所有内容
  • 我在问题本身中附加了 XML

标签: mule


【解决方案1】:

使用流的'initialState'属性。

<flow name="InterchangablePriority_MB" initialState="stopped">
...
</flow>

此属性的默认值为 initialstate="started"。

【讨论】:

  • Kk..那么流程将如何被触发?而一旦被触发,对于下一次输入,情况又会发生
  • 如果你的问题是多个线程/流使用同一个java类..使用java的同步概念。
  • 请参阅此答案以了解启动/停止流程stackoverflow.com/questions/15387745/…
猜你喜欢
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-08
相关资源
最近更新 更多