Condividi tramite


Impostazione dei flag coerenti e fatti

I flag coerenti e eseguiti vengono impostati richiamando i metodi nelle interfacce IObjectContext o IContextState. Le strategie usate da queste due interfacce differiscono in modo significativo. IObjectContext include quattro metodi che associano i flag coerenti e eseguiti insieme in combinazioni univoche, mentre IContextState dispone di due metodi che consentono di impostare ogni flag in modo indipendente. I metodi di IObjectContext vengono esposti anche tramite l'oggetto ObjectContext .

Per il controllo indipendente di ogni flag, IContextState fornisce un metodo per impostare il flag coerente su True o False e un metodo per impostare il flag completato su True o False. Questi metodi sono SetMyTransactionVote e SetDeactivateOnReturn, rispettivamente. L'interfaccia IContextState include anche metodi per recuperare il valore corrente di ogni flag.

Quando si imposta il valore del metodo SetMyTransactionVote su TxCommit, COM+ verifica la presenza di una transazione. Se COM+ non rileva una transazione, genera un errore che è possibile acquisire in un file di log. Si supponga, ad esempio, che un utente configuri accidentalmente l'attributo della transazione del componente su Non supportato, ma che sia impostato su Obbligatorio. Impostando SetMyTransactionVote = TxCommit, è possibile identificare il conflitto e intervenire.

Nella tabella seguente vengono descritte le chiamate al metodo che possono essere usate per impostare i flag coerenti e eseguiti.

Flag coerente Flag completato Metodo IObjectContext Metodi IContextState
Vero
False
EnableCommit
SetMyTransactionVote txVote = TxCommit
SetDeactivateOnReturn bDeactivate = False
Falso
Falso
DisableCommit
SetMyTransactionVote txVote = TxAbort
SetDeactivateOnReturn bDeactivate = False
Falso
Vero
SetAbort
SetMyTransactionVote txVote = TxAbort
SetDeactivateOnReturn bDeactivate = True
Vero
Vero
SetComplete
SetMyTransactionVote txVote = TxCommit
SetDeactivateOnReturn bDeactivate = True

Nota

La proprietà eseguita automaticamente, impostata a livello di metodo, può influire sul modo in cui vengono impostati i flag coerenti e eseguiti. Per altre informazioni sulla proprietà completata automaticamente, vedere Abilitazione della fine automatica per un metodo e impostazione del bit completato.