Overview
Node.jsドライバーを使用してサーバー操作を実行する場合、操作の各ステージに許容される時間を制限できます。ステージごとのタイムアウトオプションを指定して、サーバーの選択、接続のチェックアウト、サーバー側の実行などのステージを制限します。タイムアウトが経過すると、Node.jsドライバーはタイムアウト例外を発生させます。
警告
timeoutMS および timeoutMode 接続オプションは、Node.js ドライバー v7.8 以降で非推奨になりました。これらのオプションは効果がなく、将来のリリースで削除される予定です。
Node.jsドライバーのバージョン6.11から6.21、および7.0から7.7では、timeoutMS接続オプションが原因で接続プールの同期が解除される可能性があります。この同期解除は操作のタイムアウト後に発生し、他のユーザーのデータが公開される可能性があります。詳細については、バージョン7.8のリリースノートにあるアップグレードの警告を参照してください。
代わりに、このページで説明されているステージごとのタイムアウトオプションを使用してください。
ステージごとのタイムアウト オプション
Node.jsドライバーには、サーバー操作の各ステージに許容される時間を制限するための以下のオプションが用意されています。
serverSelectionTimeoutMS: エラーが発生する前に、ドライバーがサーバー選択をブロックする時間をミリ秒単位で制限します。waitQueueTimeoutMS: サーバーの接続プールから接続をチェックアウトしようとする際にドライバーが費やす時間をミリ秒単位で制限します。socketTimeoutMS: ドライバーがソケットでの送信または受信を試行する時間をミリ秒単位で制限します。maxTimeMS操作がサーバーに到達した後、サーバーがその操作の実行に費やす時間をミリ秒単位で制限します。maxTimeMSは、個々の操作またはカーソルにのみ渡すことができます。
これらのオプションの指定方法(コード例を含む)を学ぶには、「接続オプションの指定」ガイドの「接続タイムアウトオプション」セクションを参照してください。