Apache httpd + FreeTDS 挂起,直到重新启动

Apache httpd + FreeTDS 挂起,直到重新启动

时常,向 Linux 服务器(例如,linux.example.org)发出的请求会挂起,Web 应用程序(Django)会通过 FreeTDS 从 SQL Server 数据库中提取数据。

指向该数据库的其他服务器上的请求仍然有效,使用本地 MySQL 数据库的 linux.example.org 上的请求也有效。只有服务器和 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

答案1

您能通过编程重现它吗?我的意思是,有一个您可以运行的测试用例,并让相同的行为发生。当发生这种情况时,您是否记录了它尝试运行的 SQL?您是否在日志中看到任何错误消息?我会将 strace 附加到适当的进程以检查发生了什么,tcpdump 等。

相关内容