2011-11-08 39 views
1

我試圖建立一個重試的政策,像這樣:建立一個重試策略

<spring:beans> 
     <spring:bean id="threadingPolicyTemplate" 
      class="org.mule.retry.async.AsynchronousRetryTemplate"> 
      <spring:constructor-arg index="0"> 
       <spring:bean id="foreverRetryPolicyTemplate" 
        class="com.Component.ChatConnectionRetryPolicyTemplate"> 
        <spring:property name="sleepTime" value="${connector.retryInterval}" /> 
       </spring:bean> 
      </spring:constructor-arg> 
     </spring:bean> 
    </spring:beans> 

    <jdbc:connector name="jdbcConnector" dataSource-ref="SQLServerjdbcDataSource"> 
     <spring:property name="retryPolicyTemplate" ref="threadingPolicyTemplate"/> 
     <jdbc:query key="PollDB" 
      value="select * from ofMessageArchive where ID > #[payload:]" /> 
    </jdbc:connector> 

我使用上述連接器作爲我的流量出站端點,但我沒有看到重試政策,甚至被稱爲。 (我設置了斷點,所以他們沒有被調用)。

我使用某種螺紋SimpleRetryPolicy(沒有任何幻想)的。

關於此事還有一個問題 - 假設連接器不啓動(重試政策正在嘗試) - 會發生於使用連接器作爲一個端點的流量是什麼?

如何對待騾子這些東西?

回答

0
  • 即使JdbcConnector有初始化noops /啓動/停止/處置方法,要求您重試策略模板應該被稱爲之後AbstractConnector.connect()日誌「連接」。也許你想在這個地方斷點續行?

  • 如果使用螺紋重試政策,將騾子即使連接失敗開始。入站端點取決於此連接器將不會啓動,因此使用它們的流程不會觸發,直到連接器可以啓動。出站端點將引發異常:由您來處理這種情況,或者直到成功或者執行一些自定義處理問題的異常策略。