Apache не отвечает после выполнения сценария PHP слишком долго

У нас есть приложение PHP, созданное на основе Yii Framework, которое подключается к базе данных Oracle и работает на Apache, настроенном с помощью Zend Core For Oracle. Apache также запускает другое приложение на другом порту.

У нас есть страница, которая делает сложный запрос к БД, который занимает около 10 минут. Мы находимся в процессе сокращения времени, которое занимает этот запрос, но пока это проблема.

Проблема в том, что после вызова страницы PHP другие страницы не отвечают, даже те, которые не запрашивают БД. Другое приложение, которое запускает Apache, которое не использует Yii и использует другую БД, также не отвечает.

Почему это происходит? Разве Apache не может обрабатывать несколько запросов одновременно, даже если один еще выполняется?

Ошибка, полученная от Apache, является следующей, которая должна быть общей ошибкой сообщения, возникающей при сбое связи с БД:

fcgi: не удается прочитать ответ от D:\Programmi\Zend\Core For Oracle\bin\php-cgi.exe

Мы не затрагивали большую часть конфигурации Apache по умолчанию, поэтому для maxClients и ServerLimit должно быть установлено значение 256 (по умолчанию)

Есть идеи, где искать проблему?

1 ответ

В любом случае проблема в том, что после вызова страницы php все приложение "зависло", другие страницы не отвечают, даже те, которые не обращаются к БД.

Вы используете сессии в этой БД? PHP монопольно блокирует файл сессии, пока скрипт не завершит выполнение.

Другие вопросы по тегам