接続アラートは通常、MongoDB プロセスへの許可される接続の最大数を超えたときに発生します。 制限を超えると、オープンな接続の数が制限を下回るまで、新しい接続を開くことができなくなります。
アラート条件
プロジェクト レベルのアラート設定ページで次のアラート条件を構成して、trigger アラートを起動できます。
Connections ホストへのアクティブな接続数が指定された平均を満たす場合に発生します。
Connections % of configured limit ホストへのオープン接続数が指定されたパーセンテージを超えると発生します。
一般的な Triggers
Atlas クラスターの接続制限を超えるには、さまざまな理由で発生する可能性があります。Atlas 階層によって、接続制限が異なります。
例、 無料クラスター(以前は M0 と呼ばれていました)と Flex クラスターは 500 接続に制限されています。M10 クラスターは 1500 接続に制限されています。クラスター階層が大きいほど、接続制限も高くなります。
データベースアクセス アプリケーションによっては、 接続プーリング の実装方法が異なるため、アプリケーションが常に維持するオープンな接続の数に影響します。
当面の問題の修正
無料クラスターと Flex クラスター
接続アラート条件を解決するには、以下の手順に従います。
現在 Atlas クラスターに接続しているアプリケーションを再起動します。アプリケーションを再起動すると、アプリケーションによって開かれた既存の接続がすべて終了され、Atlas クラスターは通常の操作を再開できるようになります。
プロジェクト内のすべてのIP アクセス リストエントリを除きます。無料クラスターと {Flex-Clusters} は、アクティブな接続にアクセス リストを強制するプロキシを介して接続します。アクセス リスト エントリをクリアすると、アクティブなアプリケーションサーバーによるすべての接続がクリアされます。
M10+ クラスター
サイズがM10以上の Atlas クラスターは、プライマリ フェイルオーバーのテストオプションを使用できます。 プライマリ フェイルオーバーのテスト 手順では、現在のプライマリ ノードを降格し、選挙をトリガーして、プライマリ ノードへのすべての接続を切断します。
注意
アプリケーションが セカンダリ ノードのみに接続する場合は、 フェイルオーバーのテスト 手順を複数回実行して、該当するセカンダリ ノードがレプリカセット内で位置をローテーションし、接続を切断する必要がある場合があります。
通常、フェイルオーバーのテストが推奨されますが、別の解決策として、Atlas クラスターに現在接続しているアプリケーションを再起動することです。 アプリケーションを再起動すると、既存のすべての接続が終了され、Atlas クラスターは通常の操作を再開できるようになります。
長期的な解決策の実装
接続アラートは通常、より大きな問題の予期されていません。 上記で概説した戦略のいずれかを使用すると、当面の問題は修正されますが、永続的な解決策には通常、次のいずれかが必要です。
データベース アプリケーションでエラーが発生した接続コードを調べます。 接続が開かれるが閉じられない状況では、古い接続が蓄積され、最終的に接続制限を超える可能性があります。 さらに、何らかの形式の接続プーリングを実装する必要がある場合があります。
ユーザー ベースが現在のクラスター階層に対して大きすぎる場合は、より大きな Atlasクラスター階層にアップグレードし、より多くの接続数を生成します。
進捗状況の監視
クラスターへの接続の合計数をモニタリングするには、 Connectionsチャートを表示します。
接続をモニターして、現在の接続制限が十分かどうかを判断します。必要に応じて、クラスター階層を増やす。
詳細については、 「 クラスター メトリクスの表示 」を参照してください。