다음을 통해 공유


COM+ CRM 개발을 위한 디자인 제안

COM+ CRM을 개발하기 위한 권장 단계는 다음과 같습니다.

  1. 개발을 시작하기 전에 트랜잭션 제한 시간을 0으로 설정합니다(Component Services 관리 도구 사용). VTRACE1 레지스트리 플래그( COM+ CRM 레지스트리 설정 참조)를 설정하여 디버그 추적에서 CRM 경고 및 오류 메시지를 확인합니다.
  2. 사용해야 하는 인터페이스 집합, 구조적(Variant) 또는 비구조적 인터페이스 집합을 결정합니다. (COM+ CRM 인터페이스를 참조하세요.) CRM을 개발하는 데 사용하는 언어(예: Microsoft Visual C++ 또는 Microsoft Visual Basic)에 따라 달라집니다.
  3. 먼저 CRM 작업자를 개발합니다. 로그 레코드에 필요한 정보를 결정합니다. 필요한 로그 레코드 형식과 해당 형식을 정의합니다.
  4. 디버그 CRM 보상자는 CRM 샘플의 일부로 제공됩니다(Windows SDK에서). 이는 실제 CRM 보상자 대신 CRM 작업자를 디버깅할 때 일시적으로 사용할 수 있습니다.
  5. CRM 작업자가 올바르게 작동하는 경우 실제 CRM 보상자를 개발하고 디버그 CRM 보상자를 실제 CRM 보상자로 바꿉니다.
  6. 처음에는 복구 사례를 테스트하지 않는 것이 바람직할 수 있습니다. 그렇다면 CRM 서버 애플리케이션을 시작하기 전에 매번 CRM 서버 애플리케이션에 대한 CRM 로그 파일을 삭제합니다.

고려 사항

  1. 미리 작성합니다. CRM 작업자 구성 요소는 미리 작성해야 합니다. 즉, 실제로 해당 작업을 수행하기 전에 작업을 수행할 것임을 나타내는 로그 레코드를 작성해야 합니다. 또한 이 로그 레코드는 쓰기 후 및 작업이 수행되기 전에 강제로 디스크에 있어야 합니다.
  2. 격리. CRM은 격리를 적용하지 않습니다. CRM 디자인은 별도의 트랜잭션에서 여러 클라이언트 간에 격리를 제공해야 하며 복구 전에 사례를 고려해야 합니다.
  3. 복구가 진행 중입니다. CRM 작업자는 "복구 진행 중" 오류 코드를 처리해야 합니다. 이 오류 코드에 대한 자세한 내용은 COM+ CRM 문제 해결 을 참조하세요.
  4. 오류 처리입니다. CRM 작업자는 트랜잭션이 예상보다 일찍 중단된 경우에 대처해야 합니다. COM+ CRM의 오류 처리 섹션을 참조하세요.
  5. 복구 시간입니다. CRM 보상자는 해당 CRM 서버 애플리케이션에 대한 새 작업을 기다릴 필요가 없도록 신속하게 복구를 수행하도록 설계되어야 합니다.
  6. 멱등원. CRM 보상자는 이미 실행 취소 또는 다시 실행된 작업을 실행 취소하거나 다시 실행하기 위해 동일한 로그 레코드를 다시 받을 수 있습니다. CRM 보상자가 수행할 수 있는 작업은 idempotent여야 합니다. 즉, 이러한 작업에서 반환된 오류 코드를 무시해야 하는 경우가 많습니다.
  7. 복구 시작. CRM 서버 애플리케이션의 복구는 해당 CRM 서버 애플리케이션이 시작될 때 수행됩니다. 그러나 CRM 서버 애플리케이션의 자동 시작은 없습니다. 애플리케이션 개발자는 시작과 복구를 모두 시작하는 방법을 고려해야 합니다.

COM+ 보상 Resource Manager 개념