Compartilhar via


Encerrando uma transação automática chamando SetComplete

Para usar transações automáticas de forma eficaz, cada componente transacional deve indicar que concluiu seu trabalho. Quando uma instância de objeto conclui sua tarefa com êxito, ela deve definir seus sinalizadores consistentes e concluídos como True chamando o método IObjectContext::SetComplete, que é exposto por meio da interface IObjectContext e do objeto ObjectContext.

A maneira mais eficiente de concluir uma transação automática é desativar explicitamente o objeto raiz usando o método SetComplete . Ao indicar explicitamente que um objeto raiz concluiu seu trabalho, você pode reduzir o comprimento da transação.

O exemplo do Visual Basic a seguir mostra como indicar que um objeto transacional concluiu seu trabalho com êxito:

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

Sinalizadores consistentes e concluídos

Gerenciando transações automáticas no COM+