COM+ Shared Eigenschaften-Manager Concepts
In COM+ wird der freigegebene vorübergehende Zustand für Objekte mithilfe des freigegebenen Eigenschaften-Managers (Shared Property Manager, SPM) verwaltet. Der SPM ist ein Ressourcenspender, mit dem Sie den Zustand zwischen mehreren Objekten innerhalb eines Serverprozesses freigeben können.
Aufgrund von Parallelitäts- und Namenskollisionsproblemen können Sie keine globalen Variablen in einer verteilten Umgebung verwenden. Der Freigegebene Eigenschaften-Manager beseitigt Namenskollisionen, indem freigegebene Eigenschaftengruppen angegeben werden, die eindeutige Namespaces für die freigegebenen Eigenschaften einrichten, die sie enthalten. Der SPM implementiert auch Sperren und Semaphoren, um freigegebene Eigenschaften vor gleichzeitigem Zugriff zu schützen, was zu verlorenen Updates führen und Eigenschaften in einem unvorhersehbaren Zustand befzustanden kann.
Hinweis
Freigegebener vorübergehender Zustand sind Zustandsinformationen, die im Arbeitsspeicher gespeichert werden und Systemausfälle nicht überstehen. Die Informationen sind so konzipiert, dass sie von mehreren Objekten über Transaktionsgrenzen hinweg (aber nicht prozessübergreifend) gemeinsam genutzt werden können.
Freigegebene Eigenschaften, die im SPM gespeichert sind, sind nur für Objekte verfügbar, die im gleichen Prozess ausgeführt werden. Dies bedeutet, dass die Objekte, die den SPM zum Speichern von Werten verwenden und Zugriff auf diese Werte benötigen, als Teil derselben COM+-Anwendung installiert werden müssen. Systemadministratoren können COM+-Klassen von einem Paket in ein anderes verschieben, nachdem Ihre COM+-Anwendung bereitgestellt wurde. Wenn Sie mehrere Objekte verwenden, die Eigenschaften über den SPM gemeinsam nutzen, sollten Sie deutlich dokumentieren, dass sie in derselben COM+-Anwendung installiert werden müssen.
Es ist auch wichtig, dass Komponenten, die Eigenschaften gemeinsam nutzen, das gleiche Aktivierungsattribut aufweisen. Wenn zwei Komponenten im gleichen Paket unterschiedliche Aktivierungsattribute aufweisen, können sie eigenschaften in der Regel nicht freigeben. Wenn beispielsweise eine Komponente für die Ausführung in einem Clientprozess und die andere für die Ausführung in einem Serverprozess konfiguriert ist, werden ihre Objekte in der Regel in verschiedenen Prozessen ausgeführt, obwohl sie sich im selben Paket befindet.
Sie sollten immer die SharedPropertyGroupManager-, SharedPropertyGroup-und SharedProperty-Objekte aus COM+-Komponenten und nicht von einem Basisclient instanziieren. Wenn ein Basisclient freigegebene Eigenschaftengruppen und Eigenschaften erstellt, befinden sich die freigegebenen Eigenschaften innerhalb des Basisclientprozesses und nicht in einem Serverprozess. Dies bedeutet, dass die COM+-Objekte die Eigenschaften nur gemeinsam nutzen können, wenn die Objekte auch im Clientprozess ausgeführt werden (was im Allgemeinen keine gute Idee ist).