Время от времени запросы к серверу Linux (скажем, linux.example.org), где веб-приложение (Django) извлекает данные из базы данных SQL Server через FreeTDS, будут зависать.
Запросы на другие серверы, указывающие на базу данных, по-прежнему работают, как и запросы на linux.example.org, которые используют локальные базы данных MySQL. Похоже, что затронуты только сервер и FreeTDS.
После перезапуска httpd соединения с базой данных снова работают правильно.
Что могло вызвать эту проблему?
Использование: Centos 5.9 freetds 0.91 Apache httpd 2.2.3
/etc/obdc.ini:
[DSN]
Description = SQL Server 2005
Driver = FreeTDS
;Database = dbname
Servername = SERVERNAME
;TDS_Version = 8.0
/etc/freetds.conf:
[SERVERNAME]
driver = /usr/lib64/libtdsodbc.so
host = db.example.org
port = 1433
tds version = 8.0
client charset = UTF-8
Можете ли вы воспроизвести это программно? Я имею в виду, что у вас есть тестовый пример, который вы можете запустить и добиться того же поведения. Вы зарегистрировали SQL, который он пытается запустить, когда это происходит? Вы видите сообщение об ошибке в журналах? Я бы прикрепил strace к соответствующим процессам, чтобы проверить, что происходит, tcpdump и т. Д.