Freigeben über


IObjectContext::D isableCommit-Methode (comsvcs.h)

Deklariert, dass sich die Transaktionsupdates des Objekts in einem inkonsistenten Zustand befinden und nicht im aktuellen Zustand committet werden können.

Syntax

HRESULT DisableCommit();

Rückgabewert

Diese Methode kann die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen. Die Transaktionsupdates des Objekts können erst dann committet werden, wenn das Objekt entweder EnableCommit oder SetComplete aufruft.
E_UNEXPECTED
Ein unerwarteter Fehler ist aufgetreten. Dies kann passieren, wenn ein Objekt seinen IObjectContext-Zeiger an ein anderes Objekt übergibt und das andere Objekt DisableCommit mit diesem Zeiger aufruft. Ein IObjectContext-Zeiger ist außerhalb des Kontexts des Objekts, das ihn ursprünglich abgerufen hat, ungültig.
CONTEXT_E_NOCONTEXT
Dem aktuellen Objekt ist kein Kontext zugeordnet. Dies liegt wahrscheinlich daran, dass es nicht mit einer der COM+ CreateInstance-Methoden erstellt wurde.

Hinweise

Sie können die DisableCommit-Methode verwenden, um zu verhindern, dass eine Transaktion vorzeitig zwischen Methodenaufrufen in einem zustandsbehafteten Objekt committiert wird. Wenn ein Objekt DisableCommit aufruft, gibt es an, dass seine Arbeit inkonsistent ist und dass es seine Arbeit erst abschließen kann, wenn es weitere Methodenaufrufe vom Client erhält. Es gibt auch an, dass es seinen Zustand beibehalten muss, um diese Arbeit auszuführen. Dadurch wird verhindert, dass COM+ das Objekt deaktiviert und seine Ressourcen bei der Rückgabe von einem Methodenaufruf zurückgibt. Wenn ein Objekt DisableCommit aufgerufen hat, wenn ein Client versucht, die Transaktion zu committen, bevor das Objekt EnableCommit oder SetComplete aufgerufen hat, wird die Transaktion abgebrochen.

Angenommen, Sie verfügen über eine GeneralLedger-Komponente, die eine Datenbank aktualisiert. Ein Client führt mehrere Aufrufe an ein GeneralLedger-Objekt aus, um Einträge in verschiedenen Konten zu posten. Es gibt eine Integritätseinschränkung, die besagt, dass die Abbuchungen dem Guthaben entsprechen müssen, wenn der endgültige Methodenaufruf zurückgegeben wird, oder die Transaktion muss abgebrochen werden. Das GeneralLedger-Objekt verfügt über eine Initialisierungsmethode, bei der der Client ihn über die Reihenfolge der Aufrufe informiert, die der Client ausführen wird, und das GeneralLedger-Objekt ruft DisableCommit auf. Das Objekt behält seinen Zustand zwischen den Aufrufen bei, sodass das Objekt nach dem letzten Aufruf in der Sequenz sicherstellen kann, dass die Integritätseinschränkung erfüllt ist, bevor seine Arbeit committet werden kann.

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

IObjectContext