IObjectControl::D activate 메서드(comsvcs.h)
COM+ 개체가 재활용되거나 제거되기 전에 필요한 정리를 수행할 수 있도록 합니다.
이 메서드는 개체가 비활성화될 때마다 COM+ 런타임 환경에서 호출됩니다. 이 메서드와 동일한 작업의 개체에 대해 메서드를 호출하지 마세요.
구문
void Deactivate();
반환 값
없음
설명
COM+ 런타임 환경에서는 IObjectControl 인터페이스를 지원하는 개체가 비활성화될 때마다 Deactivate 메서드를 호출합니다. 개체가 SetComplete 또는 SetAbort라는 메서드에서 반환되거나, 실행된 트랜잭션이 커밋되거나 중단되거나, 개체에 대한 참조를 보유하는 마지막 클라이언트가 해당 참조를 해제할 때 개체가 비활성화됩니다.
구성 요소가 재활용을 지원하는 경우(CanBePooled 메서드에서 TRUE 반환) Deactivate 메서드를 사용하여 개체의 상태를 Activate 메서드에서 찾을 것으로 예상되는 상태로 다시 설정해야 합니다. Deactivate 메서드를 사용하여 개체의 컨텍스트를 해제하거나 다른 컨텍스트별 정리를 수행할 수도 있습니다. 개체가 재활용을 지원하더라도 Deactivate 메서드에서 재사용 가능한 특정 리소스를 해제하는 것이 도움이 될 수 있습니다. 예를 들어 ODBC는 자체 연결 풀링을 제공합니다. 데이터베이스 연결을 개체 풀의 특정 개체에 연결하는 것보다 다른 개체가 사용할 수 있는 일반 연결 풀에서 데이터베이스 연결을 풀하는 것이 더 효율적입니다.
COM+는 비활성화 메서드가 반환된 후(소멸자일 때) IObjectControl 을 노출하는 개체에 대한 호출을 명시적으로 금지합니다. 이러한 호출로 인해 RPC_E_DISCONNECTED 오류가 발생합니다. 예를 들어 개체가 자체에 대한 참조를 전달한 다음 비활성화 가 반환된 후 개체로 다시 호출하면 연결이 끊긴 오류가 발생합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | comsvcs.h |