SetComplete を呼び出して自動トランザクションを終了する

自動トランザクションを効果的に使用するには、各トランザクション コンポーネントが作業を完了したことを示す必要があります。 オブジェクト インスタンスがタスクを正常に完了したら、 IObjectContext インターフェイスと ObjectContext オブジェクトの両方を介して公開される IObjectContext::SetComplete メソッドを呼び出して、その一貫性のある完了フラグを True に設定する必要があります。

自動トランザクションを完了する最も効率的な方法は、 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+ での自動トランザクションの管理