LifetimeServices クラス
アセンブリ: mscorlib (mscorlib.dll 内)
構文
解説配布されたガベージ コレクションは、サーバー アプリケーションの有効期間を制御し、有効期限が切れた場合にいつサーバー アプリケーションを削除するかを制御する役割を果たします。従来、配布されたガベージ コレクションは、制御のために参照カウントと ping を使用していました。この方法は、オブジェクトごとのクライアント数が少ない場合には機能しますが、千単位のクライアント数の場合にはうまく機能しません。有効期間サービスは、従来の配布されたガベージ コレクタの機能を実行できます。さらに、クライアント数が増加した場合にも対応できます。
有効期間サービスは、リモートの各アクティブ化オブジェクトにリースを関連付けます。リースの有効期限が切れると、オブジェクトが削除されます。
メモ |
|---|
| このクラスはリンク確認要求を行います。直前の呼び出し元にインフラストラクチャ アクセス許可がない場合、SecurityException がスローされます。詳細については、「リンク確認要求」を参照してください。 |
使用例Imports System Imports System.Runtime.Remoting Imports System.Runtime.Remoting.Channels Imports System.Runtime.Remoting.Channels.Http Imports System.Runtime.Remoting.Lifetime Public Class Server Public Shared Sub Main() LifetimeServices.LeaseTime = TimeSpan.FromSeconds(5) LifetimeServices.LeaseManagerPollTime = TimeSpan.FromSeconds(3) LifetimeServices.RenewOnCallTime = TimeSpan.FromSeconds(2) LifetimeServices.SponsorshipTimeout = TimeSpan.FromSeconds(1) ChannelServices.RegisterChannel(New HttpChannel(8080)) RemotingConfiguration.RegisterActivatedServiceType(GetType(ClientActivatedType)) Console.WriteLine("The server is listening. Press Enter to exit....") Console.ReadLine() Console.WriteLine("GC'ing.") GC.Collect() GC.WaitForPendingFinalizers() End Sub 'Main End Class 'Server
using System; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Http; using System.Runtime.Remoting.Lifetime; public class Server { public static void Main() { LifetimeServices.LeaseTime = TimeSpan.FromSeconds(5); LifetimeServices.LeaseManagerPollTime = TimeSpan.FromSeconds(3); LifetimeServices.RenewOnCallTime = TimeSpan.FromSeconds(2); LifetimeServices.SponsorshipTimeout = TimeSpan.FromSeconds(1); ChannelServices.RegisterChannel(new HttpChannel(8080)); RemotingConfiguration.RegisterActivatedServiceType(typeof(ClientActivatedType)); Console.WriteLine("The server is listening. Press Enter to exit...."); Console.ReadLine(); Console.WriteLine("GC'ing."); GC.Collect(); GC.WaitForPendingFinalizers(); } }
#using <system.dll> #using <system.runtime.remoting.dll> #using "service.dll" using namespace System; using namespace System::Runtime::Remoting; using namespace System::Runtime::Remoting::Channels; using namespace System::Runtime::Remoting::Channels::Http; using namespace System::Runtime::Remoting::Lifetime; int main() { LifetimeServices::LeaseTime = TimeSpan::FromSeconds( 5 ); LifetimeServices::LeaseManagerPollTime = TimeSpan::FromSeconds( 3 ); LifetimeServices::RenewOnCallTime = TimeSpan::FromSeconds( 2 ); LifetimeServices::SponsorshipTimeout = TimeSpan::FromSeconds( 1 ); ChannelServices::RegisterChannel( gcnew HttpChannel( 8080 ) ); RemotingConfiguration::RegisterActivatedServiceType( ClientActivatedType::typeid ); Console::WriteLine( "The server is listening. Press Enter to exit...." ); Console::ReadLine(); Console::WriteLine( "GC'ing." ); GC::Collect(); GC::WaitForPendingFinalizers(); return 0; }
.NET Framework のセキュリティ- SecurityPermission (インフラストラクチャ コードを操作するために必要なアクセス許可)。要求値 : SecurityAction.LinkDemand; アクセス許可値 : SecurityPermissionFlag.Infrastructure
継承階層System.Runtime.Remoting.Lifetime.LifetimeServices
スレッド セーフ
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照LifetimeServices コンストラクタ
アセンブリ: mscorlib (mscorlib.dll 内)
構文
プラットフォームWindows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照LifetimeServices プロパティ
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| LeaseManagerPollTime | 有効期限が切れたリースをクリーンアップするリース マネージャの、各アクティベーション間の時間間隔を取得または設定します。 |
| LeaseTime | AppDomain の初期リース期間を取得または設定します。 |
| RenewOnCallTime | サーバー オブジェクトで呼び出しがあるたびに、リースを延長する時間を取得または設定します。 |
| SponsorshipTimeout | リース マネージャが、スポンサがリースの更新時間を返すまで待機する時間を取得または設定します。 |
参照LifetimeServices メソッド
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
| GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
| GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
| ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
参照LifetimeServices メンバ
LifetimeServices データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ| 名前 | 説明 | |
|---|---|---|
| LifetimeServices |
パブリック プロパティ| 名前 | 説明 | |
|---|---|---|
| LeaseManagerPollTime | 有効期限が切れたリースをクリーンアップするリース マネージャの、各アクティベーション間の時間間隔を取得または設定します。 |
| LeaseTime | AppDomain の初期リース期間を取得または設定します。 |
| RenewOnCallTime | サーバー オブジェクトで呼び出しがあるたびに、リースを延長する時間を取得または設定します。 |
| SponsorshipTimeout | リース マネージャが、スポンサがリースの更新時間を返すまで待機する時間を取得または設定します。 |
パブリック メソッド| 名前 | 説明 | |
|---|---|---|
| Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
| GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
| GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
| ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
| ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
参照- LifetimeServicesのページへのリンク
.gif)