Доброго всем времени суток!
В последнее время на сайте заметно прибавилось пользователей и появился такой глюк - иногда не удается подключиться к SQL Server 2000.
Кусок скрипта (самописный класс), где происходит ошибка:
в логах Апача пишется следующее:
CODE (
text):
скопировать код в буфер обмена
[Thu Feb 21 20:50:58 2008] [error] [client 82.200.***.***] PHP Warning: mssql_connect() [<a href='function.mssql-connect'>function.mssql-connect</a>]: Unable to connect to server: ****** in ******.php on line 22
При обновлении страницы иногда подключается, иногда опять вываливается.
Конфигурация сервера: Windows 2000 + Apache 2 + PHP 5. Загрузка процессора в пике - не более 70%, ОЗУ - не более 50%. Еще на этом сервере живет самописный сервис, тоже работающий с SQL (через ADO) - у него никаких проблем с подключением нет. Из локальной сети на проблемы с подключением к этой же БД никто не жалуется.
SQL Server 2000 (SP4) стоит на отдельном сервере, соединен с веб-сервером гигабитной сетью. Сетевушки проверялись/менялись. Загрузка процессора в пике - не более 90%, ОЗУ - не более 70%.
Подключение к серверу по TCP/IP (именованные каналы отключены, но пробовал включать - без результата).
Что уже пробовал:
1) Заменил ntwdblib.dll в комплекте PHP на новую версию (правда, этот баг больше касается MSSQL2005)
2) SQL Server перенесен на более производительный сервер.
3) пробовал заменить mssql_connect на mssql_pconnect
4) пробовал подключаться как по IP с указанием порта, так и по имени сервера. Пинг/телнет работает нормально.
От проблемы избавиться не удалось - бывают какие-то "всплески" (не связанные с загрузкой процессоров и оперативки компьютера), когда 1-2 минуты в логах подряд ошибки подключения... Иногда - и по 30 минут.
С чем это может быть связано? Затыкается локалка - вряд ли, т.к. проблемы с подключением только у PHP. Кстати, раньше Apache и SQL работали на одной машине, проблемы с подключением за год работы не было ни разу.