동기화 특성은 구성 요소가 활성화될 때 사용할 동기화 유형을 지정하는 선언적 속성입니다. 동기화 특성을 포함하면 COM+에서 사용자 대신 동기화의 세부 정보를 처리합니다. 다른 호출을 수행할 필요가 없습니다.
요구 사항에 따라 개체는 호출자의 동기화를 공유하거나, 새 동기화를 요구하거나, 동기화 없이 작동할 수 있습니다.
COM+는 다음과 같은 동기화 특성 값을 제공합니다.
비활성화. 동기화 특성을 사용하지 않도록 설정하면 COM+는 개체의 컨텍스트를 결정할 때 구성 요소의 동기화 요구 사항을 무시합니다. 결과적으로 개체는 호출자의 컨텍스트(및 동기화)를 공유하거나 공유하지 않을 수 있습니다.
일반적으로 구성 요소가 리소스 관리자에 액세스하지 않는 경우 이 특성 값을 사용해야 합니다. COM 구성 요소를 COM+로 마이그레이션할 때 구성되지 않은 COM 구성 요소와 동일한 동작을 유지하려면 동기화 특성을 사용하지 않도록 설정해야 합니다. 구성 요소 구성 요소는 COM+ 애플리케이션에 설치되지 않은 COM 구성 요소입니다.
지원되지 않습니다. 이 값을 가진 개체는 호출자의 상태에 관계없이 동기화에 참여하지 않습니다. 이 설정은 트랜잭션이 아닌 구성 요소에만 사용할 수 있으며 COM+ JIT(Just-In-Time) 정품 인증 서비스를 사용하지 않습니다.
지원. 이 값이 있는 개체가 있는 경우 동기화에 참여합니다. 호출자의 동기화에서 개체를 공유하지만 자체 동기화가 필요하지 않은 경우 이 값을 선언합니다.
동기화 특성을 지원됨으로 설정하는 좋은 이유는 시스템 리소스 측면에서 이 설정이 더 저렴할 수 있기 때문입니다. 그러나 동시 호출로부터 구성 요소를 보호해야 하므로 구성 요소를 작성하기가 더 어렵습니다. 동기화 특성을 Supported로 설정하면 특정 상황에서는 동기화되지 않는 방식으로 개체의 인스턴스가 생성될 수 있다는 의미입니다. 구성 요소의 스레딩 모델이 무료이거나 둘 다인 경우 일부 유형의 잠금 메커니즘으로 인스턴스 데이터를 보호해야 합니다. 스레딩 모델이 STA(Apartment)인 경우 인스턴스 데이터를 보호할 필요가 없습니다.
필수. 이 특성을 설정하면 COM+에서 구성 요소에서 만든 모든 개체가 동기화되도록 합니다. 실제로 COM+에서 구성 요소의 인스턴스를 만들 때마다 한 번에 하나의 스레드만 이 인스턴스를 통과합니다.
COM+에서 개체를 활성화하면 해당 호출자의 동기화 상태를 확인합니다. 호출자가 동기화된 경우 COM+는 호출자의 동기화 경계를 새 개체를 포함하도록 흐릅니다. 그렇지 않으면 COM+에서 동기화를 시작합니다.
새로 만들기가 필요합니다. 이 값을 가진 개체는 COM+에서 호출에 관련된 모든 구성 요소를 대신하여 컨텍스트 및 아파트를 관리하는 새 동기화에 참여해야 합니다. COM+는 호출자의 동기화와 구별되는 새 동기화를 자동으로 시작합니다.
동기화 특성을 Requires New로 설정하는 좋은 이유는 이 설정을 통해 구성 요소 인스턴스에 대한 외부 호출을 보다 효율적으로 수행할 수 있기 때문입니다. 그러나 시스템 리소스 측면에서 개체와 개체를 호출하면 비용이 더 많이 듭니다.
예를 들어 개체와 해당 작성자 개체가 동일한 동기화 경계를 공유하는 경우를 가정합니다. 클라이언트 A가 작성자 개체를 호출하고 클라이언트 B가 개체를 호출하는 경우 두 번째 호출은 첫 번째 호출이 완료될 때까지 기다려야 합니다. 새로 필요를 설정하면 개체가 별도의 동기화 경계에 만들어집니다. 이 경우 다른 개체의 호출을 동시에 처리할 수 있습니다. 그러나 작성자 개체에서 개체로 호출하려면 동기화 경계를 넘어야 하므로 더 많은 시스템 리소스가 필요합니다.
관련 항목
-
동기화 특성 설정