Обработка ошибок в COM
От: asv  
Дата: 11.07.02 00:25
Оценка:
Я новичок в COM-программировании, и хотел бы получить вашу консультацию по вопросам, ответы на которые я не смог найти в книжках.

Такая ситуация: exe-сервер, несколько клиентов. Клиенты обращаются к объекту
внутри сервера (один экземпляр для всех клиентов), объект генерирует события для клиентов (через механизм connection points). Клиенты и сервер на разных машинах. Все работает, но если мы посмотрим на это дело пессимистически, у нас могут возникнуть такие вопросы:

1) А что произойдет, если сервер упадет? Глюкануло что-нибудь, подвисло, сетевой шнурок отвалился, кто-то решил тачку перегрузить (кнопкой reset), да мало ли причин может быть. Как клиент узнает, что указатель на интерфейс серверного объекта уже не актуален?

2) Допустим, мы знаем ответ на первый вопрос, и наш клиент умеет определять состояние сервера, и перестает обращаться к серверу, если с ним возникли какие-то проблемы. Но если сервер перезапустили, как клиент узнает, что уже можно опять начинать с ним работать?

3) А если упадет не сервер, а совсем наоборот, один из клиентов? Как сервер узнает что данного клиента нужно удалить из списка клиентов, которым он посылает сообщения (т.е. для которых он генерирует события)?

Существуют в COM стандартные механизмы обработки таких ситуаций?
Если нет, то как такие ситуации вообще можно отследить? Или скажем так: как это обычно делают?

:???:
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.