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


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

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

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

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

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

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

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

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

  • Выключено
  • Не поддерживается
  • Поддерживается
  • Обязательное поле
  • RequiresNew

Примечание.

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

 

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

Дополнительные сведения об использовании библиотеки COM+ Администратор istration для задания параметров синхронизации см. в разделе "Автоматизация COM+ Администратор istration".

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