i have a problem, that probaply came up on version 1.5 and I already have seen 1-2 discussions here, but no solution
We have an dot.net client/server application (the application uses the wcf dotnet framework) that creates an tcp connection. the wcf framework disconnects the tcp connection after an configurable time (nomally 10min) of inactivity with an “rst, ack”, This is not configurable.
haproxy sends an fin, ack to the client, but there is no option in the wcf framwork to get an exception for this, so nothing can be done on the application side that the session should be closed… instead data will be send and then ha proxy send a RST. This causes a high cpu load on the client side.
- on Serverside only the timeout value can be changed [RST, ACK] is fixed
- on client side the application gets no notfification for an [FIN, ACK] so no workaround can be written.
why will an [RST, ACK] rewritten to [FIN, ACK] on an plain TCP loadbalancing??
I using the latest stable HA-Proxy with this configuration:
defaults log global mode tcp option tcplog #option dontlognull timeout connect 28800000 timeout client 28800000 timeout server 28800000 frontend frntend bind 0.0.0.0:11011 mode tcp use_backend bckend backend bckend mode tcp balance roundrobin stick-table type ip size 10k expire 30m stick on src server server1 10.10.116.227 check port 11011 server server2 10.10.116.228 check port 11011 server server3 10.10.116.229 check port 11011
Thanks a lot
The application is not written by me and that are all information i have about the internal things