Здравствуйте Аноним, Вы писали:
Vi2>>PS Vi2>>Упадёт-упадёт... А если "Что будет, если клиент закончит работу (нормальный выход) и не освободит объект сервера?"
А>Ну это-то как раз нетрудно предусмотреть. При нормальном завершении клиента, он может отписаться от сервера перед тем, как закрыться. Точно так же если сервер закрывается корректно, он может сообщить клиентам о этом (через тот же механизм событий), и они отключатся от сервера.
Я же говорил о том, что аварийный завершение клиента и нормальный выход, но с ошибкой алгоритма по освобождению сервера (мог бы отписАться, но не отписАлся!), для сервера эквивалентны — клиента нет, а счётчики остаются. Поэтому как бы особых телодвижений со стороны СОМ в таких ситуациях нет.
А>Проблема как раз в некорректном закрытии одного из компонентов. Но здесь вроде тоже ясность наступила (надо отслеживать HRESULT).
А>Остался вопрос не столько технологии, сколько алгоритма: как клиенту восстановить соединение? Единственное, что пока приходит в голову: периодически (c некоторым заданным интервалом, скажем 5 секунд) вызывать CoCreateInstance до тех пор, пока это не увенчается успехом. Есть какие-нибудь идеи по этому поводу?
Где-то в прошлых темах форума были идеи на этот счёт. Разрыв связи клиента и сервера и восстановление её — эта тема периодически всплывает вновь и вновь.