モジュール: OperationFailure::ファミリー

次による拡張機能。
転送可能
次のことが含まれます。
Mongo::Error::ReadWriteRetryableMongo::Error::SdamErrorDetection
次のドキュメントに含まれます。
Mongo::Error::OperationFailureMongo::Error::ServerTimeoutError
定義:
lib/mongo/error/operation_failure.rb

Overview

OperationFailure エラーの動作を実装します。 その他のエラー(例: ServerTimeoutError)もこれを実装することで、OperationFailureエラーとして認識され、扱われる可能性があります。

定数の概要の削減

CHANGE_STREAM_RESUME_ERRORS =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

変更ストリームでの getMore コマンド が失敗する結果となるエラー コードとコード名は再開されません。

[
  { Code_name: 'HostUnreachable', コード: 6 },
  { Code_name: ' HostNotFound ', コード: 7 },
  { Code_name: ' NetTimeout ', コード: 89 },
  { Code_name: ' shutdownInProgress ', コード: 91 },
  { Code_name: 'プライマリステップダウン', コード: 189 },
  { Code_name: 'ExceededTimeLimit', コード: 262 },
  { Code_name: ' SocketException ', コード: 9001 },
  { Code_name: ' Not Master ', コード: 10_107 },
  { Code_name: '中断されたAtshutdown ', コード: 11_600 },
  { Code_name: ' Interrupted DueToReplStatechange ', コード: 11_602 },
  { Code_name: ' NotPrimaryNoSecondaryOk ', コード: 13_435 },
  { Code_name: ' Not MasterOrSecondary ', コード: 13_436 },

  { Code_name: 'StaleShardVersion', コード: 63 },
  { Code_name: ' FailedToWaitsifyReadPreference ', コード: 133 },
  { Code_name: 'StaleEpoch', コード: 150 },
  { Code_name: ' RetrychangeStream ', コード: 234 },
  { Code_name: 'StaleConfig', コード: 13_388 },
].freeze
CHANGE_STREAM_RESUME_MESSAGES =

この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。

これらのエラーメッセージが表示されたときに、変更ストリームを再開できます。

以来

  • 2.6.0

ReadWriteRetryable::WRITE_RETRY_MESSAGES

Mongoから含まれる定数 ::Error::ReadWriteRetryable

Mongo::Error::ReadWriteRetryable::RETRY_MESSAGESMongo::Error::ReadWriteRetryable::WRITE_RETRY_ERRORSMongo::Error::ReadWriteRetryable::WRITE_RETRY_MESSAGES

Mongo::Error::SamErrorDeleted から含まれる定数

Mongo::Error::SdumpError Processing::NODE_RECOVERING_CODES , Mongo::Error::SdumErrorDeleted::NODE_SHUTING_DODES , Mongo::Error::SdumpErrorDeleted::NOT_MASTER_CODES

インスタンス属性の概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

Mongoから含まれるメソッド ::Error::ReadWriteRetryable

再試行可能かどうか#write_retryableか

Mongoに含まれるメソッド ::Error::SamErrorDeleted

#node_reactive?#node_shupping_down#not_ Master か。

インスタンス属性の詳細

コード整数(読み取り専用)

ドキュメントから解析されたエラー コードを返します。

次の値を返します。

  • (整数)

    ドキュメントから解析されたエラー コード。

以来

  • 2.6.0



43
44
45
ファイル 'lib/mongo/error/operation_failure.rb' 行 43

デフォルト コード
  @code
end

#code_name = string (読み取り専用)

ドキュメントから解析されたエラー コード名を返します。

次の値を返します。

  • ( string )

    ドキュメントから解析されたエラー コード名。

以来

  • 2.6.0



48
49
50
ファイル 'lib/mongo/error/operation_failure.rb' 行 48

デフォルト Code_name
  @code_name
end

#詳細= string | nil (読み取り専用)

