2016-11-04 19 views
1

mongoDBがCxxドライバから実行されているかどうかを確認できるかどうかは疑問です。私が使っているバージョンは3.0.1です。cxxドライバからmongoDBが実行されているかどうか確認できますか?

私はmongocxx::clientmongocxx::v_noabi::collectionに掘り下げて疲れましたが、仕事をしていると思われる機能/方法が見つかりませんでした。

DBが実行されていない場合、クエリは失敗し、例外がスローされます。しかし、クエリを実行するときに例外をスローするのではなく、mongoDBが実行中であるかどうかを私のアプリケーションがすぐに教えてくれる方が良いでしょう。

ありがとうございました。

答えて

3

分散システムの性質上、ネットワークが稼動していること、データベースが稼働していることなどは瞬時に保証されません。つまり、データベースにアクセスできない場合は、すべての照会と書き込みが失敗の可能性に備える必要があります。あなたはすでにそれを考慮する必要があるので、スタンドアロンの「DBが稼動しているかどうかを確認する」テストではなく、それに頼る方がよいでしょう。

このように考えてみましょう。「データベースが稼働していますか」と次の操作の間に競合条件があります。レースを行わないことをお勧めします - 失敗を処理するアプリケーションを作成してください。

アドバイスにもかかわらず、実際に一度だけチェックしたい場合はmongocxx::database::run_commandを使用して{"ismaster" : 1}コマンドを管理データベースに送信してください。

+0

ありがとう、私は私のプロジェクトでより良い例外処理ソリューションを実装すると思います。 – Joe

関連する問題