2014-06-25 139 views
2

使用DevKit编写的自定义Mule连接器应该默认与重新连接策略兼容。例如,我用以下http://www.mulesoft.org/documentation/display/current/Implementing+Connection+ManagementMule DevKit连接器,连接管理和重新连接策略

连接管理当我设置了一个错误的条件和我@Connect方法抛出ConnectionException我停止流动和连接器不会尝试,尽管有一个全局配置元素重新写了一个连接器:

<configuration> 
    <reconnect-forever frequency="2000"/> 
</configuration> 

我知道这个配置正在工作,因为它对JDBC传输有预期的效果,但不在我的自定义连接器上。

我错过了一些基本的东西吗?自定义连接器是否可以使用永久重新连接策略?

我用骡子CE 3.4和3.4的devkit

感谢任何帮助或指针在正确的方向。

+0

它应该工作,除非... bug?你可以试用3.5.0 CE吗? –

+0

嗨大卫。我希望这不是答案(操作员错误会更好)......我会放弃它。可能需要一点时间才能完成。 – geoffc

+0

因此3.5.0 CE没有喜悦。当@Connect方法失败时,像下面一样抛出错误,但不会尝试重新连接: 错误2014-06-26 09:25:04,227 [接收线程] org.mule.retry.notifiers.ConnectNotifier:连接失败/ reconnect:工作描述符。根异常是:请求中包含的安全令牌无效... 错误2014-06-26 09:25:04,228 [接收线程] org.mule.exception.DefaultSystemExceptionStrategy:异常策略中发生异常:... 你知道任何基于DevKit的连接器吗? – geoffc

回答

3

在DevKit中,为了让您的操作触发重新连接机制,您需要使用@ReconnectOn注释标记处理器,并指定将触发重新连接的异常。

@Processor 
@ReconnectOn(exceptions = {TypeAException.class, TypeBException.class}) 
public boolean fooProcessor(String param) 
         throws TypeAException, TypeBException, TypeCException; 

在这个例子中,TypeCException的例外不会触发重新连接,其他人会。

如果您的@ValidateConnection方法返回true,则不会再次调用@Connect。