IIS を使用すると、アプリケーションを IIS から分離されている DLLHost.exe プロセスでホストされるアウトプロセス (OOP) で実行できます。プロセスの再利用では、COM+ によって構築されたインフラ構造をてこ入れして、これらの OOP アプリケーションのプロセス再利用を実行します。特に、IIS は DLLHost.exe プロセスによってホストされるアプリケーションを再利用することを COM+ に示す手段として、COM+ 内の RecycleProcess() メソッドに依存しています。アプリケーションを再利用するタイミングの詳細については、「アプリケーションの問題」を参照してください。
コードが適切に記述されてないと、時間の経過とともに、ループに何かがスタックして CPU に不必要な負荷をかけてアプリケーションのパフォーマンスが低下する場合がしばしばあります。これらのアプリケーションが原因で、アプリケーションが不必要なメモリをオペレーティング システムに戻さないメモリ リークが発生する可能性もあります。これらのアプリケーションによりサーバーに遅延が発生し、サーバーを再起動することが必要になります。プロセス再利用は、これらの問題を解決するために作成されました。
プロセスの再利用の機能
プロセス再利用は、構成された再利用イベントが発生したときにアプリケーションまたはアプリケーション プールを再利用することによって機能します。OOP アプリケーションを再利用する方法は簡単です。IIS が COM+ RecycleProcess() メソッドを呼び出してアプリケーションの DLLhost.exe ホスト プロセスを再利用するよう要求します。再利用イベントが発生したら、次のイベントが発生します。
- 新しいプロセスが作成されて、再利用されているアプリケーションの新しいアプリケーション要求をサービスします。
- 再利用されているプロセスに古いアプリケーション要求の処理を完了する時間が与えられます。時間間隔は、ShutdownTimeLimit メタベース キーを使用して構成されます。
- ShutdownTimeLimit に達し、古いプロセスがシャットダウンしない場合は、IIS によって古いプロセスが終了されます。
COM+ の RecycleProcess の詳細については、COM+ (Component Services) Platform SDK で、キーワード "RecycleProcess" を検索してください。
アプリケーションは、3 つのうちの 1 つの方法で構成できます。IIS 5.0 では、これらのオプションを説明するために "分離レベル" という用語を導入しました。 分離レベルは、低、中、高の 3 つです。アプリケーションは、IIS スナップインを使用して [ホーム ディレクトリ] プロパティ シート上に構成されます。
- 低 (IIS) アプリケーションは、プライマリ IIS プロセスのインプロセスとも呼ばれる inetinfo.exe で実行できます。完全にテストされるまで IIS プロセスでアプリケーションを実行しないでください。このプロセス内で実行するアプリケーションがクラッシュした場合は、IIS とインプロセスで実行するその他のアプリケーションもクラッシュします。インプロセスで実行中のアプリケーションは、再利用されません。
- 中 (プール) プールされたアプリケーションは OOP で実行され、共通 DLLHost.exe プロセスによってホストされます。プロセス再利用は、メタベースの W3SVC レベルのすべてのプールされたアプリケーション用に構成され、プールされたアプリケーションはすべて一緒に再利用されます。
- 高 (分離) 分離されたアプリケーションは、OOP で実行され、各アプリケーションは単一の DLLHost.exe プロセスによってホストされます。分離されたアプリケーションは、ほかのアプリケーションとは別に再利用されます。プロセス再利用は、分離されたアプリケーションが存在するメタベースのどのレベルでも構成できます。
プロセス再利用が構成できるメタベースのレベルについては、「レベルと継承」で説明しています。プロセス再利用の構成については、「プロセス再利用イベントを構成する」を参照してください。インプロセスまたはアウトプロセスでアプリケーションを実行することに関する詳細については、「アプリケーションについて」を参照してください。
再利用イベントを発生させるように構成できるイベントは 3 つあります。3 つのイベントは同時にアクティブにすることができます。構成できるイベントは次のとおりです。
プロセス再利用イベントの要約
次に示すのは、プロセス再利用イベントを発生させるよう構成できるメタベース キー名です。
- Time Created
アプリケーションは、設定した時間の間実行した後に再利用されます。このプロパティは、PeriodicRestartTime メタベース キーを使用して構成できます。
- Number of Requests
アプリケーションは、設定した数の要求を受信した後に再利用されます。このプロパティは、PeriodicRestartRequests メタベース キーを使用して構成できます。
- Scheduled Time
アプリケーションは、設定した時刻に再利用されます。このプロパティは、PeriodicRestartSchedule メタベース キーを使用して構成できます。
発生したイベントについて
再利用の発生に複数のイベントが使用されると、最初に到達したイベントしきい値により IIS がアプリケーションの DLLhost.exe プロセスを再利用します。PeriodicRestartTime および PeriodicRestartRequests イベントでは、ゼロからメタベース キー内に設定されている値までカウントする内部タイマが使用されます。カウンタがメタベースキー内に設定されている値に達したら、プロセスが再利用され、内部カウンタがゼロに戻ります。また、PeriodicRestartTime および PeriodicRestartRequests 内部カウンタは、次のように相互に影響します。
- PeriodicRestartTime イベントが発生した場合 : プロセスが再利用され、PeriodicRestartTime および PeriodicRestartRequests 内部タイマがゼロにリセットされます。
- PeriodicRestartRequests イベントが発生した場合 : プロセスが再利用され、PeriodicRestartTime および PeriodicRestartRequests 内部タイマがゼロにリセットされます。
- PeriodicRestartSchedule イベントが発生した場合 : プロセスが再利用され、PeriodicRestartTime および PeriodicRestartRequests 内部タイマがゼロにリセットされます。PeriodicRestartSchedule イベントは、時計時間に基づいていてリセットされません。ほかの 2 つのイベントに影響されます。
重要 内部タイマはメタベースから読み取りのみを行います。メタベース値をリセットすることはありません。内部タイマと既定のメタベース キー パラメータを混同しないでください。
注 PeriodicRestartTime および PeriodicRestartRequests の既定のメタベース キー パラメータはゼロであるため、これらの機能は無効になっています。PeriodicRestartSchedule イベントは、既定では定義されません。「レベルと継承」では、プロセス再利用イベントに関連付けられているメタベース キーについて詳細に説明しています。
プロセス再利用イベントの構成については、「再利用イベントを構成する」を参照してください。構成レベルおよび継承については、「レベルと継承」を参照してください。
次のリソースで関連情報が提供されています。
- 「アプリケーションについて」 アプリケーションに関する概念、開始点、およびアプリケーションを実行できる異なるプロセスについて説明しています。
- 「アプリケーションを分離する」 アプリケーションを異なるプロセスで実行するよう構成する方法を手順を追って説明しています。
© 1997-2001 Microsoft Corporation.All rights reserved.