Поделиться через


Завершение автоматической транзакции путем вызова setComplete

Для эффективного использования автоматических транзакций каждый компонент транзакций должен указать, что он завершил свою работу. После успешного завершения задачи экземпляр объекта должен задать для него согласованные и выполненные флаги true, вызвав метод IObjectContext::SetComplete, который предоставляется как через интерфейс IObjectContext, так и объект ObjectContext.

Наиболее эффективным способом завершения автоматической транзакции является явно деактивация корневого объекта с помощью метода SetComplete. Явно указывая, что корневой объект завершил свою работу, можно уменьшить длину транзакции.

В следующем примере Visual Basic показано, как указать, что транзакционный объект успешно завершил свою работу:

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

Согласованные и выполненные флаги

Управление автоматическими транзакциями в COM+