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


Основные понятия Компенсирующего диспетчера ресурсов COM+

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

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

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

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

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

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

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

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

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

Задачи компенсирующего менеджера ресурсов COM+