Основные понятия синхронизации COM+
Как правило, синхронизация не требуется, если у вас есть однопоточная квартира (STA), так как квартира обеспечивает синхронизацию. Синхронизация становится важной при наличии многопоточной квартиры (MTA) и свободного потока объекта. В прошлом объекты, свободные потоки, должны были обрабатывать блокировку. Вы можете исключить необходимость использования блокировки, задав атрибут синхронизации для компонента.
Синхронизация имеет следующие свойства:
- Позволяет одному вызывающему объекту входить в компонент одновременно.
- Запрещает поток по процессу или по всему компьютеру.
- Потоки из компонента в компонент в процессе.
- Разрешает повторную входную функцию из того же вызывающего средства.
В отличие от квартир, действия охватывают контексты из нескольких процессов и узлов. Синхронизация определяет, какое действие будет содержать объект. Объекты могут находиться в любом из следующих действий:
- Действие создателя
- Новое действие
- Нет действий
COM+ обеспечивает параллелизм по ряду блокировок для каждого действия. Если вызывающий объект пытается ввести синхронизированный компонент COM+, который уже используется другим вызывающим абонентом, вызов блокируется до тех пор, пока блокировка не будет освобождена. Это поведение блокировки не будет истекать и не может быть настроено время ожидания. Если блокировка не используется, блокировка приобретается и вызывается. После завершения блокировка освобождается для следующего вызывающего абонента. Чтобы предотвратить взаимоблокировку, COM+ управляет доступом ко всем объектам в разных действиях с помощью вложенной серии вызовов, связанных по всей сети.
COM+ предоставляет следующие параметры синхронизации:
- Выключено
- Не поддерживается
- Поддерживается
- Обязательное поле
- RequiresNew
Примечание.
Некоторые параметры синхронизации работают вместе с другими параметрами компонентов COM+. Например, синхронизация требуется, если включена служба JIT-активации COM+. При включении транзакций требуется JIT; поэтому для обработки транзакций COM+ также требуется синхронизация. Таким образом, классы с параметром JIT=True также должны иметь параметр синхронизации=Обязательно или синхронизации=RequiredNew.
Инструкции по настройке параметров синхронизации с помощью средства администрирования служб компонентов см. в разделе "Настройка атрибута синхронизации".
Дополнительные сведения об использовании библиотеки COM+ Администратор istration для задания параметров синхронизации см. в разделе "Автоматизация COM+ Администратор istration".
См. также