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


Основные понятия Диспетчера ресурсов COM+

Вы можете использовать COM+ компенсатор Resource Manager (CRM), чтобы легко и быстро интегрировать ресурсы приложений с транзакциями координатора распределенных транзакций Майкрософт (DTC). Ресурсы приложения могут голосовать по результату транзакции и получать окончательное уведомление о его результатах. Устойчивый журнал создается таким образом, чтобы ресурсы приложения могли записывать записи, которые выживают сбои, и CRM восстанавливает этот файл журнала при перезапуске приложения.

CRM состоит из следующих двух компонентов:

  • Рабочая роль CRM. Этот компонент выполняет основную работу конкретного CRM и реализует интерфейс, характерный для задачи, которую необходимо выполнить. Инфраструктура CRM предоставляет интерфейс рабочей роли CRM, с помощью которой рабочая роль CRM может записывать записи в устойчивый файл журнала на диске. Рабочая роль CRM должна записывать записи в журнал и сделать их устойчивыми перед выполнением работы, чтобы, если произошел сбой, восстановление может произойти правильно. Для рабочей роли CRM всегда требуется транзакция.
  • КОМПенсатор CRM. Этот компонент создается инфраструктурой CRM при завершении транзакции. Он реализует определенный интерфейс, с помощью которого инфраструктура CRM может передавать уведомления о завершении транзакций и записи журнала, ранее написанные рабочей ролью CRM.

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

После прохождения этапа подготовки компенсатор CRM и работники CRM могут выполняться параллельно. Компонент рабочей роли CRM новой транзакции может стать активным, пока компенсатор CRM предыдущей транзакции по-прежнему обрабатывает предыдущую транзакцию.

Во время сбоев до восстановления приложения сервера CRM прерванная транзакция должна считаться активной и не завершенной. Перед восстановлением процесса сервера CRM внешние процессы не должны получать доступ к ресурсам, которые были изменены этой конкретной транзакцией.

CRM определяет три типа интерфейса для основных функций CRM:

  • ICrmLogControl реализуется в клерке CRM и используется рабочей ролью CRM для записи записей журналов в журнал. Он также может использоваться компенсатором CRM.
  • ICrm Компенсатор и ICrmCompensatorVariants реализованы в компенсаторе CRM. Эти интерфейсы используются для доставки уведомлений о результатах транзакций и связанных записей журнала в компенсатор CRM. Как правило, компенсатор CRM реализует только один из этих интерфейсов в зависимости от того, требуются ли они неструктурированные или структурированные записи журнала. Структурированные записи журнала — это записи , созданные в виде коллекции вариантов и обычно используемые Microsoft Visual Basic. Неструктурированные записи журнала — это просто буфер байтов и обычно используются Microsoft Visual C++. Компенсатор CRM может реализовать оба интерфейса компенсатора; однако для доставки записей журналов используется только один раз.
  • Интерфейсы мониторинга COM+ CRM используются для мониторинга CRM в определенном серверном приложении. Подробные сведения об интерфейсах мониторинга см. в разделе "Интерфейсы мониторинга COM+ CRM".

В следующих разделах этого раздела содержатся дополнительные сведения о службе COM+ CRM:

Com+ Компенсирующие задачи Resource Manager