Поделиться через


Основные понятия синхронизации COM+

Как правило, синхронизация не требуется, если у вас есть однопоточная квартира (STA), так как квартира обеспечивает синхронизацию. Синхронизация становится важной при наличии многопоточной модели (MTA) и свободнопоточного объекта. В прошлом свободнопотоковые объекты были вынуждены заниматься блокировкой. Вы можете исключить необходимость использования блокировки, задав атрибут синхронизации для компонента.

Синхронизация имеет следующие свойства:

  • Позволяет одному вызывающему объекту входить в компонент одновременно.
  • Запрещает обмен данными между процессами или между компьютерами.
  • Потоки между компонентами в процессе.
  • Разрешает повторный вход от того же вызывающего.

В отличие от аппартаментов, действия охватывают контексты из нескольких процессов и хостов. Синхронизация определяет, какое действие будет содержать объект. Объекты могут находиться в одной из следующих деятельностей:

  • Действие создателя
  • Новое действие
  • Нет действий

COM+ обеспечивает одновременное выполнение с помощью ряда блокировок для каждого действия. Если пользователь пытается войти в синхронизированный компонент COM+, который уже используется другим пользователем, вызов блокируется до освобождения блокировки. Это поведение блокировки не предусматривает истечения времени ожидания и не может быть сконфигурировано для этого. Если замок не задействован, он захватывается, и вызов обрабатывается. После завершения замок разблокирован для следующего звонящего. Чтобы предотвратить взаимоблокировку, COM+ управляет доступом ко всем объектам между различными действиями с помощью вложенной серии вызовов, соединённых по всей сети.

COM+ предоставляет следующие параметры синхронизации:

  • Нетрудоспособный
  • Не поддерживается
  • Поддержка
  • Обязательно
  • Требуется новый

Заметка

Некоторые параметры синхронизации работают вместе с другими параметрами компонентов COM+. Например, синхронизация требуется, если включена JIT-активация службы COM+. При включении транзакций требуется JIT; таким образом, обработка транзакций COM+ требует также синхронизации. Таким образом, классы с параметром JIT=True также должны иметь параметр Синхронизация=Обязательна или Синхронизация=ТребуетсяНовый.

 

Инструкции по настройке параметров синхронизации с помощью средства администрирования служб компонентов см. в настройке атрибута синхронизации.

Для получения более подробной информации об использовании библиотеки администрирования COM+ для настройки параметров синхронизации, см. раздел Автоматизация администрирования COM+.

задачи синхронизации COM+