Objektpooling

Der COM+-Objektpooling-Dienst ermöglicht, dass Sie nicht jedes Objekt vollständig neu erstellen müssen, wodurch Sie unnötigen Arbeitsaufwand einsparen können. Wenn ein Objekt aktiviert ist, wird es aus dem Pool abgerufen. Ist das Objekt deaktiviert, wird es wieder zurück in den Pool abgelegt, um auf die nächste Anforderung zu warten.

Das Objektpooling kann durch Anwenden des ObjectPoolingAttribute-Attributs auf eine Klasse konfiguriert werden, die von der System.EnterpriseServices.ServicedComponent-Klasse abgeleitet wird.

Eine Beschreibung des Verfahrens zum Anwenden des ObjectPoolingAttribute und Festlegen seiner Eigenschaften finden Sie unter Verfahrensweise: Erstellen eines gepoolten Objekts und Festlegen seiner Größe und Timeoutgrenzwerte.

Mit Objektpooling können Sie die Anzahl der verwendeten Verbindungen steuern, im Gegensatz zum Verbindungspooling, bei dem die erreichte Höchstzahl gesteuert wird. Im Folgenden finden Sie eine Auflistung der wichtigen Unterschiede zwischen Objekt- und Verbindungspooling:

  • Erstellung. Bei Verwendung von Verbindungspooling findet die Erstellung im selben Thread statt. Wenn der Pool also leer ist, wird in Ihrem Auftrag eine Verbindung hergestellt. Beim Objektpooling ist der Pool in der Lage, ein neues Objekt zu erstellen. Wenn aber bereits der für Sie gültige Höchstwert erreicht wurde, erhalten Sie stattdessen das nächste verfügbare Objekt. Hierbei handelt es sich um ein entscheidendes Verhalten, wenn das Erstellen eines Objekts lange dauert, dieses aber nicht lange verwendet wird.

  • Erzwingen von Mindest- und Höchstwerten. Dies findet beim Verbindungspooling nicht statt. Der Höchstwert beim Objektpooling ist beim Skalieren Ihrer Anwendung von großer Bedeutung. Möglicherweise müssen Sie für Tausende von Anforderungen an nur wenige Objekte Multiplexing durchführen. (TPC/C-Vergleichstests basieren auf diesem Mechanismus.)

Das COM+-Objektpooling ist praktisch identisch mit dem von .NET Framework verwalteten SQL-Clientverbindungspooling. So erfolgt beispielsweise die Erstellung in einem anderen Thread und Mindest- und Höchstwerte werden erzwungen.

NoteHinweis:

Das Verhalten des Objektpoolings wird von Anwendungsdomänen beeinflusst. In Windows 2000 werden alle gepoolten Objekte, wenn die Anwendungsaktivierung auf Bibliothek festgelegt und mehrere Anwendungsdomänen vorhanden sind, in der Standardanwendungsdomäne erstellt und von mehreren Clients gemeinsam verwendet. Unter denselben Gegebenheiten ist bei Verwendung von Windows XP oder Windows Server 2003 ein Objektpool pro Anwendungsdomäne vorhanden. Bei Verwendung eines der genannten Betriebssysteme mit mehreren Anwendungsdomänen und auf Server festgelegter Anwendungsaktivierung verwenden prozessexterne Clients den Objektpool in der Anwendungsdomäne.

NoteHinweis:

Im Allgemeinen muss DisposeObject nicht vom Client aufgerufen werden, wenn Serviced Components verwendet werden. Dies ist aber notwendig, wenn Sie den COM+-Objektpooling-Dienst bei deaktiviertem JIT-Aktivierungsdienst (Just-in-Time) verwenden. In diesem Fall muss zur Überprüfung, dass es sicher ist, das Objekt an den Pool zurückzugeben, COM+ darüber benachrichtigt werden, wenn Sie mit dem Objekt fertig sind. Wenn Sie beabsichtigen, immer nur einen gleichzeitigen Aufruf eines gepoolten Objekts auszuführen, ist es im Allgemeinen ratsam, die JIT-Aktivierung zusammen mit dem Objektpooling zu aktivieren. Wenn Sie aber einen Verweis abrufen und mehrere Aufrufe damit durchführen möchten, kann die Verwendung des Objektpoolings ohne JIT-Aktivierung zu einer besseren Leistung führen.

Siehe auch

Aufgaben

Verfahrensweise: Erstellen eines gepoolten Objekts und Festlegen seiner Größe und Timeoutgrenzwerte

Referenz

ObjectPoolingAttribute
System.EnterpriseServices Namespace

Konzepte

Zusammenfassung der verfügbaren COM+-Dienste

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.