You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by xuhongbo <xu...@tongtech.com> on 2008/02/26 05:13:01 UTC
network break down doesn't immediately cause Client request failure
Recently , I found out that while synapse relaying the request from client to another axis server, if the network break down, client will never received failure immediatly. It always failed while it's own timeout exceed or synapse's internal timeout exceed;
scenarios:
Using http porotocol;
axisClient<-->synapse <--> axisServer
1) axisClient send request to synapse
2) syanpse relay request to axisServer
3) network between synapse and axisServer breakdown(or just shutdown axisServer)
4) axisClient doens't failure immediatly, It's alway's failure when it's timeout exceed;
The more details reson I have find out is:
When network breakdown(or axisServer shutdown), org.apache.synapse.transport.nhttp.ClientHandler's corresponding callback handler is invoked (onClose(), or onException(),...) . and the callback only just shutdown the connection.
But the sessionRequestCallback(HttpCoreNIOSender.sessionRequestCallback) registed when establish http connection(ioreactor.connect(...)) will never be called. so the failure response will not be generated and send back to axisClient.
And is there any other things could I do to avoid this situation?
Re: network break down doesn't immediately cause Client request failure
Posted by "Asankha C. Perera" <as...@wso2.com>.
Hi xuhongbo
Let us know when you are subscribed to the dev and/or user lists of
Synapse, since otherwise you will not receive our replies
asankha
xuhongbo wrote:
> Recently ,I found out that while synapse relaying the request from
> client to another axis server, if the network break down, client will
> never received failure immediatly. It always failed while it's own
> timeout exceed or synapse's internal timeout exceed;
> scenarios:
> Using http porotocol;
> axisClient<-->synapse <--> axisServer
> 1) axisClient send request to synapse
> 2) syanpse relay request to axisServer
> 3) network between synapse and axisServer breakdown(or just shutdown
> axisServer)
> 4) axisClient doens't failure immediatly, It's alway's failure when
> it's timeout exceed;
> The more details reson I have find out is:
> When network breakdown(or axisServer shutdown),
> org.apache.synapse.transport.nhttp.ClientHandler's corresponding
> callback handler is invoked (onClose(), oronException(),...) . and the
> callback only just shutdown the connection.
> But the
> sessionRequestCallback(HttpCoreNIOSender.sessionRequestCallback)
> registed when establish http connection(ioreactor.connect(...)) will
> never be called. so the failure response will not be generated and
> send back to axisClient.
> And is there any other things could I do to avoid this situation?