Erzwingen der Aktivierung im Standardkontext

Eine konfigurierte COM-Komponente wird in der Regel 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 in der Regel im Standardkontext aktiviert.

Das Aktivieren einer COM-Komponente im Standardkontext bietet drei wesentliche Leistungsvorteile:

  • Sie speichern Systemressourcen, indem Sie die Anzahl der erstellten Kontexte begrenzen.
  • Sie erhöhen die Leistung, indem Sie die Anzahl kontextübergreifender Aufrufe einschränken. Da Aufrufe über Kontexte hinweg gemarshallt werden müssen, ist es viel schneller, wenn ein im Standardkontext aktiviertes COM-Objekt Aufrufe an andere Objekte im Standardkontext vorstellt. Die Leistung in diesem Fall (von Aufrufen innerhalb desselben Kontexts) ähnelt der Leistung des Aufrufens einer Unterroutine.
  • Sie können ältere COM-Anwendungen in COM+ importieren und ohne Probleme ausführen. Beispielsweise haben Sie möglicherweise mehrere ältere COM-Anwendungen implementiert, unter der Annahme, dass es zulässig war, Objektverweise innerhalb eines Apartment 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 Importieren ausführen, wenn Sie das Verwaltungstool Komponentendienste verwenden, um alle Klassen in der Anwendung als Muss im Standardkontext aktiviert werden zu markieren.

Der Hauptnachteil beim Aktivieren einer konfigurierten Komponente im Standardkontext ist, dass COM+ keine der konfigurierten Dienste der Komponente bereitstellt. Zwischen verbesserter Leistung und der Möglichkeit, COM+-Dienste zu verwenden, besteht ein Unterschied.

Angenommen, eine COM-Komponente erfordert keine COM+-Dienste (z. B. Transaktionen, Just-in-Time-Aktivierung, Ereignisse,Komponenten in der Warteschlange, Synchronisierungoder Objektpooling)und dass die Komponente eine Reihe von Aufrufen an andere COM-Komponenten vornimmt, die im Standardkontext aktiviert werden können. In diesem Fall ist es eine gute Idee, die aufrufende Komponente im Standardkontext zu aktivieren.

Wenn die COM-Komponente COM+-Dienste erfordert, kann sie im Standardkontext nicht als Muss aktiviert werden gekennzeichnet 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 vornimmt. (Weitere Informationen finden Sie unter Kontexte.)

So erzwingen Sie die Aktivierung im Standardkontext

  1. Klicken Sie im Detailbereich des Component Services-Verwaltungstools mit der rechten Maustaste auf die Komponente (im Ordner Komponenten einer beliebigen ausgewählten COM+-Anwendung), die Sie im Standardkontext aktivieren möchten, und klicken Sie dann auf Eigenschaften.

  2. Klicken Sie im Dialogfeld Komponenteneigenschaften auf die Registerkarte Aktivierung.

  3. Aktivieren Sie das Kontrollkästchen Muss im Standardkontext aktiviert werden.

  4. Klicken Sie auf OK.

Hinweis

Wenn Sie eine konfigurierte Komponente im Standardkontext ausführen, aktiviert COM+ keine der konfigurierten Dienste für diese Komponente. Diese Dienste sind wieder verfügbar, wenn Sie das Kontrollkästchen Muss im Standardkontext aktiviert werden deaktivieren und anschließend die konfigurierte Komponente in ihrem eigenen Kontext ausführen.

COM+ Just-in-Time-Aktivierungskonzepte

Erzwingen der Aktivierung im Kontext des Aufrufers