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


Принудительное применение активации в контексте по умолчанию

Настроенный com-компонент обычно активируется в собственном контексте; то есть COM+ ссылается на сведения каталога компонента, чтобы предоставить все настроенные службы. Однако можно активировать настроенный компонент в контексте по умолчанию. Базовый COM-компонент — зарегистрированный компонент, не имеющий сведений о каталоге COM+, обычно активируется в контексте по умолчанию.

Активация COM-компонента в контексте по умолчанию обеспечивает три основных преимущества производительности, как показано ниже.

  • Вы сохраняете системные ресурсы путем ограничения количества созданных контекстов.
  • Повышение производительности путем ограничения количества меж контекстных вызовов. Так как вызовы между контекстами требуют маршалинга, он гораздо быстрее активируется в контексте com, который активируется в контексте по умолчанию, чтобы выполнять вызовы к другим объектам в контексте по умолчанию. Производительность в этом случае (вызовов в том же контексте) аналогична вызову подпрограммы.
  • Старые приложения COM можно импортировать в COM+ и запустить их без проблем. Например, у вас может быть несколько старых COM-приложений, реализованных в соответствии с предположением о том, что можно было передавать ссылки на объекты в квартире без маршалинга ссылок. Эти COM-приложения не работают при импорте в COM+, так как ссылки на объекты передаются через границы контекста. Однако этот тип приложения COM можно выполнить при импорте при импорте, если вы используете средство администрирования служб компонентов, чтобы пометить все классы в приложении как необходимо активировать в контексте по умолчанию.

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

Например, предположим, что компонент COM не требует каких-либо служб COM+(например, транзакций, JIT-активации, событий, компонентов очередей, синхронизации или пула объектов) и что компонент выполняет ряд вызовов других com-компонентов, которые могут быть активированы в контексте по умолчанию. В этом случае рекомендуется активировать вызывающий компонент в контексте по умолчанию.

Если компонент COM требует служб COM+, его нельзя пометить как необходимо активировать в контексте по умолчанию. Кроме того, при активации COM-объекта в контексте по умолчанию реальные показатели производительности отсутствуют, если в контексте по умолчанию выполняется ряд вызовов объектов в других контекстах. (Дополнительные сведения см. в разделе Contexts.)

Принудительное применение активации в контексте по умолчанию

  1. В области сведений средства администрирования служб компонентов щелкните правой кнопкой мыши компонент (расположенный в папке компонентов любого выбранного приложения COM+), который требуется активировать в контексте по умолчанию, а затем нажмите кнопку "Свойства".

  2. В диалоговом окне свойств компонента щелкните вкладку "Активация ".

  3. Выберите элемент "Необходимо активировать" в контексте по умолчанию проверка.

  4. Щелкните OK.

Примечание.

При запуске настроенного компонента в контексте по умолчанию COM+ не активирует какие-либо настроенные службы для этого компонента. Эти службы снова доступны при отмене проверка активации в контексте по умолчанию проверка и последующем запуске настроенного компонента в собственном контексте.

 

Основные понятия активации COM+ JIT

Принудительное применение активации в контексте вызывающего объекта