Hello,
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
Frank
PS
The application is not written by me and that are all information i have about the internal things