Share via


Terminazione di una transazione automatica chiamando SetComplete

Per usare le transazioni automatiche in modo efficace, ogni componente transazionale deve indicare che ha completato il proprio lavoro. Quando un'istanza dell'oggetto completa correttamente l'attività, deve impostare i flag coerenti ed eseguiti su True chiamando il metodo IObjectContext::SetComplete, che viene esposto tramite l'interfaccia IObjectContext e l'oggetto ObjectContext.

Il modo più efficiente per completare una transazione automatica consiste nel disattivare in modo esplicito l'oggetto radice usando il metodo SetComplete. Indicando in modo esplicito che un oggetto radice ha completato il lavoro, è possibile ridurre la lunghezza della transazione.

Nell'esempio di Visual Basic seguente viene illustrato come indicare che un oggetto transazionale ha completato correttamente il lavoro:

Sub MyObjMethod1()
  Dim ObjCtx As ObjectContext
  Dim InteriorObj1 As Cinterior  ' Cinterior is a user-defined object.

  Set ObjCtx = GetObjectContext()
  Set InteriorObj1 = CreateObject ("MyDll.Cinterior")
  InteriorObj1.Method1
  ' If the call completed successfully, then...
  objCtx.SetComplete
End Sub

Flag coerenti e fatti

Gestione delle transazioni automatiche in COM+