エラーの詳細を返します。WriteConcernErrors の場合、これは document['writeConcernError']['errInfo'] です。WriteErrors の場合、これは document['writeErrors'][0]['errInfo'] です。他のすべてのエラーの場合、これは nil です。

次の値を返します。

  • ( string | nil )

    エラーの詳細。WriteConcernErrors の場合、これは document['writeConcernError']['errInfo'] です。WriteErrors の場合、これは document['writeErrors'][0]['errInfo'] です。他のすべてのエラーの場合、これは nil です。



151
152
153
ファイル 'lib/mongo/error/operation_failure.rb' 行 151

デフォルト 詳細
  @ Details
end

#ドキュメント= BSON::Document | nil (読み取り専用)

サーバーが返したエラードキュメントを返します。

次の値を返します。

  • (BSON::Document | nil)

    サーバーが返したエラードキュメント。



156
157
158
ファイル 'lib/mongo/error/operation_failure.rb' 行 156

デフォルト ドキュメント
  @document
end

結果 = Operation::Result (readonly)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

操作の結果オブジェクトを返します。

次の値を返します。



161
162
163
ファイル 'lib/mongo/error/operation_failure.rb' 行 161

デフォルト 結果
  @result
end

# server_message = string (読み取り専用)

応答から解析されたサーバーによって返されたエラー メッセージを返します。

次の値を返します。

  • ( string )

    応答から解析されたサーバーが返すエラー メッセージ。



54
55
56
ファイル 'lib/mongo/error/operation_failure.rb' 行 54

デフォルト server_message
  @server_message
end

#write_concern_error_code =整数 | nil (読み取り専用)

書込み保証 (write concern) エラーが存在し、コードがある場合、書込み保証 (write concern) エラーのエラー コードを返します。

次の値を返します。

  • (Integer | nil)

    書込み保証 (write concern) エラーが存在し、 コードがある場合の書込み保証 (write concern) エラーのエラー コード。

以来

  • 2.10.0



139
140
141
ファイル 'lib/mongo/error/operation_failure.rb' 行 139

デフォルト write_concern_error_code
  @write_concern_error_code
end

#write_concern_error_code_name = string | nil (読み取り専用)

書込み保証 (write concern) エラーが存在し、コード名がある場合、書込み保証 (write concern) エラーのコード名を返します。

次の値を返します。

  • ( string | nil )

    書込み保証 (write concern) エラーが存在し、コード名がある場合の、書込み保証 (write concern) エラーのコード名。

以来

  • 2.10.0



145
146
147
ファイル 'lib/mongo/error/operation_failure.rb' 行 145

デフォルト write_concern_error_code_name
  @write_concern_error_code_name
end

#write_concern_error_document =ハッシュ | nil (読み取り専用)

サーバーによって報告された書込み保証 (write concern) エラーのドキュメント(存在する場合)を返します。

次の値を返します。

  • (ハッシュ | nil )

    サーバーに報告された書込み保証 (write concern) エラー。



133
134
135
ファイル 'lib/mongo/error/operation_failure.rb' 行 133

デフォルト write_concern_error_document
  @write_concern_error_document
end

インスタンス メソッドの詳細

change_stream_resumeable? = truefalse

このエラーが発生した変更ストリームは、このエラーをトリガーした操作が getMore であった場合、再開できますか。

例:

変更ストリームでエラーを再開できますか。

error.change_stream_resumable?

次の値を返します。

  • truefalse

    エラーが再開可能かどうか。

以来

  • 2.6.0



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
ファイル 'lib/mongo/error/operation_failure.rb' 行 96

デフォルト change_stream_resumeable?
  場合 @result & & @result.is_a?(mongo::操作::Get More::結果)
    CursorNotFound 例外は、サーバーが
    # はカーソル ID を認識していないため、次の有無を判断できません。
    カーソルは変更ストリームであり、次を追加できません
    #ResumablechangeStreamError ラベル。
    return true 場合 コード == 43

    # 未確認の書込みには接続の説明は入力されません。
    場合 connection_description.max_wire_version >= 9
      ラベル('ResumableChangeStreamError')
    else
      change_stream_resumeable_code?
    end
  else
    false
  end
