Concepts du gestionnaire de propriétés partagées COM+

Dans COM+, l’état temporaire partagé des objets est géré à l’aide du gestionnaire de propriétés partagées (SPM). Le SPM est un distributeur de ressources que vous pouvez utiliser pour partager l’état entre plusieurs objets au sein d’un processus serveur.

Vous ne pouvez pas utiliser des variables globales dans un environnement distribué en raison de problèmes de concurrence et de collision de noms. Le gestionnaire de propriétés partagées élimine les collisions de noms en fournissant des groupes de propriétés partagés, qui établissent des espaces de noms uniques pour les propriétés partagées qu’ils contiennent. Le SPM implémente également des verrous et des sémaphores pour protéger les propriétés partagées contre l’accès simultané, ce qui peut entraîner la perte de mises à jour et laisser les propriétés dans un état imprévisible.

Notes

L’état temporaire partagé est des informations d’état conservées en mémoire qui ne survivent pas aux défaillances système. Les informations sont conçues pour être partagées par plusieurs objets au-delà des limites de transaction (mais pas entre les limites du processus).

 

Les propriétés partagées stockées dans le SPM ne sont disponibles que pour les objets s’exécutant dans le même processus. Cela signifie que les objets qui utiliseront le SPM pour stocker des valeurs et qui devront avoir accès à ces valeurs doivent être installés dans le cadre de la même application COM+. Il est possible pour les administrateurs système de déplacer des classes COM+ d’un package à un autre une fois votre application COM+ déployée. Si vous vous appuyez sur plusieurs objets partageant des propriétés via le SPM, vous devez clairement documenter qu’ils doivent être installés dans la même application COM+.

Il est également important que les composants partageant des propriétés aient le même attribut d’activation. Si deux composants du même package ont des attributs d’activation différents, ils ne pourront généralement pas partager de propriétés. Par exemple, si un composant est configuré pour s’exécuter dans un processus client et que l’autre est configuré pour s’exécuter dans un processus serveur, ses objets s’exécutent généralement dans des processus différents même s’ils se situent dans le même package.

Vous devez toujours instancier les objets SharedPropertyGroupManager, SharedPropertyGroup et SharedProperty à partir de composants COM+ plutôt qu’à partir d’un client de base. Si un client de base crée des groupes de propriétés et des propriétés partagés, les propriétés partagées se trouvent à l’intérieur du processus client de base, et non dans un processus serveur. Cela signifie que les objets COM+ ne peuvent pas partager les propriétés, sauf si les objets s’exécutent également dans le processus client (ce qui n’est généralement pas une bonne idée).

Gestionnaire de propriétés partagées COM+

Groupes de propriétés partagées