COM+ CRM 개발을 위한 디자인 제안
COM+ CRM을 개발하기 위한 권장 단계는 다음과 같습니다.
- 개발을 시작하기 전에 트랜잭션 제한 시간을 0으로 설정합니다(Component Services 관리 도구 사용). VTRACE1 레지스트리 플래그( COM+ CRM 레지스트리 설정 참조)를 설정하여 디버그 추적에서 CRM 경고 및 오류 메시지를 확인합니다.
- 사용해야 하는 인터페이스 집합, 구조적(Variant) 또는 비구조적 인터페이스 집합을 결정합니다. (COM+ CRM 인터페이스를 참조하세요.) CRM을 개발하는 데 사용하는 언어(예: Microsoft Visual C++ 또는 Microsoft Visual Basic)에 따라 달라집니다.
- 먼저 CRM 작업자를 개발합니다. 로그 레코드에 필요한 정보를 결정합니다. 필요한 로그 레코드 형식과 해당 형식을 정의합니다.
- 디버그 CRM 보상자는 CRM 샘플의 일부로 제공됩니다(Windows SDK에서). 이는 실제 CRM 보상자 대신 CRM 작업자를 디버깅할 때 일시적으로 사용할 수 있습니다.
- CRM 작업자가 올바르게 작동하는 경우 실제 CRM 보상자를 개발하고 디버그 CRM 보상자를 실제 CRM 보상자로 바꿉니다.
- 처음에는 복구 사례를 테스트하지 않는 것이 바람직할 수 있습니다. 그렇다면 CRM 서버 애플리케이션을 시작하기 전에 매번 CRM 서버 애플리케이션에 대한 CRM 로그 파일을 삭제합니다.
고려 사항
- 미리 작성합니다. CRM 작업자 구성 요소는 미리 작성해야 합니다. 즉, 실제로 해당 작업을 수행하기 전에 작업을 수행할 것임을 나타내는 로그 레코드를 작성해야 합니다. 또한 이 로그 레코드는 쓰기 후 및 작업이 수행되기 전에 강제로 디스크에 있어야 합니다.
- 격리. CRM은 격리를 적용하지 않습니다. CRM 디자인은 별도의 트랜잭션에서 여러 클라이언트 간에 격리를 제공해야 하며 복구 전에 사례를 고려해야 합니다.
- 복구가 진행 중입니다. CRM 작업자는 "복구 진행 중" 오류 코드를 처리해야 합니다. 이 오류 코드에 대한 자세한 내용은 COM+ CRM 문제 해결 을 참조하세요.
- 오류 처리입니다. CRM 작업자는 트랜잭션이 예상보다 일찍 중단된 경우에 대처해야 합니다. COM+ CRM의 오류 처리 섹션을 참조하세요.
- 복구 시간입니다. CRM 보상자는 해당 CRM 서버 애플리케이션에 대한 새 작업을 기다릴 필요가 없도록 신속하게 복구를 수행하도록 설계되어야 합니다.
- 멱등원. CRM 보상자는 이미 실행 취소 또는 다시 실행된 작업을 실행 취소하거나 다시 실행하기 위해 동일한 로그 레코드를 다시 받을 수 있습니다. CRM 보상자가 수행할 수 있는 작업은 idempotent여야 합니다. 즉, 이러한 작업에서 반환된 오류 코드를 무시해야 하는 경우가 많습니다.
- 복구 시작. CRM 서버 애플리케이션의 복구는 해당 CRM 서버 애플리케이션이 시작될 때 수행됩니다. 그러나 CRM 서버 애플리케이션의 자동 시작은 없습니다. 애플리케이션 개발자는 시작과 복구를 모두 시작하는 방법을 고려해야 합니다.
관련 항목