2016-03-23 7 views
0

Ich habe unten Endpunkt-Eigenschaft verwendet und will es erneut versuchen Treffer, aber immer noch versucht es. Ich will nur einen Treffer zum Endpunkt, ob es Erfolg oder Misserfolg ist.Stop Retry im WSO2 ESB Endpoint

<endpoint name="DecisionGatewayProxy_EPR"> 
    <address uri="http://XXXX:8280/soap/XXXX"> 
     <timeout> 
      <duration>20000</duration> 
      <responseAction>fault</responseAction> 
     </timeout> 
      <markForSuspension> 
      <errorCodes>101504, 101505</errorCodes> 
      <retriesBeforeSuspension>0</retriesBeforeSuspension> 
      <retryDelay>1</retryDelay> 
     </markForSuspension> 
     <suspendOnFailure> 
      <errorCodes>101500, 101501, 101506, 101507, 101508</errorCodes> 
      <initialDuration>20000</initialDuration> 
      <progressionFactor>0.0</progressionFactor> 
     </suspendOnFailure> 
    </address> 
</endpoint> 

Antwort

0

Ich glaube nicht, dass es in WSO2 ESB möglich ist. Stellen Sie als Vorschlag sicher, dass Sie unabhängig vom Erfolg oder Fehler eine Antwort vom Server senden (senden Sie mindestens 202 ACCEPTED) und versuchen Sie dann nicht, die gleiche Nachricht zu senden.

+0

Danke für das Posten von Kommentar hier, wirklich zu schätzen. Könnten Sie mir bitte mit einem Beispiel mitteilen, wie Sie den Status 202 senden können, damit er es nicht erneut versucht? –

+0

können Sie HTTP-Server schreiben, um 202 zurückzugeben, wenn nichts geändert wird. – richard

1

AFAIK das Standardverhalten sendet eine einzelne Anfrage. Und wenn ESB fehlschlägt, markiert ESB es als Zeitüberschreitung. So IMO wird es nicht erneut automatisch nach Zeitüberschreitung versuchen. Wenn Sie den Endpunkt jedoch als SUSPENDED markieren müssen, können Sie den Wert <retriesBeforeSuspension>0</retriesBeforeSuspension> auf 1 setzen. Dadurch wird der Endpunkt nach dem Ausfall eines einzelnen Endpunkts als SUSPENDED gekennzeichnet.

Hoffe, das hilft.

+0

Ist Ihnen das sicher, dass esb, wenn wir eine Wiederholungsrichtlinie festlegen, die Nachricht automatisch an den Endpunkt sendet (und die Nachricht/Sequenz erneut abgespielt wird)? Es ist noch nicht 100% klar, wie es für mich funktioniert. – Nicolas