Допустим, что метод у объекта-сервера, который дергается клиентами достаточно ресурсоемкий по времени. Что происходит, если один клиент вызывает этот метод, в то время как сервер не успел обработать запрос от другого клиента?
Вопрос в следующем: существует ли в .Net Remoting механизм буферизации вызовов, если да то как и где он реализован? А если нет, то чего тогда делать-то
Re: Вызов метода объекта несколькими клиентами в .Net Remoti
Здравствуйте, apes, Вы писали:
A>Допустим, что метод у объекта-сервера, который дергается клиентами достаточно ресурсоемкий по времени. Что происходит, если один клиент вызывает этот метод, в то время как сервер не успел обработать запрос от другого клиента?
Параллельно начинается обработка второго запроса.
A>Вопрос в следующем: существует ли в .Net Remoting механизм буферизации вызовов,
Нет.
A>А если нет, то чего тогда делать-то
Не буферизовать или писать свой синк или использовать lock в длинной обработке чтобы она не запускалась несколько раз параллельно..
A>>А если нет, то чего тогда делать-то
AVK>Не буферизовать или писать свой синк или использовать lock в длинной обработке чтобы она не запускалась несколько раз параллельно..
Здравствуйте, apes, Вы писали:
A>Вопрос в следующем: существует ли в .Net Remoting механизм буферизации вызовов, если да то как и где он реализован? А если нет, то чего тогда делать-то
Esli nuzno delatj buferizaciju, to mozno smenitj arxitekturu servera na asinxronnuju. Naprimer, esli proekt pozvoljaet, ispoljzovatj ocheredi MSMQ.
Samaja prostaja sxema mozet bitj takoj:
Klient posilaet zadanie v ocheredj servera i zdet otveta v ocheredi klienta (luchshe v otdeljnom potoke). Kogda server obrabotaet soobshenie on otsilaet rezuljtat v ocheredj klienta.
Re[2]: Вызов метода объекта несколькими клиентами в .Net Rem
От:
Аноним
Дата:
21.08.07 16:20
Оценка:
Здравствуйте, AndrewVK, Вы писали:
AVK>Не буферизовать или писать свой синк или использовать lock в длинной обработке чтобы она не запускалась несколько раз параллельно..
lock в смысле критическая секция? А про синк можна подробнее?
Re[3]: Вызов метода объекта несколькими клиентами в .Net Rem
Здравствуйте, <Аноним>, Вы писали:
AVK>>Не буферизовать или писать свой синк или использовать lock в длинной обработке чтобы она не запускалась несколько раз параллельно..
А>lock в смысле критическая секция? А про синк можна подробнее?
Унаследуйте ключевой объект от ContextBoundObject помеченный SynchronizationAttribute — это сериализует все обращения к нему. А городить огороды с синками думаю, что особо ни к чему...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: Вызов метода объекта несколькими клиентами в .Net Rem
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, apes, Вы писали:
A>>Допустим, что метод у объекта-сервера, который дергается клиентами достаточно ресурсоемкий по времени. Что происходит, если один клиент вызывает этот метод, в то время как сервер не успел обработать запрос от другого клиента?
AVK>Параллельно начинается обработка второго запроса.
Это справедливо и для синглтона?
Never argue with a woman who reads. It's likely she can also think. (c)
Re[3]: Вызов метода объекта несколькими клиентами в .Net Rem
Здравствуйте, Agent Smith, Вы писали:
TK>>Конечно. AS>а доступ к общим ресурсам? Проблемы многопоточности решаются?
Доступ к общим ресурсам надо решать самому. Можно ее решать через ContextBoundObject + SynchronizationAttribute
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[6]: Вызов метода объекта несколькими клиентами в .Net Rem
От:
Аноним
Дата:
22.08.07 10:20
Оценка:
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, Agent Smith, Вы писали:
TK>>>Конечно. AS>>а доступ к общим ресурсам? Проблемы многопоточности решаются?
TK>Доступ к общим ресурсам надо решать самому. Можно ее решать через ContextBoundObject + SynchronizationAttribute
А можна сам синглетон сервер сделать синхронизированным? или только надо выносить общий ресурс который используется сервером в отдельный класс для того что бы применить ContextBoundObject + SynchronizationAttribute?