Erzwingen der Aktivierung im Standardkontext
Eine konfigurierte COM-Komponente wird normalerweise in ihrem eigenen Kontext aktiviert. Das heißt, COM+ verweist auf die Kataloginformationen der Komponente, um alle konfigurierten Dienste bereitzustellen. Sie können jedoch eine konfigurierte Komponente im Standardkontext aktivieren. Eine COM-Basiskomponente – eine registrierte Komponente ohne COM+-Kataloginformationen – wird normalerweise im Standardkontext aktiviert.
Das Aktivieren einer COM-Komponente im Standardkontext bietet drei wesentliche Leistungsvorteile:
- Sie sparen Systemressourcen, indem Sie die Anzahl der erstellten Kontexte einschränken.
- Sie erhöhen die Leistung, indem Sie die Anzahl kontextübergreifender Aufrufe einschränken. Da kontextübergreifende Aufrufe Marshalling erfordern, ist es viel schneller, wenn ein com-Objekt, das im Standardkontext aktiviert ist, aufruft, andere Objekte im Standardkontext. Die Leistung (von Aufrufen innerhalb desselben Kontexts) ähnelt in diesem Fall dem Aufrufen einer Unterroutine.
- Sie können ältere COM-Anwendungen in COM+ importieren und problemlos ausführen. Beispielsweise haben Sie möglicherweise mehrere ältere COM-Anwendungen implementiert, unter der Annahme, dass es zulässig war, Objektverweise innerhalb eines Apartments zu übergeben, ohne die Verweise zu marshallen. Diese COM-Anwendungen funktionieren nicht, wenn sie in COM+ importiert werden, da die Objektverweise über Kontextgrenzen hinweg übergeben werden. Sie können diese Art von COM-Anwendung jedoch beim Import ausführen lassen, wenn Sie das Component Services-Verwaltungstool verwenden, um alle Klassen in der Anwendung als Im Standardkontext aktiviert zu markieren.
Der hauptnachteil der Aktivierung einer konfigurierten Komponente im Standardkontext besteht darin, dass COM+ keine der konfigurierten Dienste der Komponente bereitstellt. Es besteht ein Kompromiss zwischen verbesserter Leistung und der Möglichkeit, COM+-Dienste zu verwenden.
Angenommen, eine COM-Komponente erfordert keine COM+-Dienste (z. B . Transaktionen, Just-in-Time-Aktivierung, Ereignisse, Warteschlangenkomponenten, Synchronisierung oder Objektpooling) und dass die Komponente eine Reihe von Aufrufen anderer COM-Komponenten ausführt, die möglicherweise im Standardkontext aktiviert werden. In diesem Fall empfiehlt es sich, die aufrufende Komponente im Standardkontext zu aktivieren.
Wenn die COM-Komponente COM+-Dienste erfordert, kann sie nicht als Muss im Standardkontext aktiviert werden markiert werden. Darüber hinaus gibt es keinen echten Leistungsgewinn, wenn ein im Standardkontext aktiviertes COM-Objekt eine Reihe von Aufrufen von Objekten in anderen Kontexten durchführt. (Weitere Informationen finden Sie unter Kontexte.)
So erzwingen Sie die Aktivierung im Standardkontext
Klicken Sie im Detailbereich des Komponentendienste-Verwaltungstools mit der rechten Maustaste auf die Komponente (die sich im Ordner Komponenten einer beliebigen ausgewählten COM+-Anwendung befindet), die Sie im Standardkontext aktivieren möchten, und klicken Sie dann auf Eigenschaften.
Klicken Sie im Dialogfeld Komponenteneigenschaften auf die Registerkarte Aktivierung .
Aktivieren Sie das Kontrollkästchen Muss im Standardkontext aktiviert sein.
Klicken Sie auf OK.
Hinweis
Wenn Sie eine konfigurierte Komponente im Standardkontext ausführen, aktiviert COM+ keinen der konfigurierten Dienste für diese Komponente. Diese Dienste sind wieder verfügbar, wenn Sie das Kontrollkästchen Muss im Standardkontext aktiviert werdendeaktivieren und anschließend die konfigurierte Komponente in ihrem eigenen Kontext ausführen.
Zugehörige Themen