ПРОЕКТЫ 


  АРХИВ 


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[2]: [apache-talk] KeepAlive



Здравствуйте, Pronichev.
Вот скажите, какого фига вы мне пишете??

Слухач.




> Попробуйте поставить /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



 




Copyright © Lexa Software, 1996-2009.