Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

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

Re: [apache-talk] Are long connections possible?



On Mon, 27 Sep 1999 jadream@xxxxxxx wrote:

> From: jadream@xxxxxxx
> Subject: Re: [apache-talk] Are long connections possible?
> X-Mailer: Mozilla 4.04 [en] (WinNT; I)
> 
> 
> 
> Alex Tutubalin wrote:
> 
> > BTW, а нужно ли хранить эту информацию на сервере ? Мне казалось,
> > что раз клиенту надо, то на нем и надо хранить :)
> >
> > Alex
> 
> Увы!  Каждый сеанс имеет свои данные и соответственно свою реакцию на совершенно
> одинаковые запросы. Можно, конечно, всю информацию хранить в БД, но уж очень
> медленно будет работать.

Можно сделать так: написать брокер транзакций в виде отдельного процесса,
который будет запускать процесс, собственно обрабатывающий транзакции
и  выдавать пользователю ID транзакции (в куке или в виде hidden поля в
форме) . Все копии апача будут коннектиться к этому брокеру через сокет
или fifo и отдавать ему id сессии или просьбу создать новую сессию.
Брокер пишется на perl или на tcl строчек в двадцать, если не особенно
заморачиваться интеллектуальной сборкой мусора.

Теперь то же самое, только без кошки 
Получив запрос от пользователя на создание новой сессии, apache запускает
долгоживущий процесс,
который создает unix-domain-socked с уникальным именем или открывает
tcp-сокет с уникальным номером и слушает его. Имя/номер передается клиенту
в качестве  id процесса.

Если в любую копию apache приходит запрос, содержащий id сессии, то
очевидно, она уже знает, с кем коннектиться.


Еще вариант - поставить Apache::ASP, который использует dbm-файлы (если не
ошибаюсь) для хранения контекста сессии. Еще вариант - использовать общую
память в scoreboard (на www.modperl.com что-то было на эту тему) для
хранения контекста сессии.   

Хотя, конечно, самый прямолинейный вариант - гонять _весь_ контекст сессии
туда-сюда через cookie или hidden-поля.
--------------------------------------------------
Victor Wagner			vitus@xxxxxx
Programmer			Office:7-(095)-203-51-19
Institute for Commerce 		Home: 7-(095)-135-46-61
Engineering                     http://www.ice.ru/~vitus

=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.