다음을 통해 공유


COM+ CRM 모니터링 인터페이스

CRM 인프라는 특정 서버 애플리케이션 내에서 CRM을 모니터링하는 데 사용할 수 있는 인터페이스 집합을 제공합니다. 모니터링 인터페이스에 액세스하려면 서버 애플리케이션 내에서 실행되는 구성 요소가 먼저 CRM 복구 클럭이라는 특수 CRM 클럭을 만들어야 합니다.

일반적으로 CRM을 사용하는 경우 트랜잭션은 수명이 짧을 것으로 예상되므로 CRM 작업자 및 CRM 보상자는 짧은 기간 동안 존재하며, 일반적으로 최대 몇 초밖에 되지 않습니다. 따라서 모니터링 인터페이스는 특정 시점에 실행 중인 CRM의 상태를 스냅샷 제공하도록 설계되었습니다. CRM에 문제가 있는 경우 모니터링 인터페이스를 사용하여 번거로운 CRM에서 0으로 사용하고, 로그 레코드를 검사하고, 필요한 경우 트랜잭션을 중단할 수 있습니다.

다음은 세 가지 CRM 모니터링 인터페이스 및 작동 방식에 대한 설명입니다.

인터페이스 Description
ICrmMonitor
ICrmMonitor::GetClerks를 사용하여 서버 애플리케이션 내에서 현재 활성 CRM 클럭 집합의 스냅샷 가져올 수 있습니다. 이를 통해 트랜잭션의 현재 상태와 CRM에서 작성한 로그 레코드를 포함하여 관심 있는 특정 CRM 클럭 컬렉션 개체를 찾아 쿼리할 수 있습니다.
모니터링 도구가 관심 있는 서기를 결정하면 ICrmMonitor::HoldClerk 를 호출하여 해당 특정 클럭에서 ICrmMonitorLogRecords 인터페이스를 가져옵니다. 이 시점에서 모니터링 도구는 해당 클럭에 대한 참조를 보유하고 있으며 트랜잭션이 완료되면 클럭이 메모리에 보관되고 모니터링 도구가 완료될 때까지 해제되지 않습니다.
ICrmMonitorClerks
이 인터페이스를 사용하여 클럭 컬렉션 개체를 가져온 시점에 클럭 컬렉션의 상태에 대한 정보를 검색할 수 있습니다. 이 정보에는 서기 수, 서기가 사용하는 CRM Compensator의 ProgID, CRM Compensator가 등록될 때 제공된 설명( ICrmLogControl::RegisterCompensator 사용), 트랜잭션 작업 단위 ID 및 활동 ID가 포함됩니다. 개별 서기는 또한 용어의 일반적인 의미에서 COM CLSID가 아니라 단순히 수명 동안이 특정 서기를 식별하는 독특한 GUID인 "CLSID를 instance 서기"에 의해 고유하게 식별됩니다.
ICrmMonitorLogRecords
이 인터페이스를 사용하여 트랜잭션의 현재 상태를 쿼리하고, 이 CRM 서기가 작성한 로그 레코드 수를 확인하고, 실제 로그 레코드 데이터를 가져올 수 있습니다. 로그 레코드는 ICrmLogControl을 사용하여 원래 작성된 형식과 동일한 형식으로 ICrmMonitorLogRecords 인터페이스에서 제공됩니다. 또한 ICrmMonitorLogRecords 를 선택적으로 구현하여 로그 레코드를 볼 수 있는 형식으로 변환하여 일반 모니터링 도구를 사용하여 표시할 수 있습니다.
ICrmMonitorLogRecords는 CRM 클럭에서 직접 구현되므로 ICrmLogControl에 대해 QueryInterface를 수행할 수 있습니다(CRM 클럭에서도 구현됨). 그런 다음 필요한 경우 트랜잭션을 직접 중단하는 데 사용할 수 있습니다(ICrmLogControl::ForceTransactionToAbort).

COM+ 보상 Resource Manager 개념