Concepts de synchronisation COM+
En règle générale, la synchronisation n’est pas nécessaire lorsque vous avez un appartement à thread unique (STA), car l’appartement fournit la synchronisation pour vous. La synchronisation devient importante lorsque vous disposez d’un appartement multithread (MTA) et d’un objet à thread libre. Dans le passé, les objets à thread libre devaient gérer le verrouillage. Vous pouvez éliminer la nécessité d’utiliser le verrouillage en définissant l’attribut de synchronisation pour un composant.
La synchronisation a les propriétés suivantes :
- Permet à un appelant d’entrer le composant à la fois.
- Interdit le flux entre les processus ou sur l’ordinateur.
- Flux d’un composant à un composant au sein d’un processus.
- Autorise la réentrance à partir du même appelant.
Contrairement aux appartements, les activités couvrent les contextes de plusieurs processus et hôtes. La synchronisation détermine l’activité qui contiendra un objet. Les objets peuvent résider dans l’une des activités suivantes :
- Activité du créateur
- Nouvelle activité
- Aucune activité
COM+ garantit la concurrence par une série de verrous pour chaque activité. Si un appelant tente d’entrer un composant synchronisé COM+ qui est déjà utilisé par un autre appelant, l’appel est bloqué jusqu’à ce que le verrou soit libéré. Ce comportement de blocage n’expire pas et ne peut pas être configuré pour expirer. Si le verrou n’est pas utilisé, le verrou est acquis et l’appel est traité. Une fois terminé, le verrou est libéré pour l’appelant suivant. Pour éviter l’interblocage, COM+ gère l’accès à tous les objets entre les activités par une série imbriquée d’appels chaînés sur le réseau.
COM+ fournit les paramètres de synchronisation suivants :
- Désactivé
- Non pris en charge
- Prise en charge
- Obligatoire
- Nouveau requis
Notes
Certains paramètres de synchronisation fonctionnent conjointement avec d’autres paramètres de composant COM+. Par exemple, la synchronisation est requise si le service d’activation juste-à-temps (JIT) COM+ est activé. JIT est requis si vous activez les transactions ; par conséquent, le traitement des transactions COM+ nécessite également une synchronisation. Par conséquent, les classes avec le paramètre JIT=True doivent également avoir le paramètre Synchronization=Required ou Synchronization=RequiresNew.
Pour obtenir des instructions sur la définition des options de synchronisation à l’aide de l’outil d’administration Component Services, consultez Définition de l’attribut de synchronisation.
Pour obtenir plus d’informations sur l’utilisation de la bibliothèque d’administration COM+ pour définir les options de synchronisation, consultez Automatisation de l’administration COM+.
Rubriques connexes