Сервис и поточная модель
От: Alf США  
Дата: 10.01.02 19:58
Оценка:
суть проблемы в следующем

имеется COM объект, встроенный в сервис, наследованный от
public CComObjectRootEx<CComMultiThreadModel>

и что же, при попытке CreateInstance более чем одного раза получаем висящуу очередь
и пока первый не закончит работу все остальные ждут

как таки добиться того чтобы доступ к интерфейсам объекта получало неограниченное число клиентов одновременно

(сам объект ессно написан с учётом MTA)
Re: Сервис и поточная модель
От: Alex Fedotov США  
Дата: 10.01.02 20:47
Оценка:
Здравствуйте Alf, Вы писали:

Alf>имеется COM объект, встроенный в сервис, наследованный от

Alf>public CComObjectRootEx<CComMultiThreadModel>

Alf>и что же, при попытке CreateInstance более чем одного раза получаем висящуу очередь

Alf>и пока первый не закончит работу все остальные ждут

Alf>как таки добиться того чтобы доступ к интерфейсам объекта получало неограниченное число клиентов одновременно


В сервисе вызывать CoInitializeEx(NULL, COINIT_MULTITHREADED), а не CoInitialize.
-- Alex Fedotov
Re[2]: Сервис и поточная модель
От: Sashko Россия http://www.dc.baika.ru/
Дата: 11.01.02 02:34
Оценка:
Здравствуйте Alex Fedotov, Вы писали:

AF>Здравствуйте Alf, Вы писали:


Alf>>имеется COM объект, встроенный в сервис, наследованный от

Alf>>public CComObjectRootEx<CComMultiThreadModel>

Alf>>и что же, при попытке CreateInstance более чем одного раза получаем висящуу очередь

Alf>>и пока первый не закончит работу все остальные ждут

AF>В сервисе вызывать CoInitializeEx(NULL, COINIT_MULTITHREADED), а не CoInitialize.


Плюс посмотреть как у тебя реализован ClassFactory.
Re[2]: Сервис и поточная модель
От: Sashko Россия http://www.dc.baika.ru/
Дата: 11.01.02 02:34
Оценка:
Здравствуйте Alex Fedotov, Вы писали:

AF>Здравствуйте Alf, Вы писали:


Alf>>имеется COM объект, встроенный в сервис, наследованный от

Alf>>public CComObjectRootEx<CComMultiThreadModel>

Alf>>и что же, при попытке CreateInstance более чем одного раза получаем висящуу очередь

Alf>>и пока первый не закончит работу все остальные ждут

AF>В сервисе вызывать CoInitializeEx(NULL, COINIT_MULTITHREADED), а не CoInitialize.


Плюс посмотреть как у тебя реализован ClassFactory.
Re[2]: Сервис и поточная модель
От: Alf США  
Дата: 11.01.02 07:41
Оценка:
Здравствуйте Alex
AF>Здравствуйте Alf, Вы писали:

AF>В сервисе вызывать CoInitializeEx(NULL, COINIT_MULTITHREADED), а не CoInitialize.


сделано конечно же, ситуация та же
если даже не инсталлить сервис и вызывать из Сишного клиента с CoInitializeEx(NULL, COINIT_MULTITHREADED)
виснет

либо создается первый экземпляр, создаю второй
при этом первый закрывается и указатель на интерфейс становится недействительным...
Re[3]: Сервис и поточная модель
От: Alf США  
Дата: 11.01.02 07:43
Оценка:
Здравствуйте Sashko, Вы писали:

S>Плюс посмотреть как у тебя реализован ClassFactory.


а вот тут всё просто, потому как я ее не реализовывал, соответсно стоит то что wizard прописал
Re[3]: Сервис и поточная модель
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.01.02 11:24
Оценка:
Здравствуйте Alf, Вы писали:

Значичь гдето ошибаешся...

Я уже отвечал сдесь на подобный вопрос...

Вот ftp://ftp.optim.ru/pub/Tests/AtlExeMTA/ATLEXEMTA.zip пример созданый к этому отвту.

Сравни со своим...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Сервис и поточная модель
От: Sashko Россия http://www.dc.baika.ru/
Дата: 12.01.02 10:29
Оценка:
Здравствуйте Alf, Вы писали:

Alf>Здравствуйте Sashko, Вы писали:

S>>Плюс посмотреть как у тебя реализован ClassFactory.
Alf>а вот тут всё просто, потому как я ее не реализовывал, соответсно стоит то что wizard прописал

Если говоришь что везде правильно проинициализировал COM, то нужно смотреть дебагером где что может происходить ожидание.
Re[4]: Сервис и поточная модель
От: Alf США  
Дата: 19.01.02 22:17
Оценка:
Здравствуйте VladD2, Вы писали:
VD>Вот ftp://ftp.optim.ru/pub/Tests/AtlExeMTA/ATLEXEMTA.zip пример созданый к этому отвту.
VD>Сравни со своим...

что тут сказать, ларчик то просто открывался
перепутал я когда-то .rgs файлы, и оно даже работало, но без MTA
зато, когда пофиксил, стало всё ой как замечательно!

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