sql >> データベース >  >> NoSQL >> MongoDB

Mongoでのソケットタイムアウト例外

    これらのタイムアウトは、非アクティブな期間の後に発生しましたか?アイドル状態が長すぎると、接続プールが古くなった可能性があります。

    もしそうなら、これを行うには2つの方法があります:

    1. ソケットタイムアウト例外をキャッチすると、即時リクエストで新しい接続プールにアクセスできるようになります。 (これは、接続オブジェクトの自動再接続オプションがtrueのままになっている場合です。これがデフォルトです。)

    2. カスタムキープアライブを使用して、同じ接続プールを使用してmongodサーバーに定期的にpingを実行し、プールが最新の状態に保たれるようにします。

    オプション1は簡単に実装できますが、デフォルトのソケットタイムアウトは約30秒で、かなり過剰です。この設定は必要に応じて変更できます。

    オプション2は、スレッド化を伴うちょっとしたハックです。




    1. データソースの自動構成に失敗しました:'spring.datasource.url'が指定されていません

    2. node-mongodb-nativeMongoClientが予期せず接続を閉じました

    3. MongoDb合計クエリ

    4. mongodbに厳密なJSONを出力させる