ビュークエリを実行中に、エラーやレスポンスの制御の支援に利用することができる様々なパラメータがあります。
on_error
on_error
パラメータでは、ノードからの最初のエラーでビューの結果を停止するかどうか、特定のノードが失敗したとき、他のノードが情報を返すかどうかを指定します。
ビューへのリクエストによって生成された情報を返すとき、デフォルトのレスポンスは発生したエラーをJSONレスポンスの一部として含みますが、ビューの処理は継続されます。これはリクエストされたビュー情報を作成していても、Couchbaseのクラスタ内の各ノードがタイムアウト、もしくは失敗となるようにします。
この例では、JSONの戻り値の一部にエラーが含まれます:
{ "errors" : [ { "from" : "http://192.168.1.80:9503/_view_merge/?stale=false", "reason" : "req_timedout" }, { "from" : "http://192.168.1.80:9502/_view_merge/?stale=false", "reason" : "req_timedout" }, { "from" : "http://192.168.1.80:9501/_view_merge/?stale=false", "reason" : "req_timedout" } ], "rows" : [ { "value" : 333280, "key" : null } ] }
on_error
引数を使用することにより、この振る舞いを変更できます。デフォルト値はcontinue
です。この値をstop
に設定する場合、ビューのレスポンスはエラーが発生するとすぐに停止します。返されたJSONは、最初のエラーを返したノードのエラー情報を含んでいます。例:
{ "errors" : [ { "from" : "http://192.168.1.80:9501/_view_merge/?stale=false", "reason" : "req_timedout" } ], "rows" : [ { "value" : 333280, "key" : null } ] }