[メモ] MongoDBで擬似的にエラーを発生させたい時のコマンド
やりたいこと
DBから何かエラーが返ってきた時のエラーハンドリングが正しく動作するか試すためにMongoDBからエラーが返ってくるようにしたい
failCommandを使う
詳しくはここを読む。
The "failCommand" fail point
mongod 4.0 and mongos 4.1.5.
以上でないと下記のコマンドは使えません。
まず、このコマンドを使うには enableTestCommands
を有効化しないといけないです。
/etc/mongod.conf
に以下を追加して再起動してください。
setParameter:
enableTestCommands: 1
一時的に使用したいだけであれば以下のコマンドでmongodを起動してもOKです。
mongod --setParameter enableTestCommands=1
上記が設定できたらmongo shellにログインしてコマンドを実行します。
db.adminCommand({
configureFailPoint: "failCommand",
mode: "alwaysOn",
data: {errorCode: 2, failCommands: ["find"]}
});
上記の例の場合、 find
コマンドが送信された時は必ず( alwaysOn
)エラーコード2を返す様に設定します。
modeに {times: N}
をセットすればN回失敗、 {activationProbability: D}
(Dは0~1)を設定すれば確率で失敗させられます。
エラーではなく接続を切断したい場合は以下の様に closeConnection: true
を指定すればできます。
db.adminCommand({
configureFailPoint: "failCommand",
mode: {times: 3},
data: {closeConnection: true, failCommands: ["find"]}
});
それ以外にも色々なオプションがあるので詳しくはWiki参照。
Author And Source
この問題について([メモ] MongoDBで擬似的にエラーを発生させたい時のコマンド), 我々は、より多くの情報をここで見つけました https://qiita.com/from_Unknown/items/69e9211d136cb37c7857著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .