Configuration des services COM+ avec CServiceConfig
La classe CServiceConfig est utilisée pour configurer les services COM+ qui peuvent être utilisés sans composants. Il agrège le marshaler à thread libre, de sorte qu’il peut être utilisé dans différents appartements. Pour configurer un service individuel, vous devez appeler QueryInterface pour l’interface associée au service, puis appeler des méthodes sur cette interface pour établir la configuration appropriée. Le tableau suivant décrit les interfaces implémentées par le biais de la classe CServiceConfig .
Interface | Description |
---|---|
IServiceInheritanceConfig |
Interface par défaut de la classe . Il est utilisé pour initialiser rapidement la plupart des services COM+. |
IServiceComTIIntrinsicsConfig |
Permet de configurer les informations intrinsèques COMTI (COMTI). COMTI permet aux développeurs d’intégrer des programmes transactionnels basés sur des ordinateurs mainframe avec des applications basées sur des composants. |
IServiceIISIntrinsicsConfig |
Permet de configurer les informations intrinsèques des services Internet (IIS). |
IServicePartitionConfig |
Permet de configurer la façon dont les partitions COM+ sont utilisées avec les services. |
IServiceSxSConfig |
Permet de configurer des assemblys côte à côte. |
IServiceSynchronizationConfig |
Utilisé pour configurer les services de synchronisation COM+. |
IServiceThreadPoolConfig |
Permet de configurer le pool de threads pour le service COM+. Le pool de threads peut être configuré uniquement lors de l’utilisation de la fonction CoCreateActivity . |
IServiceTrackerConfig |
Permet de configurer la propriété Tracker. Le suivi est un mécanisme de création de rapports utilisé par le code de surveillance pour watch quel code est en cours d’exécution. |
IServiceTransactionConfig |
Permet de configurer le service transactionnel COM+. |
Outil d’administration des services de composants
Non applicable.
Visual Basic
Non applicable.
C/C++
Le fragment de code suivant montre comment créer et configurer un objet CServiceConfig pour utiliser des transactions COM+.
// 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);