Re[11]: ochen interesnaya problema s COM + Service
От: Максим Алексейкин Россия  
Дата: 21.06.02 09:23
Оценка:
Здравствуйте Аноним, Вы писали:

А>Zapustil server s ATL_DEBUG_QI.

А>I sdelal kliyent kotoriy kajdiy raz otkrivayet connection (ispolzuya smartpointer), zapuskayet method i zakrivayet connection. i tak beskonechno.

А>Vot log na servere:

А>CDCMod — IUnknown
А>CDCMod — IMarshal — failed
А>CDCMod — {0000001B-0000-0000-C000-000000000046} — failed
А>CDCMod — IUnknown
А>CDCMod — IStdMarshalInfo — failed
А>CDCMod — IExternalConnection — failed
А>CDCMod — IRunnableObject — failed
А>CDCMod — IDCMod
А>CDCMod — IDCMod
А>CDCMod — {1C733A30-2A1C-11CE-ADE5-00AA0044773D} — failed
А>CDCMod — IDCMod
А>CDCMod — IDCMod
А>CComClassFactory — IClassFactory

А>Mojet eto chto-nibud obyasnit,


Довольно малоинформативно. Я так понимаю IDCMod и есть тот интерфейс?
Судя по всему указатель на него нормально создается и освобождается.
Хотя для полной уверенности нужно еще ATL_DEBUG_REFCOUNT продекларировать.
Он покажет счетчик ссылок.
Еще это неплохо прогнать для реальных клиентов. Или смоделировать, на тестовых клиентах,
одновременный вызов.


>- серверный объект создается новый, при новом подключении, или используется

>один и тотже экземпляр?
>mne ochen interesno. Kakaya raznica? I kak eto viyasnit. Ya dumal raz u tebya exe-com service to vseqda odin i >tot je ekzemplyar. Ili ya oshibayus?

Я хотел узнать singleton он или нет. Это зависит от фабрики класса.
Чтобы в ATL сделать такой объект достаточно в определении класса добавить
DECLARE_CLASSFACTORY_SINGLETON(CYourClass)

Разница в том, что объект не будет каждый раз создаваться заново и разрушаться для каждого клиента,
а будет использоваться один и тотже. Т.е. много лишних действий выполняться не будут.
Если объект обеспечивает только доступ к общему хранилищу и не хранит данных специфичных для клиента,
то это имеет смысл.
ICQ #311116826
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.