powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP + Oracle. При каждой перезагрузке страницы с select'ом создаётся новая сессия Oracle
7 сообщений из 7, страница 1 из 1
PHP + Oracle. При каждой перезагрузке страницы с select'ом создаётся новая сессия Oracle
    #38943504
Warlock86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеются два сервера: тестовый и рабочий. На тестовом Windows, на рабочем Linux. На каждом из них установлены Apache, PHP и Oracle. На каждом находятся идентичные веб-страницы. На веб-странице есть форма куда вводится номер и после нажатия кнопки Submit идёт поиск данных по этому номеру. При повторном поиске на тестовом сервере используется та же сессия, что и до этого, а на рабочем появляется новая сессия, а старая остаётся неактивной. Таким образом может накопиться довольно много неактивных сессий, что замедляет работу. Подскажите, где искать причину этого. session.use_cookies на обоих серверах равно 1. Для подключения к Oracle вызывается OCIPlogon при каждой загрузке страницы.
...
Рейтинг: 0 / 0
PHP + Oracle. При каждой перезагрузке страницы с select'ом создаётся новая сессия Oracle
    #38943524
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зависит от того, как у вас настроена связка PHP и Apache

Чтобы поддерживать persistent коннекты, PHP обязательно должен использоваться как модуль Апача.
Если у вас на рабочем PHP подключен как mod_cgi (что в подавлющем большинстве случаев встречается на виртуальных хостингах, для разделения поав доступа скриптов к файловой системе), то PHP тупо архитектурно будет не в состоянии сохранять между вызовами любые полученные ресурсы (в том числе коннекты к БД), т.к. в CGI режиме процесс PHP убивается после окончания работы скрипта.


А локально на тестовой у вас вполне может стоять какой-то Денвер, в котором PHP подключен как модуль Апача и вполне себе держит persistent коннекты к БД.
...
Рейтинг: 0 / 0
PHP + Oracle. При каждой перезагрузке страницы с select'ом создаётся новая сессия Oracle
    #38943588
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЧтобы поддерживать persistent коннекты, PHP обязательно должен использоваться как модуль Апача.

пруф?
...
Рейтинг: 0 / 0
PHP + Oracle. При каждой перезагрузке страницы с select'ом создаётся новая сессия Oracle
    #38943707
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowпруф?


http://php.net/manual/en/features.persistent-connections.php

This has to do with the way web servers work. There are three ways in which your web server can utilize PHP to generate web pages.


Третий способ - совсем экстравагантный, на практике не встречал ни разу.
Остаются первые два.
...
Рейтинг: 0 / 0
PHP + Oracle. При каждой перезагрузке страницы с select'ом создаётся новая сессия Oracle
    #38943716
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это уже давно неактуально. с 5.3 помоему PHP-FPM встроен в сам PHP и все пользуются им. постоянные соединения там есть.
...
Рейтинг: 0 / 0
PHP + Oracle. При каждой перезагрузке страницы с select'ом создаётся новая сессия Oracle
    #38943739
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowэто уже давно неактуально. с 5.3 помоему PHP-FPM встроен в сам PHP и все пользуются им. постоянные соединения там есть.

Ну, за всех тоже не стоит говорить. Из того, что вы используете его в своих проектах, никак не следует, что его используют все.
Некоторые хостеры, особенно предоставляющие услуги бесплатного хостинга, "из коробки" поставляют устаревшую конфигурацию на своих VPS.

Многие и в продакшене до сих пор на 5.2 сидят из-за отсутствия бабла на переход на новые версии.

Но, собственно, я возможную проблему обозначил топикстартеру.
Дальше уже поди разберётся в какую сторону копать и какие настройки посомтреть. Еще там какой-то параметр в php.ini есть про число коннектов, может еще туда стоит заглянуть на тестовом инстансе и на рабочем.
...
Рейтинг: 0 / 0
PHP + Oracle. При каждой перезагрузке страницы с select'ом создаётся новая сессия Oracle
    #38944792
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если пхп запущен так, чтоб иметь возможность сохранять ресурсы между запусками...то речь идёт о числе воркеров.

на винде, воркер один!!! поэтому повторный заход на страницу гарантировано попадание на тот же воркер, и у него уже есть подключение к оракл.

на продакшине же, не виндоуст, и там есть настройка число воркеров...допустим 20. это значит что при старте стартует 20 нитей пхп, и каждая оперирует своим сохранённым подключением к базе.

поэтому в теории, можно и 20 раз подключиться, и постоянно будут идти новые подключения.
(если случай этот, то в самой базе если посмотреть на текущие подключения - их число будет расти)

также я сталкивался с тем что эти подключения могут подвисать...тоесть вместо того что б использовать прежнее, всеравно создаёться новое. гуглить - похоже не имееться способ это разруливать...

---
также повторное использование подключения - это перед повторным использованием отправляеться команда на сервер сброс текущего пользователя...тоесть по сути используеться только существующее тсп-соединение. а сама сесия базы как бы перегружаеться - заново считываються настройки юзера, права и прочее. вот сама команда может быть не доступна...

причин масса. но по моему опыту и опыту гугления... либо случайно найдёшь причину, либо нет...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP + Oracle. При каждой перезагрузке страницы с select'ом создаётся новая сессия Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]