【问题标题】:Blocking="false" is not working in JDBC Reconnection in 3.4.2Blocking="false" 在 3.4.2 中的 JDBC Reconnection 中不起作用
【发布时间】:2015-09-06 10:44:24
【问题描述】:

在 JDBC Reconnection 策略中将阻塞实现为 false.. 所以当我们尝试部署应用程序时,即使 JDBC 连接失败也应该部署应用程序。但是应用程序没有部署到服务器中。

下面是xml代码

<jdbc-ee:connector name="FTPDatabase" dataSource-ref="MySQL_FTP_Data_Source"
        validateConnections="true" queryTimeout="-1" pollingFrequency="0"
        doc:name="Database">
        <reconnect blocking="false" frequency="10000" count="3"/>
    </jdbc-ee:connector>

【问题讨论】:

  • 问题不是出在数据源本身而不是连接器上吗?远程DB宕机了,数据源还能初始化吗?
  • 数据库已关闭.. 因此,即使 db 也已关闭,要使应用程序启动实现阻塞为假.. 即使这样,应用程序也没有被部署..即使远程也如何使应用程序启动db 宕机了?

标签: mule mule-studio mule-component mule-el mule-cluster


【解决方案1】:

请尝试永久重新连接选项,而不是重新连接 3 次。 &lt;reconnect-forever blocking="false" frequency="120000" /&gt;。这样每当数据库连接恢复时,它应该是成功的。

【讨论】:

    【解决方案2】:

    在我看来,这在 OOTB Mule 应用程序中是不可能的。主要原因是 Mule 处理异常的方式。

    您面临的是系统异常。

    系统异常

    Mule 在抛出异常时调用系统异常策略 在系统级别(即,当不涉及消息时,异常是 由系统异常策略处理)。比如系统异常 策略处理发生的异常:

    在应用程序启动期间连接到外部系统时 failed 当系统异常策略发生时,Mule 发送异常 通知已注册的侦听器,记录异常,并且 - 如果 异常是由连接失败引起的——执行 重新连接策略。系统异常策略不是 可在 Mule 中配置

    你可以阅读更多关于 Mule 的错误处理here

    我猜设计者的观点是,如果你有一个 DB 连接器,那么当 Mule 应用程序启动时,该 DB 将是可访问的,并且在许多方面这是一个很好的功能,而不是默默地失败,它会大声失败并失败快:)

    【讨论】:

      猜你喜欢
      • 2015-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-27
      • 2015-03-05
      • 2014-10-01
      • 2016-05-30
      • 1970-01-01
      相关资源
      最近更新 更多