メソッドの auto-done の有効化

COM+ の JIT アクティベーションが有効になっているコンポーネントによって公開されたすべてのメソッドに対して、auto-done 機能を有効にすることができます。 JIT アクティベーションが無効になっている場合、auto-done は使用できません。

この機能は、メソッドの予期される動作を変更する可能性があるため、auto-done を利用するために意図的に作成されたメソッドに対してのみ auto-done を有効にする必要があります。

auto-done を有効にすると、そのメソッドの JIT アクティベーションと自動トランザクションの両方の既定の動作が変更されます。 この機能を使用すると、整合性と完了を明示的に宣言する必要性が解消される可能性があるためです。 これは、auto-done が有効になっているときに HRESULT を返すだけで実行できます。 基本的に、auto-done を有効にしたら、次の操作を行うよう COM+ に指示します。

  • このメソッドが呼び出されるたびにオブジェクトが実行されるコンテキストでは、既定で完了ビットを True に設定します。
  • メソッドによって返される HRESULT を調べます。SUCCESS または FAILURE を示す場合、それに応じて整合性ビットを設定します。 これにより、メソッドの内部的な動作に応じて、IObjectContext::SetComplete または IObjectContext::SetAbort が自動的に呼び出される可能性があります。

メソッドの auto-done を有効にするには

  1. コンポーネント サービス管理ツールの詳細ウィンドウで、構成するメソッドを右クリックし、[プロパティ] をクリックします。

  2. メソッド プロパティ ダイアログ ボックスで、[全般] タブをクリックします。

  3. auto-done を有効にするには、[このメソッドが値を返したときにこのオブジェクトを自動的に非アクティブ化する] チェック ボックスをオンにします。 チェック ボックスが使用不可の場合、まずコンポーネントの JIT アクティベーションを有効にする必要があります。 (詳しい手順については、「コンポーネント の JIT アクティベーションの有効化」を参照)。

  4. OK をクリックします。

COM+ Just-In-Time アクティベーションの概念

コンポーネントの JIT アクティベーションの有効化

完了ビットの設定