You will need to ask on the camel mailinglist as this is a camel question and 
not a netty question. Netty itself does not close anything, it only does what 
the user of it tells it, which seems to be camel here.



> On 20. Jul 2017, at 15:28, [email protected] wrote:
> 
> We are having akka - camel - netty environment, while communicating with the 
> host, akka default dispacher sends multiple requests to the host.
> For example akka-default-dispacher-1 sends two requests Request1 and Request2.
> 
> The Problem: The host is a standard banking service provider and sends 500 
> status code when it wants to send error response to the client along with the 
> SOAP response message.
> 
> The response is then interpreted in the following fashion:
> if (errorCause instanceof NettyHttpOperationFailedException) {
>                               NettyHttpOperationFailedException exception = 
> (NettyHttpOperationFailedException) error.getCause();
>                               if (exception != null) {
>                                       Integer statusCode = 
> exception.getStatusCode();
>                                       if (statusCode != null && statusCode == 
> 500) {
>                                               errorFlag = true;
>                                               HttpResponse httpResponse = 
> (HttpResponse) exception.getResponse();
>                                               if (httpResponse != null) {
>                                                       ChannelBuffer 
> responseBuffer = httpResponse.getContent();
>                                                       final byte[] body = 
> responseBuffer.array();
>                                                       String errorBody = new 
> String(body);
>                                               }
>                               }
>               }
>       }
> 
> When host responds with http status 500 for Request1, netty supposedly closes 
> the channel and the response for Request2 is not collected.
> 
> As a solution to this we found two methods to override this behaviour:
> 1. Set the throwExceptionOnFailure to false (true by default), so that netty 
> does not do any error handling and response for Request2 is captured.
> 2.Set okStatusCodeRange=200-500, so that 500 response is not considered as 
> error response and netty error handling for 500 is supressed.
> 
> However, both the above approaches have their own flaws, for instance if we 
> receive http response 400 or 404 or 405 for approach (2), they will be 
> considered as good responses and will not be handled.
> 
> Desired approach: Netty should not close channel when it receives 500 
> response Or There should be a provision to suppress specific http response 
> code and not the entire range.
> Or any other approach or configuration that can done to resolve the above 
> issue.
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Netty discussions" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/netty/c6b6d720-f883-413d-b10d-1dafe7b2a21c%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/netty/c6b6d720-f883-413d-b10d-1dafe7b2a21c%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"Netty discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/netty/7394501B-3AD0-46EE-BB04-25421BC700C1%40googlemail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to