AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

接続プール

このガイドでは、 Javaドライバーが接続プールを使用してMongoDBデプロイへの接続を管理する方法と、アプリケーションで接続プール設定を構成する方法について学習できます。

接続プールはとはオープンデータベース接続のキャッシュであり、 Javaドライバーによって維持されます。アプリケーションがMongoDBへの接続を要求すると、 Javaドライバーはプールからシームレスに接続を取得し、操作を実行し、再利用するためにプールに接続を返します。

接続プールは、アプリケーションのレイテンシとJavaドライバーによって新しい接続が作成される回数を削減するのに役立ちます。

すべてのMongoClientインスタンスには、MongoDB トポロジー内の各サーバーに対する接続プールが組み込まれています。 接続プールはオンデマンドでソケットを開き、マルチスレッド アプリケーションで同時 MongoDB 操作をサポートします。

maxPoolSize オプションは各接続プールの最大サイズを設定します。デフォルトは 100 です。サーバーへの使用中の接続数が maxPoolSize の値に達した場合、そのサーバーへの次のリクエストは、接続が利用可能になるまで待機します。

各 MongoClientインスタンスは、サーバーの状態を監視するためにMongoDBトポロジー内のサーバーごとにさらに 2 つのソケットを開きます。

接続プールの設定を指定するには、接続文字列を使用するか、MongoClientSettingsオブジェクトを MongoClients.create() メソッドに渡すことで指定できます。

対応する構文を確認するには、Connection String タブまたは MongoClientSettingsタブを選択します。

以下は、接続プールを構成するために使用できる接続文字列設定です。

設定
説明

maxConnecting

プールが同時に確立できる接続の最大数。

デフォルト: 2

maxIdleTimeMS

このオプションはすべてのドライバーでサポートされているわけではありません。この値は、アプリケーションの予想されるアイドル期間よりも高く、ファイアウォールまたはプロキシの接続タイムアウトよりは低く設定して、予期しない切断を防ぐために、

デフォルト: 0

maxPoolSize

プールで開始されている接続の最大数。接続プールで maxPoolSize の接続が開いているときに操作に新しい接続が必要な場合、新しい操作は新しい接続が開くことを待機します。この待機時間を制限するには、単一のタイムアウト設定を使用します。詳細については、 「サーバー実行時間の制限」 のガイドを参照してください。

デフォルト: 100

minPoolSize

プールで開始されている接続の最小数。minPoolSize の値は maxPoolSize の値より小さくなければなりません。

デフォルト: 0

waitQueueTimeoutMS (非推奨)

このオプションは非推奨です。このタイムアウトは、代わりにクライアントレベルのタイムアウトを設定することで構成できます。

接続が利用可能になるまで操作が待機できる最大待機時間(ミリ秒)。値が 0 の場合、制限がないことを意味します。

デフォルト: 120000 ( 120秒)

maxLifeTimeMS

接続を閉じる前に、Java ドライバーがプールされた接続を引き続き使用する最大時間をミリ秒単位で指定します。 値が0の場合、ドライバーがプールされた接続を開いたままにできる時間に上限がないことを示します。

デフォルト: 0

次のコードでは、最大接続プールサイズが 50 のクライアントを作成します。

ConnectionString connectionString = "mongodb://<host>:<port>/?maxPoolSize=50"MongoClient mongoClient = MongoClients.create(connectionString)

これらのパラメーターの詳細については、ConnectionString APIドキュメント を参照してください。

接続プールの使用の詳細については、サーバー マニュアルの 接続プール に関するドキュメントを参照してください。