Re[3]: Обработка ошибок в COM
От: Vi2 Удмуртия http://www.adem.ru
Дата: 12.07.02 03:10
Оценка:
Здравствуйте Аноним, Вы писали:

Vi2>>PS

Vi2>>Упадёт-упадёт... А если "Что будет, если клиент закончит работу (нормальный выход) и не освободит объект сервера?"

А>Ну это-то как раз нетрудно предусмотреть. При нормальном завершении клиента, он может отписаться от сервера перед тем, как закрыться. Точно так же если сервер закрывается корректно, он может сообщить клиентам о этом (через тот же механизм событий), и они отключатся от сервера.


Я же говорил о том, что аварийный завершение клиента и нормальный выход, но с ошибкой алгоритма по освобождению сервера (мог бы отписАться, но не отписАлся!), для сервера эквивалентны — клиента нет, а счётчики остаются. Поэтому как бы особых телодвижений со стороны СОМ в таких ситуациях нет.

А>Проблема как раз в некорректном закрытии одного из компонентов. Но здесь вроде тоже ясность наступила (надо отслеживать HRESULT).


А>Остался вопрос не столько технологии, сколько алгоритма: как клиенту восстановить соединение? Единственное, что пока приходит в голову: периодически (c некоторым заданным интервалом, скажем 5 секунд) вызывать CoCreateInstance до тех пор, пока это не увенчается успехом. Есть какие-нибудь идеи по этому поводу?


Где-то в прошлых темах форума были идеи на этот счёт. Разрыв связи клиента и сервера и восстановление её — эта тема периодически всплывает вновь и вновь.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.