2014-06-25 137 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。