Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’attribut de synchronisation est une propriété déclarative qui spécifie le type de synchronisation que vous souhaitez que vos composants aient lorsqu’ils sont activés. Lorsque vous incluez l’attribut de synchronisation, COM+ gère les détails de la synchronisation en votre nom ; vous n’avez pas besoin d’effectuer d’autres appels.
Selon ses besoins, un objet peut partager la synchronisation de son appelant, exiger une nouvelle synchronisation ou fonctionner sans synchronisation.
COM+ fournit les valeurs d’attribut de synchronisation suivantes :
Handicapé. Lorsque vous désactivez l’attribut de synchronisation, COM+ ignore les exigences de synchronisation du composant pour déterminer le contexte de l’objet. Par conséquent, l’objet peut ou non partager le contexte de son appelant (et la synchronisation).
En général, vous devez utiliser cette valeur d’attribut lorsque vous savez que le composant n’accède jamais à un gestionnaire de ressources. Lors de la migration de composants COM vers COM+, vous devez désactiver l’attribut de synchronisation pour maintenir le même comportement que le composant COM non configuré. Un composant non configuré est un composant COM qui n’a pas été installé dans une application COM+.
Non pris en charge. Un objet avec cette valeur ne participe jamais à la synchronisation, quel que soit l’état de son appelant. Ce paramètre est disponible uniquement pour les composants qui ne sont pas transactionnels et n’utilisent pas le service d’activation juste-à-temps (JIT) COM+ .
Supporté. Un objet avec cette valeur participe à la synchronisation s’il existe. Vous déclarez cette valeur lorsque vous souhaitez qu’un objet partage dans la synchronisation de son appelant, mais ne nécessite pas de synchronisation propre.
Une bonne raison de définir votre attribut de synchronisation sur Prise en charge est que ce paramètre peut être moins coûteux en termes de ressources système. Toutefois, il est plus difficile d’écrire votre composant en raison de la nécessité de la protéger contre les appels simultanés. L’implication de la définition de l’attribut de synchronisation sur Supported est que, dans certaines circonstances, une instance de votre objet peut être créée de telle manière qu’elle n’est pas synchronisée. Si le modèle de thread du composant est gratuit ou les deux, vous devez protéger vos données d’instance avec un certain type de mécanisme de verrouillage. Si le modèle threading est appartement (STA), vous n’aurez pas besoin de protéger vos données d’instance.
Obligatoire. Lorsque vous définissez cet attribut, COM+ garantit que tous les objets créés à partir du composant seront synchronisés. En effet, chaque fois que COM+ crée une instance de votre composant, il s’assure qu’il n’y a qu’un seul thread qui traverse cette instance à la fois.
Lorsque COM+ active un objet, il examine l’état de synchronisation de son appelant. Si l’appelant est synchronisé, COM+ circule la limite de synchronisation de l’appelant pour inclure le nouvel objet. Sinon, COM+ commence la synchronisation.
Nécessite nouveau. Un objet avec cette valeur doit participer à une nouvelle synchronisation, où COM+ gère les contextes et les appartements pour le compte de tous les composants impliqués dans l’appel. COM+ lance automatiquement une nouvelle synchronisation, qui est distincte de la synchronisation de l’appelant.
Une bonne raison de définir votre attribut de synchronisation sur Exiger nouveau est que ce paramètre vous permet d’effectuer des appels externes à une instance de votre composant de manière plus efficace. Toutefois, il effectue également des appels entre votre objet et l’objet qui l’a créé plus coûteux en termes de ressources système.
Par exemple, supposons que votre objet et son objet créateur partagent la même limite de synchronisation. Si le client A appelle l’objet créateur et que le client B appelle votre objet, le deuxième appel doit attendre que le premier appel soit terminé. Si vous définissez Exiger nouveau, votre objet est créé dans une limite de synchronisation distincte. Dans ce cas, les appels d’autres objets peuvent être traités en même temps. Toutefois, les appels de l’objet créateur à votre objet nécessitent davantage de ressources système, car ils doivent traverser les limites de synchronisation.
Rubriques connexes