COM+ 보상 Resource Manager 개념

COM+ CRM(보상 Resource Manager)을 사용하여 애플리케이션 리소스를 Microsoft DTC(Distributed Transaction Coordinator) 트랜잭션과 쉽고 빠르게 통합할 수 있습니다. 애플리케이션 리소스는 트랜잭션 결과에 대해 투표할 수 있으며 해당 결과에 대한 최종 알림을 받을 수 있습니다. 지속성 로그가 생성되어 애플리케이션 리소스가 실패에서 살아남는 레코드를 작성할 수 있고 애플리케이션이 다시 시작될 때 CRM이 이 로그 파일을 복구합니다.

CRM은 다음 두 구성 요소로 구성됩니다.

  • CRM 작업자입니다. 이 구성 요소는 특정 CRM의 기본 작업을 수행하고 수행해야 하는 작업과 관련된 인터페이스를 구현합니다. CRM 인프라는 CRM 작업자가 디스크의 지속성 로그 파일에 레코드를 쓸 수 있는 CRM 작업자에 대한 인터페이스를 제공합니다. CRM 작업자는 작동을 수행하기 전에 로그에 레코드를 쓰고 지속성을 유지해야 크래시가 발생하면 복구가 올바르게 발생할 수 있습니다. CRM 작업자에는 항상 트랜잭션이 필요합니다.
  • CRM 보상자입니다. 이 구성 요소는 트랜잭션이 완료될 때 CRM 인프라에 의해 만들어집니다. CRM 인프라가 트랜잭션 완료 알림과 이전에 CRM 작업자가 작성한 로그 레코드를 전달할 수 있는 정의된 인터페이스를 구현합니다.

COM+ CRM은 CRM 로그를 사용하여 트랜잭션 알림 및 내구성을 제공하는 원자성을 제공하지만 리소스 격리를 제공하지는 않습니다. 다중 스레드 환경에서는 CRM 개발자가 여러 CRM 작업자 또는 외부 애플리케이션에 의한 리소스에 대한 액세스가 트랜잭션에 있는 동안 직렬화되도록 해야 합니다.

트랜잭션이 준비 단계를 통과한 후 CRM Compensator 및 CRM 작업자를 동시에 실행할 수 있습니다. 이전 트랜잭션의 CRM Compensator가 여전히 이전 트랜잭션을 처리하는 동안 새 트랜잭션의 CRM 작업자 구성 요소가 활성화될 수 있습니다.

CRM 서버 애플리케이션을 복구하기 전에 오류가 발생하는 동안 중단된 트랜잭션은 활성 상태이고 완료되지 않은 것으로 간주되어야 합니다. CRM 서버 프로세스를 복구하기 전에 외부 프로세스가 이 특정 트랜잭션에 의해 변경된 리소스에 액세스할 수 없습니다.

CRM은 기본 CRM 함수에 대한 세 가지 인터페이스 형식을 정의합니다.

  • ICrmLogControl 은 CRM 클럭에서 구현되며 CRM 작업자가 로그 레코드를 로그에 쓰는 데 사용됩니다. CRM Compensator에서 사용할 수도 있습니다.
  • ICrmCompensatorICrmCompensatorVariants 는 CRM Compensator에서 구현됩니다. 이러한 인터페이스는 트랜잭션 결과 알림 및 관련 로그 레코드를 CRM Compensator에 전달하는 데 사용됩니다. 일반적으로 CRM Compensator는 비정형 로그 레코드 또는 구조화된 로그 레코드가 필요한지 여부에 따라 이러한 인터페이스 중 하나만 구현합니다. 구조적 로그 레코드는 Variants 컬렉션으로 빌드되며 일반적으로 Microsoft Visual Basic 사용합니다. 구조화되지 않은 로그 레코드는 바이트의 버퍼일 뿐이며 일반적으로 Microsoft Visual C++ 사용합니다. CRM Compensator는 두 보상자 인터페이스를 모두 구현할 수 있습니다. 그러나 로그 레코드를 배달하는 데는 한 번에 하나만 사용됩니다.
  • COM+ CRM 모니터링 인터페이스는 특정 서버 애플리케이션 내에서 CRM을 모니터링하는 데 사용됩니다. 모니터링 인터페이스에 대한 자세한 내용은 COM+ CRM 모니터링 인터페이스를 참조하세요.

이 섹션의 다음 항목에서는 COM+ CRM 서비스에 대한 자세한 내용을 제공합니다.

COM+ 보상 Resource Manager 작업