Я только что задал этот вопрос о stackoverflow, и мне было рекомендовано задать его здесь.
У меня есть приложение PHP, которое использует функции ODBC для доступа к базе данных. Мой администратор баз данных недавно обнаружил, что приложение не закрывает свои соединения с базой данных, что приводит к многочисленным недействительным соединениям, которые находятся в состоянии TIME_WAIT.
Мы проверили код, и я выполняю вызов odbc_close_all в каждом скрипте, плюс, даже если я этого не сделал, соединение все равно должно закрыться в конце скрипта. Нет долго работающих скриптов, удерживающих свои соединения
Кто-нибудь видел что-нибудь подобное или имеет представление, в чем может быть проблема?
Версия PHP 5.1.4
Работает на Windows Server 2003 R2 с пакетом обновления 2
База данных MySQL
После долгих исследований мы наткнулись на несколько источников, которые сообщили, что это проблема TcpTimedWaitDelay (спасибо VolkerK за подсказку). Это очень помогло, но мы все еще видим около 30-40 соединений в состоянии TIME_WAIT в любой момент времени.
Теперь нам интересно, есть ли у кого-нибудь совет относительно того, является ли такое поведение нормальным для Windows Server и насколько хорошо это получается, или есть ли другие возможности, которые стоит изучить.
Спасибо