【问题标题】:Disable Mule flow at startup - continue or ignore startup failure启动时禁用 Mule 流 - 继续或忽略启动失败
【发布时间】:2018-06-18 16:41:08
【问题描述】:

Mule 项目有多个流程,其中一些流程的端点在测试期间启动时可能会离线。任何流程中的失败端点都会导致整个 Mule 项目无法部署。控制台记录域状态已部署但应用程序状态 = FAILED。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Starting app 'test'                                    +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
. Root Exception was: Connection refused: connect. Type: class java.net.ConnectException
ERROR 2018-01-09 10:31:08,287 [main] org.mule.module.launcher.application.DefaultMuleApplication: 
********************************************************************************
Message               : Could not connect to broker URL: tcp://localhost:61616.
                        Reason: java.net.ConnectException: Connection refused: connect
JMS Code              : null
*************************************************************
* Application "test" shut down normally on: 1/9/18 10:31 AM *
* Up for: 0 days, 0 hours, 0 mins, 1.449 sec                *
*************************************************************
ERROR 2018-01-09 10:31:08,413 [main] org.mule.module.launcher.DefaultArchiveDeployer: 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Failed to deploy artifact 'test', see below            +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
org.mule.module.launcher.DeploymentStartException: ConnectException: Connection refused: connect

已尝试在可能存在启动连接问题但对运行项目没有影响的流上设置 initialState="stopped"。项目仍然无法运行,并且没有任何流程正在运行。

将 CatchExceptionStrategy 添加到在启动时可能会失败到不可用的入站端点。还尝试了流程中的“直到成功”范围。

尤其是一些JMS 和Web 服务组件,在开发和测试期间可能会在不同时间离线。想要配置流程以允许整个项目继续进行,即使单个组件/流程在启动时无法连接。想要管理具有多个流程的单个项目,以使某些流程可能不活跃。

Environment: Anypoint Studio and Mule 3.9.0 EE. 

【问题讨论】:

    标签: exception-handling mule mule-component anypoint-studio


    【解决方案1】:

    如果您希望即使在服务不可用的情况下也能成功部署,则需要在 JMS 连接器上提供重新连接策略blocking=false。例如:

    <jms:activemq-connector name="Active_MQ" username="a" password="b" brokerURL="tcp://localhost:61616" validateConnections="true" doc:name="Active MQ">
      <reconnect-forever blocking="false"/>
    </jms:activemq-connector>
    

    如果需要,可以在 MuleSoft 文档中找到有关重新连接策略的更多信息:https://docs.mulesoft.com/mule-user-guide/v/3.9/configuring-reconnection-strategies。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多