Remoting и сессии
От: Spidola Россия http://www.usametrics.ru
Дата: 12.08.04 15:48
Оценка:
WinForm интерфейс по Remoting обращается к классам предметной области на сервере под IIS.

Стоит задача хранения в некоторой сессии, образуемой на сервере, некоторых объектов для того, чтобы
объекты предметной области могли этими объектами сессии пользоваться. Объекты сессии могут быть большими, поэтому гонять их через Remoting не хочется. Хочется оставлять их на сервере в каком-то хранилище. При написании Web-интерфейса использовали, естественно, стандартные сессии IIS.

Вопрос: что проще — использовать механизм сессий IIS (подключаться к нему) или создать своё хранилище сессий (создать какую-нибудь hash-таблицу, писать туда свой объект вроде сесии и обслуживать эту таблицу на предмет таймаутов и пр.).

Начали пробовать подключаться к сессии IIS, однако приходится решать задачу по повторному подключению к сессии (что пока ещё не получилось).

Есть комментарии?
... << RSDN@Home 1.1.4 @@subversion >>...
Re: Remoting и сессии
От: nap2k Верблюд есть
Дата: 12.08.04 15:49
Оценка:
Здравствуйте, Spidola, Вы писали:


S>Начали пробовать подключаться к сессии IIS, однако приходится решать задачу по повторному подключению к сессии (что пока ещё не получилось).


S>Есть комментарии?


Isn't SingleCall model is what you need?
Re: Remoting и сессии
От: andsm Россия  
Дата: 12.08.04 16:15
Оценка:
Я использую хеш-таблицы, массивы и т.п. для тех обьектов что являются общими для всех пользователей.
Если нужны обьекты состояния, свои для каждого пользователя, то однозначно нужно использовать Session — если один сервер перестанет справляться с нагрузкой, можно будет просто добавить еще сервера, добавить сервер состояний. Реализовывать самому такую функциональность сложно и есть вероятность наделать ошибок.
Re[2]: Remoting и сессии
От: VIA  
Дата: 12.08.04 16:19
Оценка:
Здравствуйте, nap2k, Вы писали:

N>Здравствуйте, Spidola, Вы писали:



S>>Начали пробовать подключаться к сессии IIS, однако приходится решать задачу по повторному подключению к сессии (что пока ещё не получилось).


S>>Есть комментарии?


N>Isn't SingleCall model is what you need?


Singleton
... << RSDN@Home 1.1.4 beta 2 >>
Work expands to fill the time available for its completion
(C. Northcote Parkinson)
Re: Remoting и сессии
От: rockandroll Казахстан  
Дата: 13.08.04 02:13
Оценка:
Здравствуйте, Spidola, Вы писали:


S>Вопрос: что проще — использовать механизм сессий IIS (подключаться к нему) или создать своё хранилище сессий (создать какую-нибудь hash-таблицу, писать туда свой объект вроде сесии и обслуживать эту таблицу на предмет таймаутов и пр.).


Сложно сказать. В своем механизме трудно отслеживать моменты когда клиент отваливается по каким-либо причинам (callback и event использовать не хочется). Именно поэтому я решил использовать механизмы IIS.

S>Начали пробовать подключаться к сессии IIS, однако приходится решать задачу по повторному подключению к сессии (что пока ещё не получилось).


S>Есть комментарии?


Re: Remoting singleton and IIS session
Автор: rockandroll
Дата: 06.08.04

Правда это самый первый черновой вариант и там я еще не решил проблему Cookieless и SessionTimeout (хотя с таймаутом я уже поступил немного по другому).
... << RSDN@Home 1.1.4 @@subversion >>
Re[3]: Remoting и сессии
От: IT Россия linq2db.com
Дата: 13.08.04 02:16
Оценка:
Здравствуйте, VIA, Вы писали:

N>>Isn't SingleCall model is what you need?


VIA>Singleton


Может тогда всё же Client Activated?
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Remoting и сессии
От: TK Лес кывт.рф
Дата: 13.08.04 06:03
Оценка:
Hello, "rockandroll"
> S>Вопрос: что проще — использовать механизм сессий IIS (подключаться к нему) или создать своё хранилище сессий (создать какую-нибудь hash-таблицу, писать туда свой объект вроде сесии и обслуживать эту таблицу на предмет таймаутов и пр.).
>
> Сложно сказать. В своем механизме трудно отслеживать моменты когда клиент отваливается по каким-либо причинам (callback и event использовать не хочется). Именно поэтому я решил использовать механизмы IIS.
>

