Гость
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Remoting. Умирающий сервер. / 16 сообщений из 16, страница 1 из 1
08.11.2004, 13:39
    #32772396
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
Всем привет.
Помогите разобраться с сабжем.
Ситуация такова:
Имеется сервер, как положено MarshalByRefObject. Слушает для него NT Service, одновременно он и сам использует сервер для работы.
К серверу коннектятся клиенты(2-3), делают одну и ту же работу. Вообщем довольно простой вариант. Проблема наверное знакома тем ко работал с ремотингом(у меня тут опыта маловато) - через короткий промежуток времени сервер умирает, выражается это в вываливании эксепшина на клиенте "Requested service not found". Т.е. сам обьект-то там, но его lease time expired и естественно он становится недоступным для ремотинг клиентов.

Что я делал:
Пытался решить проблему сразу на сервере, классическим способом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
public override Object InitializeLifetimeService() {
	ILease lease = (ILease)base.InitializeLifetimeService();
	if (lease.CurrentState == LeaseState.Initial) {
		lease.InitialLeaseTime = TimeSpan.FromHours(2);
		lease.SponsorshipTimeout = TimeSpan.FromHours(2);
		lease.RenewOnCallTime = TimeSpan.FromHours(2);
		
	}
	return lease;
}

и даже так
Код: plaintext
1.
2.
public override Object InitializeLifetimeService() {
	return null;
}

и renew делал при каждом вызове методов сервера

Код: plaintext
1.
ILease lease = (ILease)MyServer.GetLifetimeService();
lease.Renew(TimeSpan.FromMinutes(40));

Ни один способ не принес результатов. Обьект умирает, на клиентах ексепшины.

Если кто в курсе что за грабли, пните в нужном направлении плиз.

Спасибо.


Magnus
...
Рейтинг: 0 / 0
08.11.2004, 14:36
    #32772459
Alexey Kudinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
А так ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 /// <summary>
	/// Базовый класс для коммуникации клиент-сервис
	/// </summary>
	public abstract class clsCommunicationBase : MarshalByRefObject
	{
		public override Object InitializeLifetimeService()
		{
			ILease lease = (ILease)base.InitializeLifetimeService();
			if (lease.CurrentState == LeaseState.Initial)
			{
				lease.InitialLeaseTime = TimeSpan.Zero;
	
			}
			return lease;
		}
	}

OFF: экспериметы с Remoting означают, что от Enterprise Services решили отказаться ?
...
Рейтинг: 0 / 0
08.11.2004, 14:48
    #32772478
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
Странные дела творятся. Все вышеописанное происходило в процессе тестов на машинах клиента. Сегодня снова тестирую в своей конторе, все работает, уже 2 часа...
Вроде ничего не пил...


RE: OFF
Означают :).
Решили отказаться по многим причинам. У нас в конторе это все меняется чаще чем погода за окном. Достало уже до корней волос, но ксожалению от меня не зависит.



Magnus
...
Рейтинг: 0 / 0
08.11.2004, 15:00
    #32772496
Alexey Kudinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
У меня с вышеприведенным кодом сервер неделями живет, так что по идее должно работать. Но, правда приложение не тиражируемое, так что не могу гарантировать, что код 100 % рабочий на всех машинах. Бывает всякое.

Re: OFF
Мы недавно тоже отказались от Enterprise Services, в т.ч. и почитав тот тред :)
...
Рейтинг: 0 / 0
08.11.2004, 15:04
    #32772505
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
Не понимаю что происходит, код тот же, здесь работает без запинки, у клиента валился. Единственная разница - у меня здесь для тестов только один терминал, а там больше 20. Но работал-то я с одним, хотя запросы шли на все 20, в холостую.
Пытаюсь разобраться.

RE: OFF
А может я все-таки не прав был ? :)
Это быки мои первые эксперименты в данной области, закончились неудачно к сожалению. А вот с ремотингом более-менее гладко идет :).

Magnus
...
Рейтинг: 0 / 0
08.11.2004, 15:06
    #32772508
Стр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
2 Magnus23
такая ситуация может случаться если северные сборки лежат в gac'e, а клиентские прокси явно завязаны на версию.
...
Рейтинг: 0 / 0
08.11.2004, 15:13
    #32772518
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
Я лично сборки в gac не ложил, так что если они туда не попали каким-то другим способом, то не оно.

