Just-in-Time アクティベーション
COM+ Just-in-Time (JIT) アクティベーション サービスを使用すると、アイドル状態のサーバー リソースをより生産的に使用できます。コンポーネントの構成で JIT がアクティブになっている場合、クライアントがオブジェクトへのアクティブな参照を保持していても、COM+ ではそのオブジェクトのインスタンスを非アクティブにできます。次回、クライアントがオブジェクトのメソッドを呼び出すと、COM+ は、クライアントに透過的にジャストインタイムでオブジェクトを再びアクティブにします。**
メモ : |
---|
コンポーネントの構成で JIT がアクティブになっている場合、オブジェクトは最初に作成されたときにアクティブになります。 |
メソッド呼び出しが戻ったときに、COM+ はオブジェクトを非アクティブにしますが、コンテキストはメモリ内に残ります。非アクティブにされたオブジェクトは、高コストのデータ ストアに対するロックを含め、すべてのリソースを解放します。
メモ : |
---|
パフォーマンスの観点から、ServicedComponent の派生クラスにファイナライザを実装せずに、このロジックを DisposeObject メソッドに配置してください。System.EnterpriseServices.ServicedComponent プロキシにはファイナライザがありますが、リフレクションを使用して、System.EnterpriseServices.ServicedComponent の派生クラスのファイナライザを呼び出します。 |
JIT アクティベーションを有効するには、JustInTimeActivationAttribute 属性を System.EnterpriseServices.ServicedComponent から派生するクラスに適用します。また、メソッド呼び出しが戻った時点でオブジェクトを非アクティブするには、オブジェクト done ビットを設定する必要があります。トランザクション コンポーネントについては、AutoCompleteAttribute をクラスに適用するか、ContextUtil.SetComplete または ContextUtil.SetAbort を呼び出すことができます。非トランザクション コンポーネントについては、ContextUtil.DeactivateOnReturn を呼び出します。
メモ : |
---|
自動 JIT トランザクションは、JIT アクティベーションが必要です。したがって、自動トランザクションに対応するようにクラスが構成されると、暗黙的に有効になります。 |
JIT アクティベーションを有効にする方法の例については、「方法 : JIT アクティベーションを有効にする」を参照してください。
関連項目
タスク
参照
JustInTimeActivationAttribute
System.EnterpriseServices Namespace
概念
Copyright © 2007 by Microsoft Corporation.All rights reserved.