В remoting не устанавливается прямого соединения. Так что, можно считать, что клиент отваливается сразу после завершения вызова. также, как следствие отсутствия постоянного соединения между клиентом и сервером — в случае, если клиент находится за fire wall, то никакие callback (для стандартных каналов) работать не будут

> S>Начали пробовать подключаться к сессии IIS, однако приходится решать задачу по повторному подключению к сессии (что пока ещё не получилось).

>

Если не ошибаюсь, то эта тама поднималась буквально на этой/передыдущей недели
Posted via RSDN NNTP Server 1.9 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Remoting и сессии
От: rockandroll Казахстан  
Дата: 13.08.04 06:43
Оценка:
Здравствуйте, TK, Вы писали:

TK>В remoting не устанавливается прямого соединения. Так что, можно считать, что клиент отваливается сразу после завершения вызова. также, как следствие отсутствия постоянного соединения между клиентом и сервером — в случае, если клиент находится за fire wall, то никакие callback (для стандартных каналов) работать не будут


Это понятно. Интересует когда клиент отвалился "логически", т.е. закончил работать с системой по любым причинам.

TK>Если не ошибаюсь, то эта тама поднималась буквально на этой/передыдущей недели


На прошлой.
... << RSDN@Home 1.1.4 @@subversion >>
Re[4]: Remoting и сессии
От: TK Лес кывт.рф
Дата: 13.08.04 07:17
Оценка:
Hello, "rockandroll"
>
> TK>В remoting не устанавливается прямого соединения. Так что, можно считать, что клиент отваливается сразу после завершения вызова. также, как следствие отсутствия постоянного соединения между клиентом и сервером — в случае, если клиент находится за fire wall, то никакие callback (для стандартных каналов) работать не будут
>
> Это понятно. Интересует когда клиент отвалился "логически", т.е. закончил работать с системой по любым причинам.
>

Логически клиент отваливается сразу по завершении вызова.
т.е. происходит как:

Есть пул сокетов (при открытии сокета он помещается в пул и существует там некоторое время)
Что происходит при вызове? достается из пула сокет, через него происходит обмен данными (запрос и ответ) и сокет возвращается в пул. Если клиент многопоточный, то открытых сокетов к одному серверу в пуле может оказаться несколько и через какой будет происходить обмен — это воля случая. И само собой, никто не гарантирует, что сокет не будет закрыт сразу после завершения вызова.

Если уж очень хочется отслеживать ошибки потери связи в канале, то можно найти реализацию какого-нибудь BidirectionalChannel в котором будут слаться постоянные пинги на уровне транспорта, что позволить вовремя диагностировать его поломку
Posted via RSDN NNTP Server 1.9 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[5]: Remoting и сессии
От: rockandroll Казахстан  
Дата: 13.08.04 07:39
Оценка:
Здравствуйте, TK, Вы писали:

TK>Hello, "rockandroll"


TK>Если уж очень хочется отслеживать ошибки потери связи в канале, то можно найти реализацию какого-нибудь BidirectionalChannel в котором будут слаться постоянные пинги на уровне транспорта, что позволить вовремя диагностировать его поломку


Нет, уж, спасибо. Что-то не хочется. Такая оперативность не нужна, сессии вполне подходят.
... << RSDN@Home 1.1.4 @@subversion >>
Re: Remoting и сессии
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.08.04 12:23
Оценка:
Здравствуйте, Spidola, Вы писали:

S>Вопрос: что проще — использовать механизм сессий IIS (подключаться к нему) или создать своё хранилище сессий (создать какую-нибудь hash-таблицу, писать туда свой объект вроде сесии и обслуживать эту таблицу на предмет таймаутов и пр.).


Проще создать специальный класс сессии, отнаследованный от MBR и гонять его с клиента на сервер например через CallContext. Таймаутами, хешами и прочая займется ремоутинг.
... << RSDN@Home 1.1.4 beta 2 rev. 154>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.