Synchronisierungsattributwerte

Das Synchronisierungsattribut ist eine deklarative Eigenschaft, die angibt, welchen Synchronisierungstyp Ihre Komponenten haben sollen, wenn sie aktiviert werden. Wenn Sie das Synchronisierungsattribut einschließen, verarbeitet COM+ die Details der Synchronisierung in Ihrem Namen. Sie müssen keine weiteren Anrufe tätigen.

Abhängig von seinen Anforderungen kann ein Objekt die Synchronisierung des Aufrufers freigeben, eine neue Synchronisierung erfordern oder ohne Synchronisierung arbeiten.

COM+ stellt die folgenden Synchronisierungsattributwerte bereit:

  • Deaktiviert. Wenn Sie das Synchronisierungsattribut deaktivieren, ignoriert COM+ die Synchronisierungsanforderungen der Komponente, um den Kontext für das Objekt zu bestimmen. Daher kann das Objekt den Kontext (und die Synchronisierung) des Aufrufers gemeinsam nutzen.

    Im Allgemeinen sollten Sie diesen Attributwert verwenden, wenn Sie wissen, dass die Komponente nie auf einen Ressourcen-Manager zugreift. Wenn Sie COM-Komponenten zu COM+ migrieren, müssen Sie das Synchronisierungsattribut deaktivieren, um das gleiche Verhalten wie die nicht konfigurierte COM-Komponente beizubehalten. Eine nicht konfigurierte Komponente ist eine COM-Komponente, die nicht in einer COM+-Anwendung installiert wurde.

  • Nicht unterstützt. Ein Objekt mit diesem Wert nimmt unabhängig vom Status seines Aufrufers nie an einer Synchronisierung teil. Diese Einstellung ist nur für Komponenten verfügbar, die nicht transaktional sind und nicht den JIT-Aktivierungsdienst (JUST-in-Time) von COM+ verwenden.

  • Unterstützt. Ein Objekt mit diesem Wert nimmt an der Synchronisierung teil, sofern vorhanden. Sie deklarieren diesen Wert, wenn Sie möchten, dass ein Objekt in der Synchronisierung des Aufrufers freigegeben wird, aber keine eigene Synchronisierung erfordert.

    Ein guter Grund, ihr Synchronisierungsattribut auf Supported festzulegen, ist, dass diese Einstellung in Bezug auf Systemressourcen kostengünstiger sein kann. Es ist jedoch schwieriger, Ihre Komponente zu schreiben, da sie vor gleichzeitigen Aufrufen geschützt werden muss. Die Festlegung des Synchronisierungsattributs auf Supported bedeutet, dass unter bestimmten Umständen eine instance Ihres Objekts so erstellt werden kann, dass es nicht synchronisiert wird. Wenn das Threadingmodell der Komponente Free oder Both ist, müssen Sie Ihre instance Daten mit einem Sperrmechanismus schützen. Wenn das Threadingmodell Apartment (STA) lautet, müssen Sie Ihre instance Daten nicht schützen.

  • Erforderlich. Wenn Sie dieses Attribut festlegen, stellt COM+ sicher, dass alle objekte, die aus der Komponente erstellt wurden, synchronisiert werden. Wenn COM+ eine instance Ihrer Komponente erstellt, wird sichergestellt, dass jeweils nur ein Thread diesen instance durchläuft.

    Wenn COM+ ein Objekt aktiviert, wird die Synchronisierung status des Aufrufers untersucht. Wenn der Aufrufer synchronisiert wird, fließt COM+ die Synchronisierungsgrenze des Aufrufers, um das neue Objekt einzuschließen. Andernfalls beginnt COM+ mit der Synchronisierung.

  • Erfordert Neu. Ein Objekt mit diesem Wert muss an einer neuen Synchronisierung teilnehmen, bei der COM+ Kontexte und Wohnungen im Namen aller am Aufruf beteiligten Komponenten verwaltet. COM+ initiiert automatisch eine neue Synchronisierung, die sich von der Synchronisierung des Aufrufers unterscheidet.

    Ein guter Grund, ihr Synchronisierungsattribut auf Neu erforderlich festzulegen, ist, dass Sie mit dieser Einstellung externe Aufrufe an eine instance Ihrer Komponente effizienter ausführen können. Es führt jedoch auch Aufrufe zwischen Ihrem -Objekt und dem Objekt aus, das es erstellt hat, in Bezug auf Systemressourcen teurer.

    Nehmen wir beispielsweise einen Fall an, in dem ihr Objekt und sein Erstellerobjekt die gleiche Synchronisierungsgrenze gemeinsam nutzen. Wenn Client A das Creator-Objekt aufruft und Client B Ihr Objekt aufruft, muss der zweite Aufruf warten, bis der erste Aufruf abgeschlossen ist. Wenn Sie Neu erforderlich festlegen, wird das Objekt in einer separaten Synchronisierungsgrenze erstellt. In diesem Fall können Aufrufe von anderen Objekten gleichzeitig verarbeitet werden. Aufrufe vom Erstellerobjekt an Ihr Objekt erfordern jedoch mehr Systemressourcen, da sie Synchronisierungsgrenzen überschreiten müssen.

Festlegen des Synchronisierungsattributs

Synchronisierungsabhängigkeiten