2016-05-02 5 views
1

Ich mache UDP zu HTTP-Transformation mit WSO2 esb mit folgenden Proxy-Konfiguration.WSO2 esb UDP zu TCP Umwandlung in hoher Rate

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
     name="UDPProxy" 
     transports="udp" 
     statistics="disable" 
     trace="disable" 
     startOnLoad="true"> 
    <target> 
     <inSequence> 
     <property name="OUT_ONLY" value="true"/> 
     </inSequence> 
     <outSequence> 
     <log level="full"/> 
     <send/> 
     </outSequence> 
     <endpoint> 
     <address uri="http://127.0.0.1:9764"/> 
     <property name="messageType" value="application/json" scope="axis2"/> 
     </endpoint> 
    </target> 
    <parameter name="transport.udp.port">9998</parameter> 
    <parameter name="transport.udp.contentType">text/plain</parameter> 
    <description/> 
</proxy> 

Und dann habe ich ein einfaches Server-Programm java http läuft auf Port 9764. So zum Hafen es nur hören und lügt Anzahl der empfangenen Nachrichtenanzahl für alle 5 Sekunden.

Ich testete oben Proxy mit UDP-Nachrichten (10 UDP-Nachrichten pro Sekunde) und es hat gut funktioniert. Dann probierte ich mit 100 UDP-Nachrichten pro Sekunde aus und nachher kann ich folgendes an der ESB-Konsole anmelden.

[2016-05-02 12:04:45,160] WARN - TargetHandler http-outgoing-2426: Connection time out while in state: REQUEST_DONE 
[2016-05-02 12:04:45,163] WARN - SynapseCallbackReceiver Synapse received a response for the request with message Id : urn:uuid:101bdbc5-e5fa-4c35-8aa1- 525060b55dec But a callback is not registered (anymore) to process this response 
[2016-05-02 12:04:45,163] WARN - TargetHandler http-outgoing-2399: Connection time out while in state: REQUEST_DONE 
[2016-05-02 12:04:45,165] WARN - SynapseCallbackReceiver Synapse received a response for the request with message Id : urn:uuid:4197a771-8b6d-4d82-bf39-87710c0c18d2 But a callback is not registered (anymore) to process this response 

Ich bin mir nicht sicher, warum oben Warnung erscheint. Könnte mir jemand dabei helfen? Auch ich nehme an, die Verbindung zwischen diesem pxoxy und meinem HTTP-Client ist HTTP NIO.

Antwort

1

Der ESB wartet auf eine Antwort von Ihrem Endpunkt (127.0.0.1:9764), fällt aber im Timeout ab. Nach dieser Zeitüberschreitung empfängt der ESB eine Antwort, aber es ist zu spät, Ihr Callback (outSequence) existiert nicht mehr.

Wenn Sie HTTP NIO verwenden, haben einen Blick auf Repository/conf/axis2/axis2.xml, für die http suchen transportSender ant configure "SO_TIMEOUT", Probe für 2 Minuten: <parameter name="SO_TIMEOUT">120000</parameter>

Wenn Sie brauchen eine längere Auszeit, haben Sie synapse.global_timeout_interval in Repository/conf/synapse.properties

+0

Kann ich deaktivieren dies und bitten ESB nicht zu warten, für die Antwort ändern? – lsc

+0

Ich bin nur der Meinung, dass Sie OUT_ONLY in Ihrer inSequence auf TRUE gesetzt haben, der ESB sollte nicht auf eine Antwort von Ihrem Endpunkt warten, aber wenn er eine solche Antwort erhält, werden Sie gewarnt, dass es keinen Rückrufempfänger gibt. .. Ich weiß nicht, warum es "Verbindungstimeout im Zustand: REQUEST_DONE" gibt –