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

接続プール

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

接続プールは、Scala ドライバーによって維持されるオープンデータベース接続のキャッシュです。アプリケーションはプールから接続を検索し、操作を実行し、接続を再利用のために返します。

接続プールを使用すると、レイテンシの低減とドライバーが新しい接続を作成する回数の最小化につながります。

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

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

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

接続文字列または MongoClientSettings オブジェクトのいずれかを使用して接続プールを構成できます。

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

次の表は、接続プールを構成するための接続文字列オプションについて説明します。

オプション
説明

maxConnecting

ドライバーが同時に確立できる最大接続数。

デフォルト: 2

maxIdleTimeMS

ドライバーが接続を閉じるまで、接続がプール内でアイドル状態でいられる最大ミリ秒数。0 の値は、制限がないことを示します。

デフォルト: 0

maxPoolSize

ドライバーが単一の接続プールで一度に開くことができる接続の最大数。

デフォルト: 100

minPoolSize

ドライバーが単一の接続プールで維持する接続の最小数。この値は maxPoolSize より小さくなければなりません。

デフォルト: 0

waitQueueTimeoutMS (非推奨)

このオプションは非推奨です。代わりにtimeoutMSを使用してください。詳細については、サーバー実行時間の制限を参照してください。

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

デフォルト: 120000

maxLifeTimeMS

接続を開いておくことができる最大ミリ秒数。0 の値は、制限がないことを示します。

デフォルト: 0

詳細については、ConnectionString API ドキュメントを参照してください。

MongoClientSettings.Builder クラスに applyToConnectionPoolSettings() メソッドをチェーンして接続プールを構成します。次の表には、プールを構成するためにチェーンできる ConnectionPoolSettings.Builder メソッドについて説明します。

方式
説明

addConnectionPoolListener()

接続プール イベントのリスナーを追加します。

applyConnectionString()

ConnectionString オブジェクトの設定を適用します。

applySettings()

ConnectionPoolSettings オブジェクトの設定を適用します。

connectionPoolListenerList()

接続プールリスナーのリストを設定します。

maintenanceFrequency()

アイドルな接続と期限切れの接続をマネージドする定期ジョブの頻度を設定します。

maintenanceInitialDelay()

接続プールで最初のメンテナンスジョブを実行する前に待機する期間を設定します。

maxConnectionIdleTime()

プールされた接続の最大アイドル時間を設定します。0 の値は、制限がないことを示します。

maxConnectionLifeTime()

プールされた接続の最大宿命を設定します。0 の値は、制限がないことを示します。

maxConnecting()

プールが同時に確立できる接続の最大数を設定します。

デフォルト: 2

maxSize()

プールで許可される接続の最大数を設定します。

デフォルト: 100

maxWaitTime()

接続可能になるまで待機する最大時間を設定します。

デフォルト: 2

minSize()

ドライバーがプール内で維持する接続の最小数を設定します。

デフォルト: 0

注意

maxSize()minSize() の設定は、プール全体ではなく、配置された各サーバーに個別に適用されます。

詳細については、ConnectionPoolSettings.ビルダ API ドキュメントを参照してください。

次の例では、最大サイズが 50 接続の接続プールを作成する方法を示します。

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

val mongoClient = MongoClient("mongodb://<host>:<port>/?maxPoolSize=50")
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString("<connection string>"))
.applyToConnectionPoolSettings(
(builder: ConnectionPoolSettings.Builder) => builder.maxSize(50))
.build()
val mongoClientWithSettings = MongoClient(settings)

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

このガイドで説明したタイプとメソッドの詳細については、次の API ドキュメントを参照してください。