![]() |
Модераторы: MetalFan |
![]() ![]() ![]() |
|
cheska |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 30.3.2007 Репутация: нет Всего: нет |
Помогите понять ошибку.
Есть COM-сервер (внепроцесный, exe) через который клиентские приложения могут работать с базой. По условию недопустимо чтоб клиенты могли одновременно менять данные. Причем изменения могут происходить при вызове разных процедур на сервере. Поэтому решил блокировать доступ используя на сервере критическую секцию. Предполагал что при вызове любой из процедур Клиентом-1 будет происходить захват критической секции и параллельный запрос любой процедуры сервера другим Клиентом-2 встанет в очередь пока не завершиться процедура вызванная Клиентом-1 и не освободиться критическая секция. Это так и работает если потоковая модель сервера = tmFree , но если меняю на tmApartment блокировки нет и Клиент-2 спокойно вызывает процедуры сервера когда идет выполнение другой процедуры Клиентом-1 что приводит к ошибке данных в базе. Пытался всеми силами понять почему нет блокировки в потоковой модели tmApartment но не смог. Перечитал вроде все по потоковым моделям и критическим секциям но без результата. Помогите разобраться ? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: ActiveX/СОМ/CORBA" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |