Назад | Перейти на главную страницу

Apache httpd + FreeTDS зависает до перезапуска

Время от времени запросы к серверу 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 и т. Д.