CServiceConfig를 사용하여 COM+ 서비스 구성
CServiceConfig 클래스는 구성 요소 없이 사용할 수 있는 COM+ 서비스를 구성하는 데 사용됩니다. 다른 아파트에서 사용할 수 있도록 자유 스레드 마샬러를 집계합니다. 개별 서비스를 구성하려면 서비스와 연결된 인터페이스에 대해 QueryInterface 를 호출한 다음 해당 인터페이스에서 메서드를 호출하여 적절한 구성을 설정해야 합니다. 다음 표에서는 CServiceConfig 클래스를 통해 구현되는 인터페이스에 대해 설명합니다.
인터페이스 | Description |
---|---|
IServiceInheritanceConfig |
클래스의 기본 인터페이스입니다. 많은 COM+ 서비스를 신속하게 초기화하는 데 사용됩니다. |
IServiceComTIIntrinsicsConfig |
COMTI(COM Transaction Integrator) 내장 함수 정보를 구성하는 데 사용됩니다. COMTI를 사용하면 개발자가 메인프레임 기반 트랜잭션 프로그램을 구성 요소 기반 애플리케이션과 통합할 수 있습니다. |
IServiceIISIntrinsicsConfig |
IIS(인터넷 정보 서비스) 내장 정보를 구성하는 데 사용됩니다. |
IServicePartitionConfig |
서비스와 함께 COM+ 파티션을 사용하는 방법을 구성하는 데 사용됩니다. |
IServiceSxSConfig |
병렬 어셈블리를 구성하는 데 사용됩니다. |
IServiceSynchronizationConfig |
COM+ 동기화 서비스를 구성하는 데 사용됩니다. |
IServiceThreadPoolConfig |
COM+ 서비스에 대한 스레드 풀을 구성하는 데 사용됩니다. 스레드 풀은 CoCreateActivity 함수를 사용하는 경우에만 구성할 수 있습니다. |
IServiceTrackerConfig |
Tracker 속성을 구성하는 데 사용됩니다. 추적기는 코드를 모니터링하여 실행 중인 코드를 watch 데 사용하는 보고 메커니즘입니다. |
IServiceTransactionConfig |
COM+ 트랜잭션 서비스를 구성하는 데 사용됩니다. |
구성 요소 서비스 관리 도구
적용 되지 않습니다.
Visual Basic
적용 되지 않습니다.
C/C++
다음 코드 조각에서는 COM+ 트랜잭션을 사용하도록 CServiceConfig 개체를 만들고 구성하는 방법을 보여 줍니다.
// Create a CServiceConfig object.
HRESULT hr = CoCreateInstance(CLSID_CServiceConfig, NULL, CLSCTX_INPROC_SERVER,
IID_IUnknown, (void**)&pUnknownCSC);
if (FAILED(hr)) throw(hr);
// Query for the IServiceInheritanceConfig interface.
hr = pUnknownCSC->QueryInterface(IID_IServiceInheritanceConfig,
(void**)&pInheritanceConfig);
if (FAILED(hr)) throw(hr);
// Inherit the current context before using transactions.
hr = pInheritanceConfig->ContainingContextTreatment(CSC_Inherit);
if (FAILED(hr)) throw(hr);
// Query for the IServiceTransactionConfig interface.
hr = pUnknownCSC->QueryInterface(IID_IServiceTransactionConfig,
(void**)&pTransactionConfig);
if (FAILED(hr)) throw(hr);
// Configure transactions to always create a new one.
hr = pTransactionConfig->ConfigureTransaction(CSC_NewTransaction);
if (FAILED(hr)) throw(hr);
// Set the isolation level of the transactions to ReadCommitted.
hr = pTransactionConfig->IsolationLevel(
COMAdminTxIsolationLevelReadCommitted);
if (FAILED(hr)) throw(hr);
// Set the transaction time-out to 1 minute.
hr = pTransactionConfig->TransactionTimeout(60);
if (FAILED(hr)) throw(hr);