0

在 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>
4

2 回答 2

0

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

您面临的是系统异常。

系统异常

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

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

您可以在此处阅读有关 Mule 错误处理的更多信息

我猜设计师的观点是,如果你有一个 DB 连接器,那么当 Mule 应用程序启动时,该 DB 就可以访问,而且在很多方面,这是一个很好的特性,而不是默默地失败,它会响亮地失败并快速失败 :)

于 2015-06-22T06:51:50.793 回答
0

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

于 2015-07-06T23:33:32.830 回答