2016-03-29 4 views
0

Ich verwende WSO2 ESB 4.9 zusammen mit dem Message Broker für die garantierte Zustellung einer Nachricht. Mein messageProcessor sendet eine Nachricht an den Proxy-Dienst, in dem ich eine Umwandlungsnachricht mache und an den Remote-Dienst sende.Wie entferne ich von ESB eine Nachricht in der Warteschlange, wenn die Qualitätsversuche enden

<messageProcessor 
    class="org.apache.synapse.message.processor.impl.forwarder.ScheduledMessageForwardingProcessor" 
    messageStore="CyberPalt_JMS_MS" name="CyberPlat_ProcsessAddPayment" 
    targetEndpoint="CyberPlat_JMSEp" xmlns="http://ws.apache.org/ns/synapse"> 
    <parameter name="client.retry.interval">1000</parameter> 
    <parameter name="max.delivery.attempts">2</parameter> 
    <parameter name="max.delivery.drop">Disabled</parameter> 
    <parameter name="interval">1000</parameter> 
    <parameter name="is.active">true</parameter> 
</messageProcessor> 

<endpoint name="CyberPlat_JMsEp" xmlns="http://ws.apache.org/ns/synapse"> 
    <address trace="disable" uri="http://itprog3:8280/services/CyberPalt_JMS_MsProxy"/> 
</endpoint> 

<proxy name="CyberPalt_JMS_MsProxy" startOnLoad="true" trace="disable" 
    transports="http https" xmlns="http://ws.apache.org/ns/synapse"> 
    <target> 
    <inSequence> 
     <xslt key="request_xslt" /> 
     <send> 
     <endpoint key="testRemoteEp"/> 
     </send> 
    </inSequence> 
    <outSequence> 
     <send/> 
    </outSequence> 
    <faultSequence/> 
    </target> 
</proxy> 

Aber wenn die Qualitätsversuche enden, bleibt die Nachricht in der Warteschlange. Wie entferne ich eine Nachricht in der Warteschlange, wenn der Qualitätsversuch endet?

Antwort

0

Ändern Sie den Wert von „max.delivery.drop“ in der MP-Konfiguration ermöglichen es

+0

Ja, es ist funktioniert, wenn der Endpunkt in der Message, auf dem Remote-Service konfiguriert, aber nicht funktionieren, wenn die Endpunkt konfiguriert auf dem ProxyService und dort wird die Nachricht im EndPoint gesendet. –

+0

nicht sicher zu verstehen, sagten Sie, dass Qualitätsversuche enden, so dass ich dachte, dass es keine Antwort von Ihrem Proxy gab und dann die MP die Nachricht erneut sendeten? Wenn es eine unangemessene Antwort von Ihrem Proxy-Dienst gibt, sollten Sie vielleicht eine FaulSequence hinzufügen oder die Nachricht in der outSequence testen und entscheiden, eine entsprechende Nachricht zurückzugeben: Ändern Sie HTTP-Statuscode mit und wähle einen anderen Wert als 200 oder 500, damit der MP entscheidet, dass es sich um einen Fehler handelt –

+0

In der faulSequence addiere eine Nachricht in der Warteschlange gelöscht. Vielen Dank. –

Verwandte Themen