Festlegen der Flags Consistent und Done

Sie legen die Flags Consistent und Done fest, indem Sie Methoden der Schnittstellen IObjectContext oder IContextState aufrufen. Die von diesen beiden Schnittstellen verwendeten Strategien unterscheiden sich erheblich. IObjectContext hat vier Methoden, die die Consistent- und Done-Flags in eindeutigen Kombinationen miteinander binden, während IContextState zwei Methoden hat, die Ihnen die Möglichkeit bieten, jedes Flag unabhängig voneinander festzulegen. Die Methoden von IObjectContext sind auch über das ObjectContext-Objekt zugänglich.

Zur unabhängigen Steuerung der einzelnen Flags stellt IContextState eine Methode zur Verfügung, mit der Sie das Consistent-Flag auf Wahr oder Falsch festlegen, und eine Methode, mit der Sie das Done-Flag auf Wahr oder Falsch festlegen. Diese Methoden sind SetMyTransactionVote bzw. SetDeactivateOnReturn. Die Schnittstelle IContextState enthält auch Methoden, um den aktuellen Wert jedes Flags abzufragen.

Wenn Sie den Wert der Methode SetMyTransactionVote auf TxCommit festlegen, prüft COM+ das Vorhandensein einer Transaktion. Wenn COM+ keine Transaktion erkennt, erzeugt es einen Fehler, den Sie in einer Log-Datei festhalten können. Nehmen wir zum Beispiel an, dass jemand versehentlich das Transaktionsattribut Ihrer Komponente auf Not Supported konfiguriert, Sie aber erwartet haben, dass es auf Required festgelegt ist. Indem Sie SetMyTransactionVote = TxCommit festlegen, können Sie den Konflikt erkennen und Maßnahmen ergreifen.

Die folgende Tabelle beschreibt die Methodenaufrufe, mit denen Sie die Flags Consistent und Done festlegen können.

Consistent-Flag Done-Flag IObjectContext-Methode IContextState-Methoden
Richtig
Falsch
EnableCommit
SetMyTransactionVote txVote = TxCommit
SetDeactivateOnReturn bDeactivate = False
False
False
DisableCommit
SetMyTransactionVote txVote = TxAbort
SetDeactivateOnReturn bDeactivate = False
False
True
SetAbort
SetMyTransactionVote txVote = TxAbort
SetDeactivateOnReturn bDeactivate = True
True
True
SetComplete
SetMyTransactionVote txVote = TxCommit
SetDeactivateOnReturn bDeactivate = True

Hinweis

Die Eigenschaft auto-done, die auf Methodenebene festgelegt wird, kann sich darauf auswirken, wie die Consistent- und Done-Flags festgelegt werden. Weitere Informationen über die Eigenschaft auto-done finden Sie unter Auto-Done für eine Methode aktivieren und Done-Bit festlegen.