Share via


동기화 특성 값

동기화 특성은 구성 요소가 활성화될 때 사용할 동기화 유형을 지정하는 선언적 속성입니다. 동기화 특성을 포함하면 COM+는 사용자를 대신하여 동기화 세부 정보를 처리합니다. 다른 호출을 수행할 필요가 없습니다.

요구 사항에 따라 개체는 호출자의 동기화를 공유하거나, 새 동기화가 필요하거나, 동기화 없이 작동할 수 있습니다.

COM+는 다음과 같은 동기화 특성 값을 제공합니다.

  • 사용 안 함. 동기화 특성을 사용하지 않도록 설정하면 COM+는 개체의 컨텍스트를 결정할 때 구성 요소의 동기화 요구 사항을 무시합니다. 결과적으로 개체는 호출자의 컨텍스트(및 동기화)를 공유하거나 공유하지 않을 수 있습니다.

    일반적으로 구성 요소가 리소스 관리자에 액세스하지 않는 경우 이 특성 값을 사용해야 합니다. COM 구성 요소를 COM+로 마이그레이션할 때 구성되지 않은 COM 구성 요소와 동일한 동작을 유지하려면 동기화 특성을 사용하지 않도록 설정해야 합니다. 구성되지 않은 구성 요소는 COM+ 애플리케이션에 설치되지 않은 COM 구성 요소입니다.

  • 지원되지 않습니다. 이 값을 가진 개체는 호출자의 상태에 관계 없이 동기화에 참여할 수 없습니다. 이 설정은 트랜잭션이 아닌 구성 요소에만 사용할 수 있으며 COM+ JIT(Just-In-Time) 활성화 서비스를 사용하지 않습니다.

  • 지원됩니다. 이 값이 있는 개체가 있는 경우 동기화에 참여합니다. 개체를 호출자의 동기화에서 공유하지만 자체 동기화가 필요하지 않은 경우 이 값을 선언합니다.

    동기화 특성을 지원됨으로 설정하는 좋은 이유는 이 설정이 시스템 리소스 측면에서 더 저렴할 수 있기 때문입니다. 그러나 동시 호출로부터 보호해야 하므로 구성 요소를 작성하기가 더 어렵습니다. 동기화 특성을 Supported로 설정하면 특정 상황에서는 동기화되지 않는 방식으로 개체의 instance 만들 수 있습니다. 구성 요소의 스레딩 모델이 무료 또는 둘 다인 경우 일부 유형의 잠금 메커니즘을 사용하여 instance 데이터를 보호해야 합니다. 스레딩 모델이 STA(Apartment)인 경우 instance 데이터를 보호할 필요가 없습니다.

  • 필수 사항입니다. 이 특성을 설정하면 COM+는 구성 요소에서 만든 모든 개체가 동기화되도록 합니다. 실제로 COM+에서 구성 요소의 instance 만들 때마다 이 instance 한 번에 하나의 스레드만 통과합니다.

    COM+가 개체를 활성화하면 호출자의 동기화 상태 확인합니다. 호출자가 동기화되면 COM+는 호출자의 동기화 경계를 새 개체를 포함하도록 흐릅니다. 그렇지 않으면 COM+가 동기화를 시작합니다.

  • 새로 만들기가 필요합니다. 이 값을 가진 개체는 COM+가 호출에 관련된 모든 구성 요소를 대신하여 컨텍스트 및 아파트를 관리하는 새 동기화에 참여해야 합니다. COM+는 호출자의 동기화와 구별되는 새 동기화를 자동으로 시작합니다.

    동기화 특성을 새로 필요로 설정하는 좋은 이유는 이 설정을 통해 구성 요소의 instance 대한 외부 호출을 보다 효율적으로 수행할 수 있기 때문입니다. 그러나 시스템 리소스 측면에서 개체와 개체 간에 호출을 더 많이 만듭니다.

    예를 들어 개체와 해당 작성자 개체가 동일한 동기화 경계를 공유하는 경우를 가정합니다. 클라이언트 A가 작성자 개체를 호출하고 클라이언트 B가 개체를 호출하는 경우 두 번째 호출은 첫 번째 호출이 완료될 때까지 기다려야 합니다. 새로 필요를 설정하면 개체가 별도의 동기화 경계에 만들어집니다. 이 경우 다른 개체의 호출을 동시에 처리할 수 있습니다. 그러나 작성자 개체에서 개체로 호출하려면 동기화 경계를 넘어야 하므로 더 많은 시스템 리소스가 필요합니다.

동기화 특성 설정

동기화 종속성