Concepts du Gestionnaire de propriétés partagés COM+

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

Vous ne pouvez pas utiliser de variables globales dans un environnement distribué en raison des problèmes de concurrence et de collision de noms. Le gestionnaire de propriétés partagé é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 des mises à jour perdues et laisser des propriétés dans un état imprévisible.

Notes

L’état temporaire partagé est les 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 entre les limites de transaction (mais pas entre les processus).

 

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

Il est également important que les propriétés de partage des composants aient le même attribut d’activation. Si deux composants du même package ont des attributs d’activation différents, ils ne peuvent généralement pas partager les 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, leurs objets s’exécutent généralement dans différents processus, même s’ils se trouvent dans le même package.

Vous devez toujours instancier les objets SharedPropertyGroup,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 dans le processus de base-client, 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és COM+

Groupes de propriétés partagés