end

# connection_description = Connection_description = Server:: Description

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

この例外が参照する操作が実行されたサーバーのサーバーの説明を返します。

次の値を返します。

  • Server:: Description

    この例外が参照する操作が実行されたサーバーのサーバーの説明。



38
ファイル 'lib/mongo/error/operation_failure.rb' 行 38

def_delegator :@result, : connection_description

# 初期化(メッセージ = nil、結果 = nil、オプション = {}) = オブジェクト

操作の失敗を作成します。

パラメーター:

  • メッセージ string (デフォルトはnil

    エラーメッセージ。

  • 結果 操作 :: 結果 (デフォルトはnil

    結果オブジェクト。

  • options ハッシュ (デフォルトは{}です)

    追加のパラメーター。

オプション ハッシュ( options ):

  • :code 整数

    エラー コード。

  • :code_name string

    エラー コード名。

  • :document BSON::Document

    サーバーが返したエラードキュメント。

  • server_message string

    応答から解析されたサーバーが返すエラー メッセージ。

  • :write_concern_error_document ハッシュ

    サーバーが提供する書込み保証 (write concern) エラードキュメント(存在する場合)。

  • :write_concern_error_code 整数

    書込み保証 (write concern) エラーのエラー コード(存在する場合)。

  • :write_concern_error_code_name string

    書込み保証 (write concern) エラーのエラー コード名(存在する場合)。

  • :write_concern_error_ labels 配列<String>

    書込み保証 (write concern) エラーのエラー ラベル(存在する場合)。

  • : labels 配列<String>

    エラーに関連付けられたラベルのセット。

  • :wtimeout true | false

    エラーが wtimeout であるかどうか。



186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
ファイル 'lib/mongo/error/operation_failure.rb' 行 186

デフォルト 初期化(メッセージ = nil, 結果 = nil, options = {})
  @ Details = retrieve_details(options[:document])
  スーパー(append_ Details(メッセージ, @ Details))

  @result = 結果
  @code = options[:code]
  @code_name = options[:code_name]
  @write_concern_error_document = options[:write_concern_error_document]
  @write_concern_error_code = options[:write_concern_error_code]
  @write_concern_error_code_name = options[:write_concern_error_code_name]
  @write_concern_error_ labels = options[:write_concern_error_ labels] || []
  @ labels = options[: labels] || []
  @wtimeout = !!options[:wtimeout]
  @document = options[:document]
  @server_message = options[:server_message]
end

max_time_ms_expired は? = true | false

エラーが MaxTimeMSExpired であるかどうか。

次の値を返します。

  • true | false

    エラーが MaxTimeMSExpired であるかどうか。

以来

  • 2.10.0



217
218
219
ファイル 'lib/mongo/error/operation_failure.rb' 行 217

デフォルト max_time_ms_expired?
  コード == 50 #MaxTimeMSExpired
end

#write_concern_error = true | false

失敗に書込み保証 (write concern) エラーが含まれているかどうかを返します。 障害には、最上位エラーと書込み保証 (write concern) エラー、または 2 つのいずれかが含まれます。

次の値を返します。

  • true | false

    失敗に書込み保証 (write concern) エラーが含まれているかどうか。 障害には、最上位エラーと書込み保証 (write concern) エラー、または 2 つのいずれかが含まれます。

以来

  • 2.10.0



125
126
127
ファイル 'lib/mongo/error/operation_failure.rb' 行 125

デフォルト write_concern_error
  !!@write_concern_error_document
end

#wtimeout? = true | false

エラーが書込み保証 (write concern) タイムアウトであるかどうか。

次の値を返します。

  • true | false

    エラーが書込み保証 (write concern) タイムアウトであるかどうか。

以来

  • 2.7.1



208
209
210
ファイル 'lib/mongo/error/operation_failure.rb' 行 208

デフォルト wtimeout?
  @wtimeout
end