
Tenemos una máquina que se ejecuta en Linux donde exponemos y también consumimos servicios web basados en SOAP que utilizan la configuración de Keep Alive. Ahora, cuando cambiemos el valor del tiempo de espera de mantenimiento de TCP configurando "/proc/sys/net/ipv4/tcp_keepalive_time" en Linux, ¿afectará esto tanto a los clientes TCP como a los servidores que se ejecutan en este sistema de Linux?
Información adicional: utilizamos puntos finales apache camel-cxf implementados en apache karaf (servicemix) para exponer y consumir servicios web basados en SOAP.
Respuesta1
El soporte integrado del kernel de Linux para TCP keepalive afectatodoSockets TCP habilitados para keepalive.
Sin embargo, TCP keepalive no está habilitado de forma predeterminada: las aplicaciones deben solicitar explícitamente el control de keepalive para sus sockets mediante la setsockopt
interfaz.
Puede verificar si keepalive está habilitado en un socket específico usando el netstat
comando con la -o, --timers
opción:
Aquí puedes ver que el mismo proceso puede abrir diferentes sockets de red en ambos modos:
# netstat -anpo | grep 8999
tcp 0 0 10.10.171.44:48744 10.10.139.30:8999 ESTABLISHED 18232/java keepalive (83.39/0/0)
# netstat -anpo | grep 8009
tcp 0 0 10.10.171.44:8009 10.10.171.42:40947 ESTABLISHED 18232/java off (0.00/0/0)