2016-04-13 21 views
1

API isteklerini, proxy servisi aracılığıyla Heroku'da barındırılan bir uygulamaya göndermek için WSO2 ESB kullanıyorum.WSO2 ESB: zaman aşımından sonra HTTP isteğini yeniden deneyin

Son birkaç gün içinde, Heroku uygulamasının bağlantılarının zaman aşımına uğradığını ve tüm istemci işleminin başarısızlıkla sonuçlandığını fark ettik.

Bu istekler, uzun bir sürecin (video kod çevrimi) bir parçası olduğundan, tüm 40 isteğin 1'inin başarısız olması gerçekten bir seçenek olmadığı için tüm süreci yeniden başlatıyor. Başarısız olan her isteği otomatik olarak bir saniye (veya n) zaman (lar) ı yeniden denemek en iyisidir.

Doğrudan istemci koduna "zaman aşımından yeniden deneme" uygulanması bir karışıklık olduğundan, tüm zaman aşımına uğramış istekleri yeniden denemek için son noktayı yapılandırarak bunun bizim için ele alabileceğini düşündük. The WSO2 ESB documentation on endpoint error handling, "nadir rastlanan ileti hataları kabul edilemez" olduğunda, tam kullanım durumumla ilgili olarak yalnızca bir yaprak son noktasını içeren bir yük devretme grubu ayarlayarak reklam verilebilir.

Ancak verilen örnek yapılandırma bırakarak mesajları devam görünmektedir: Ben burada eksik

[2016-04-13 16:02:50,576] WARN - Expiring message ID : urn:uuid:fd515b80-8d67-47e5-b409-0ec39ed58fc6; dropping message after timeout of : 60 seconds {org.apache.synapse.core.axis2.TimeoutHandler} 

: gibi wso2carbon.log yılında

<endpoint name="SampleFailover"> 
    <failover> 
     <endpoint name="Sample_First" statistics="enable" > 
      <address uri="http://localhost/myendpoint" statistics="enable" trace="disable"> 
       <timeout> 
        <duration>60000</duration> 
       </timeout> 

       <markForSuspension> 
        <errorCodes>101504, 101505, 101500</errorCodes> 
        <retriesBeforeSuspension>3</retriesBeforeSuspension> 
        <retryDelay>1</retryDelay> 
       </markForSuspension> 

       <suspendOnFailure> 
        <initialDuration>1000</initialDuration> 
        <progressionFactor>2</progressionFactor> 
        <maximumDuration>64000</maximumDuration> 
       </suspendOnFailure> 

      </address> 
     </endpoint> 
    </failover> 
</endpoint> 

Hala görüyorum günlük girişleri?

cevap

0

Bu konuyla ilgili bazı zorluklar ekledim ve son noktanın kendisini yeniden tetikleyip aramayı zamanlayıp zamanlayamadığı henüz belli değil. Bu öğretici okuduktan sonra

:

zaten hata kodları remveo denediniz ... https://www.yenlo.com/blog/wso2torial-error-handling-in-wso2-esb-with-wiremock?success=true, evet görünüyor, ama emin değilim?

<timeout> 
    <duration>60000</duration> 
    <responseAction>fault</responseAction> 
</timeout> 
<suspendOnFailure> 
    <initialDuration>1000</initialDuration> 
    <progressionFactor>2.0</progressionFactor> 
</suspendOnFailure> 
<markForSuspension> 
    <retriesBeforeSuspension>3</retriesBeforeSuspension> 
    <retryDelay>1000</retryDelay> 
</markForSuspension> 
İlgili konular