У нас есть устройство AIX, на котором работает то, что мы называем в банковском деле «ATM Switch», не сетевой коммутатор ATM, а драйвер банкомата банка. где у нас есть несколько банкоматов, подключенных к двум серверным процессам.
Проблема в том, что когда мы отключаем любую из этих машин, netstat -na| grep <port number>
Команда показывает, что сокет, установленный для этого отключенного устройства, все еще установлен, мы должны вручную отправить команду из программного обеспечения, чтобы сокет знал, что он больше не работает.
Есть ли параметр на уровне tcp, чтобы это соединение узнало в течение минуты или двух, что это устройство больше не подключено? у нас были следующие параметры, установленные с правами root:
no -o tcp_keepidle=1000
no -o tcp_keepcnt=2
no -o tcp_keepintvl=150
no -o tcp_finwait2=100
изначально он имел значения по умолчанию. но даже после того, как мы изменили эти параметры и перезапустили серверные процессы, проблема не исчезла.
это оказался tcp_keepidle, который нужно уменьшить до 100, а остальные значения остались прежними
это сделало разрыв связи примерно через 5 минут