We are using SonicConnect to publish web services and as client services to make requests to external web services.
In the client use case where we consume an external web service, we have seen the SonicConnect service client fail each time when the response is chunked back. When the response is not chunked by the protocol layer, it all works fine. When the response gets large and the protocol determines that it must be chunked for the response, the SonicConnect client fails reading the resposne.
Using WireShark, we have confirmed that the SonicConnect client even sends some of the requests chunked to the external service so intuitively, one would think it could handle a chunked, larger response.
Any ideas on this behavior? A bug possibly? We are using Sonic v8.0.1.01. Thanks.
Please submit a defect.
We suspected as much. I will submit one with as much information as we can provide. Thanks William.
William, I have made our support contact aware of this issue. Hopefully it can be repaired in the upcoming 8.5 release or a hotfix prior to that.
Can you ask internally if anyone has configuration elements we should possibly modify to make the SonicConnect Client work in reading the response stream or are we simply at the mercy of a hotfix here?
Hi Chris
I an issue like this last month. I don't know whether this will help you. It fixed my problem.
Initiall I saw it for outgoing messages and removed the "transfer-encoding" header before sending the messge.
Then I saw it for responses to an incoming messages and fixed it by removing the header before sending the reply.
Status: Unverified
Audience: External
Symptom Sonic is returning "invalid chunk header" when calling JAVA Web service.
Symptom Sonic Connect service fails when invoking a external web service, with error "invalid chunk header"
Fact Windows
Fact Sonic ESB 8.0
Cause ESB message has a property "transfer-encoding" set to "chunked"
Fix Remove ESB message property "transfer-encoding", with value set to "chunked"
Stephen, thanks for the response to this post. Our issue was specifically with a SonicConnect client making a request to an external web service. If the response was chunked back to our SonicConnect client, it could never read the response stream fully and would fail. We got this behavior using a test server that would SonicConnect client could hit for the web service calls it needed to make. When we manipulated our test server to always properly compute the correct content length for the response and include it, the response would not be chunked coming back to the SonicConnect client and it would always work.
Your suggestion is noted. If we want to eliminate chunking outbound on our request to the external service, we will remove those transfer-encoding headers. I still believe SonicConnect has a bug handling a chunked response and it has been raised. Many thanks.