我們正在使用WSO2
ESB
克隆並將SOAP請求廣播到我們在IIS
上託管的所有Web服務。最近我們切換到nhttp
運輸。它被配置爲推薦here但不活動期後,每次我們wso.logWSO2 ESB HTTP連接被遠程主機強制關閉
[HTTP Sender I/O dispatcher-4] ERROR ClientHandler I/O error : An existing connection was forcibly closed by the remote host For : 127.0.0.1:4148
java.io.IOException: An existing connection was forcibly closed by the remote host
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:197)
...
活動週期的長短取決於在IIS中配置爲特定的Web服務'Connection Time-out value'
encount異常。看起來像WSO2 ESB並沒有關閉所有打開的套接字連接,並且在超時期限到期時IIS
取而代之。
是否有辦法避免這種異常?它似乎沒有造成一些性能缺陷,但在錯誤日誌中看起來相當混亂。
我們的配置,負責線程數和超時情況如下:
nhttp.properties
文件:
http.socket.timeout=120000
nhttp_buffer_size=16384
http.tcp.nodelay=1
http.connection.stalecheck=0
http.block_service_list=false
synapse.properties
文件:
synapse.threads.core = 40
synapse.threads.max = 100
#synapse.threads.keepalive = 5
#synapse.threads.qlen = 10
#synapse.threads.group = synapse-thread-group
#synapse.threads.idprefix = SynapseWorker
synapse.sal.endpoints.sesssion.timeout.default=600000
synapse.global_timeout_interval=120000
後端服務是完全響應,異常中止期間發生的,畢竟響應已發送,並有來自WSO2 ESB沒有其他請求一個Web服務連接超時期限。我會嘗試4.8.0並檢查在那裏情況是否相同。 – user2547004
好的。我不確定這個問題。請嘗試4.8.0並看看。同時,您可以禁用HTTP Keep-Alive並查看。 http://docs.wso2.org/display/ESB480/HTTP+Transport+Properties#HTTPTransportProperties-NOKEEPALIVE –