Story
After a while we and the user detected some queries on the user interface are finished with a strange message: "Connection Failure" with HTTP 200 OK. Who generated this message, why we received this? Why HTTP 200? Only in Production environment.The message appeared in only every 10th call or later, but after the first strange answer it was constant until a half minute.
This system architecture is very simple, this is the scheme:
What is the cause?
1. Performance issue?
After a test period we contacted with the support, they figured out they will increase the memory in the weblogic server.Of course It was not enough.
2. Communication problem?
We logged the request and response headers and body to analyze the situation. We checked also the weblogic logs about the response size of the same queries.
User-Agent: ColdFusion
Accept-Encoding: identity
Cache-Control: max-stale=0
Connection: Keep-Alive
The responses from the Weblogic server were perfect every time, but we still had the problem on CF.
3. Environment problem?
There was a dummy idea for testing the environment, we have development, test, acceptance, load and production.
As mentioned we changed the configuration pointing a Weblogic to another database, and CF server to another Weblogic server. In some environments we use HTTP, in others HTTPS.
This test was not useful for the analysis.
4. Check the architecture again
Look again the system architecture deeper:Ok. Of course we have more IPs, servers, firewalls, proxies etc!
Some testers started to call the proxy IP instead of the Weblogic IP. We saw the response header was different sometimes, they change totally the Weblogic response and compress the data, against the CF headers, which contains in the Accept-Encoding, give me uncompressed data.
After a little search we found, the ColdFusion server sometimes can not handle the compressed/gzipped response, he says "Connection Failure" with HTTP 200 OK.
Content-encoding: gzip
Solution
Switch off the data compression in the proxy, in our case.
Conclusion
The application was perfect, the solution was working until a point. Somebody changed the configuration of one element of the environment, and we faced with this communication issue.The ColdFusion server was not user and support friendly, again. He got the messages, the content well, the HTTP 200 was true, but the "Connection Failure" message was false. There was no problem with the connection, the CF could not compress or handle the gziped data.