Все равно спасибо за вариант, проверю у клиента.

Magnus
...
Рейтинг: 0 / 0
08.11.2004, 19:26
    #32772574
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
У меня сделано

public override Object InitializeLifetimeService() {
return null;
}

и тип сервиса Singleton

работает еще с 2002 года у (40 клиентов * 20-80 юзеров), сервисы не ребутятся месяцами, непонятки типа ваших не встречались.
...
Рейтинг: 0 / 0
08.11.2004, 20:08
    #32772590
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
<off>(40 клиентов * 20-80 юзеров)можно расшифровать эту загадочную формулу ?
у меня получилось 40*20-80=720, правда если отклиентов вычесть юзеров, то кто в остатке ?
</off>
...
Рейтинг: 0 / 0
08.11.2004, 21:32
    #32772615
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
кузя<off> (40 клиентов * 20-80 юзеров)можно расшифровать эту загадочную формулу ?
у меня получилось 40*20-80=720, правда если отклиентов вычесть юзеров, то кто в остатке ?
</off>

простите, сэкономил в словах - получилась чушь.

поясняю:

серверный софт работает у 40 клиентов. У каждого из клиентов от 20 до 80 активных пользователей, работающих с этой софтиной через Remoting.
...
Рейтинг: 0 / 0
08.11.2004, 22:24
    #32772632
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
2 Magnus23

можно написать свою "следилку" за MBR-объектами на сервере (если есть возможность callback'ов), но...

у меня ситуация такая же как и у backfire. т.е. серверные объекты по своему усмотрению не вымирают. процесс полностью под контролем.

---
ЗЫ
для "следилки" можно использовать TrackingServices (отслеживает marshal, unmarshal и disconnect - твой случай - конец лизы (weakreference в remoting) и под ближайший сбор GC)
...
Рейтинг: 0 / 0
09.11.2004, 10:32
    #32772928
Por
Por
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
Может быть не в тему, но "Requested service not found" у меня вываливается тогда, когда серверный объект не опубликован в конфиге, а клиент обращается к нему.
То есть выглядит это так: Добавляется к серверному проекту очередной объект, клиент дорабатывается с учетом нового объекта. Все компилится и запускается. И в момент вызова с клиента вываливается "Requested service not found". Соответсвенно, луплю себя по лбу, и лезу в конфиг добавлять описания в <application><service><wellknown ...

Может быть проблема в том, что у клиента конфиг старый/модифицированный?

ЗЫ. mode="SingleCall"
...
Рейтинг: 0 / 0
09.11.2004, 22:01
    #32774500
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
PorМожет быть не в тему, но "Requested service not found" у меня вываливается тогда, когда серверный объект не опубликован в конфиге, а клиент обращается к нему.
То есть выглядит это так: Добавляется к серверному проекту очередной объект, клиент дорабатывается с учетом нового объекта. Все компилится и запускается. И в момент вызова с клиента вываливается "Requested service not found". Соответсвенно, луплю себя по лбу, и лезу в конфиг добавлять описания в <application><service><wellknown ...

Может быть проблема в том, что у клиента конфиг старый/модифицированный?

ЗЫ. mode="SingleCall"

Я себе завел за правило, что при запуске клиет проверяет присутствие и доступность всех "сервисов".
...
Рейтинг: 0 / 0
10.11.2004, 15:13
    #32775662
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
Спасибо за советы, особенно понравилось TrackingServices... будем посмотреть :).

Переделал очень много всего, уже и не знаю что повлияло, но процесс пошел. Было несколько ошибок стороннего компонента который использовался в сервере и валил его, таймауты к базе, медленная сетка и еще куча проблем. Сейчас вроде шевелится :).

Magnus
...
Рейтинг: 0 / 0
10.11.2004, 17:10
    #32776012
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
Magnus23Было несколько ошибок стороннего компонента который использовался в сервере и валил его, таймауты к базе, медленная сетка и еще куча проблем.и ни одной своей ошибки ?
"не верю" (с)
:-)
...
Рейтинг: 0 / 0
10.11.2004, 17:36
    #32776074
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Умирающий сервер.
Своих исправил прилично, но ни одна не имела никакого отношения к данной проблеме.
чесна :)

Magnus
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Remoting. Умирающий сервер. / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]