ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] KeepAlive



Попробуйте поставить /server-status/

                <Location /server-status>
                        SetHandler server-status
                        Order deny,allow
                        AuthType Basic
                        AuthName "Restricted Files"
                        AuthBasicProvider file
                        AuthUserFile ....
                        Require valid-user
                </Location>
Для этого должен быть модуль mod_status. Потом зайдите на http://host/server-status/ и посмотрите находятся ли чилды в состоянии KeepAlive. Проверьте параметры:
KeepAlive
KeepAliveTimeout
MaxKeepAliveRequests

Клиент у вас случаем не использует HTTP/1.0?


On Mon, 13 Aug 2007 15:45:08 +0400
"Даниил Меграбян" <danil.megrabjan@xxxxxxxxx> wrote:

> > 
> > Господа, не совсем понимаю сути KeepAlive, от того наверное проблема и
> > возникла... пните в нужную сторону.
> > 
> > OS: SLES10 ( OpenSuse )
> > - Apache 2.2.4 (prefork)
> > - php 5 (mod)
> > - unixODBC
> > 
> > Очень необходимы (постоянные соединения с бд), для пользования
> > времянками и т.п...
> > 
> > Для этого сделаны: в unixODBC выставлен pooling конэктов к бд, keepalive on 600.
> > 
> > Как должно получиться в идеале. "Браузер 1" грузит index.php. В
> > скрипте устанавливается коннэкт до БД через unixODBC. Он этот конэкт
> > кладет в пул. Итого Apache отдает какой-то html клиенту. Всё, на этот
> > раз. (т.к. keepalive. Cамо соединение между браузером/клиентом
> > осталось?!) Далее. Cпустя чуть-чуть (менее 600 секунд) тот же "браузер
> > 1" щемиться в script2.php там происходит попытка коннэкта к бд через
> > unixodbc. Поскольу процесс Apache один и тот же (в случае 1, и
> > нынешнем) unixODBC подкидывает коннэкт php с pool'a поскольку
> > реквизиты на коннэкт одни и те же (юзер, пароль, база...) и вот такой
> > заколдованный круг. Самая главная задача, итого чтобы юзер
> > законнектившийся к бд один раз через определенный форканный процесс
> > Apache, далее все последующие запросы там же и выпонялись в этом же
> > процессе.
> > 
> > На яву же получается бредовая картина. Apache ведет себя по своему
> > собственному настроению.
> > 1. HTTP запрос
> > Конэкт к базе - полет нормальный. Обрабатываемся в форканом процессе (
> > к примеру, ?10).
> > 
> > 2. HTTP запрос
> > Создаем времянку - полет нормальный. Выполнились в том же 10 процессе.
> > 
> > 3. HTTP запрос
> > Какая-нибудь еще операция с БД. Apache форкнул процесс и мы уже
> > выполняемся в процессе ?11. Нашего старого коннэкта в пуле этого
> > процесса естественно нет. Это порождает новый коннэкт к бд с теми же
> > реквизитами...
> > 
> > Очередность запросов и результатов, совершенно не поддается логике.
> > Может случиться и на 2 http запросе и на 10...
> > 
> > Как быть, жить хочется ?! :)
> > 
> > -- 
> > Daniil A Megrabjan | email danil.megrabjan@xxxxxxxxx | icq 4545450


-- 
WBR dyker
Agava Software
GPG Pub key: http://keyserver.veridis.com:11371/export?id=-3088395899858320934&created=1134482111000
ICQ: 196076228
Mobile: +7(926)144-93-86



 




Copyright © Lexa Software, 1996-2009.