Freigeben über


IObjectControl::D eactivate-Methode (comsvcs.h)

Ermöglicht es einem COM+-Objekt, die erforderliche Bereinigung durchzuführen, bevor es wiederverwendet oder zerstört wird.

Diese Methode wird von der COM+-Laufzeitumgebung aufgerufen, wenn ein Objekt deaktiviert wird. Führen Sie keine Methodenaufrufe für Objekte in derselben Aktivität aus dieser Methode aus.

Syntax

void Deactivate();

Rückgabewert

Keine

Bemerkungen

Die COM+-Laufzeitumgebung ruft die Deactivate-Methode auf, wenn ein Objekt deaktiviert wird, das die IObjectControl-Schnittstelle unterstützt. Ein Objekt wird deaktiviert, wenn es von einer Methode zurückgibt, in der die Methode mit dem Namen SetComplete oder SetAbort aufgerufen wird, wenn die Transaktion, in der es ausgeführt wurde, committet oder abgebrochen wird, oder wenn der letzte Client, der einen Verweis auf das Objekt enthält, seinen Verweis freigibt.

Wenn die Komponente recycling unterstützt (gibt TRUE von der CanBePooled-Methode zurück), müssen Sie die Deactivate-Methode verwenden, um den Zustand des Objekts auf den Zustand zurückzusetzen, in dem die Activate-Methode erwartet, dass es gefunden wird. Sie können auch die Deactivate-Methode verwenden, um den Kontext des Objekts freizugeben oder andere kontextspezifische Bereinigungen zu durchführen. Selbst wenn ein Objekt das Recycling unterstützt, kann es von Vorteil sein, bestimmte wiederverwendbare Ressourcen in seiner Deactivate-Methode freizugeben. Beispielsweise stellt ODBC eigene Verbindungspools bereit. Es ist effizienter, eine Datenbankverbindung in einem allgemeinen Verbindungspool zu poolen, in dem andere Objekte sie verwenden können, als sie an ein bestimmtes Objekt in einem Objektpool gebunden zu halten.

COM+ verbietet ausdrücklich den Aufruf eines Objekts, das IObjectControl verfügbar macht, nachdem die deactivate-Methode zurückgegeben wurde (wenn sie sich in ihrem Destruktor befindet). Ein solcher Aufruf würde zu einem RPC_E_DISCONNECTED Fehler führen. Wenn z. B. ein Objekt einen Verweis auf sich selbst übergeben hat und dann nach Rückgabe von Deactivate wieder in das Objekt aufruft, tritt ein getrennter Fehler auf.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile comsvcs.h

Weitere Informationen

IObjectControl