Overview
このガイドでは、 .NET/ C#ドライバーが接続プールを使用してMongoDBデプロイへの接続を管理する方法と、アプリケーションで接続プール設定を構成する方法について学習できます。
接続プールはとはオープンデータベース接続のキャッシュであり、 .NET/ C#ドライバーによって維持されます。アプリケーションがMongoDBへの接続を要求すると、 .NET/ C#ドライバーはプールからシームレスに接続を取得し、操作を実行し、再利用するためにプールに接続を返します。
接続プールは、アプリケーションのレイテンシと、 .NET/ C#ドライバーによって新しい接続が作成される回数を削減するのに役立ちます。次の図は、MongoClient が接続プールを管理する方法の概要を示しています。
接続プールの構成
次の接続プール設定は、MongoClientオブジェクトまたは接続 URI で指定できます。
設定 | 説明 |
|---|---|
| .NET/C# ドライバーがタイムアウトする前に新しい接続を確立するときに待機する最大時間。 |
| 各プールが同時に確立できる最大接続数。この制限に達した場合、接続が確立されるか、使用中の別の接続がプールに返されるまで、それ以降のリクエストは待機します。 |
| プール内で接続がアイドル状態になる最大時間。接続がこの制限を超えると、.NET/C# ドライバーは接続を閉じてプールから削除します。 |
| 接続をプールできる最大時間。接続がこの制限を超えると、.NET/C# ドライバーは接続を閉じてプールから削除します。 |
| プールが維持する同時接続の最大数。プールの最大サイズに達した場合、接続が利用可能になるまで、それ以降のリクエストは待機します。 |
| プールが維持する同時接続の最小数。ネットワーク エラーにより開いている接続の数がこの値を下回った場合、.NET/C# ドライバーはこの最小値を維持するために新しい接続を作成しようとします。 |
| .NET/C# ドライバーがタイムアウトする前にサーバーからの応答を待つ時間の長さ。 |
| スレッドが接続プールで接続が利用可能になるまで待機し、タイムアウトするまでの時間。 |
次のコードでは、MaxConnectionPoolSize パラメータを使用して最大接続プールサイズが 50 のクライアントを作成します。
var settings = MongoClientSettings.FromConnectionString("<connection URI>"); settings.MaxConnectionPoolSize = 50; var client = new MongoClient(settings);
次のコードでは、前の例と同じ構成のクライアントを作成しますが、接続 URI を使用します。
var settings = MongoClientSettings.FromConnectionString("<hostname>?maxPoolSize=50"); var client = new MongoClient(settings);
詳細情報
接続プールの詳細については、 MongoDB Serverマニュアルの「 接続プールの概要 」を参照してください。
API ドキュメント
このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。