阻断="假"在3.4.2中的JDBC Reconnection中不起作用

时间:2015-06-20 14:48:20

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

在JDBC重新连接策略中实现阻塞为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>

2 个答案:

答案 0 :(得分:0)

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

您面临的是系统异常。

  

系统例外

     

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

     

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

您可以阅读有关Mule错误处理here

的更多信息

我想设计人员认为,如果你有一个数据库连接器,那么在Mule应用程序启动时可以访问数据库,并且在许多方面这是一个很好的功能,而不是无声地失败,它会大声失败并失败快::)

答案 1 :(得分:0)

请尝试重新连接永久选项,而不是重新连接3次。 <reconnect-forever blocking="false" frequency="120000" />。这样,只要数据库连接恢复,就应该成功。