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

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

Overview

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

以来

  • 2.0.0

定数の概要の削減

CHANGE_STREAM_RESUME_ERRORS =

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

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

以来

  • 2.0.0

[
  {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 ', コード: 10107},
  {Code_name: '中断されたAtshutdown ', コード: 11600},
  {Code_name: ' Interrupted DueToReplStatechange ', コード: 11602},
  {Code_name: ' NotPrimaryNoSecondaryOk ', コード: 13435},
  {Code_name: ' Not MasterOrSecondary ', コード: 13436},

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

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

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

以来

  • 2.6.0

ReadWriteRetryable::WRITE_RETRY_MESSAGES

ReadWriteRetryableから含まれる定数

ReadWriteRetryable::RETRY_MESSAGESReadWriteRetryable::WRITE_RETRY_ERRORSReadWriteRetryable::WRITE_RETRY_MESSAGES

Sdu Managerに含まれる定数

SdumError Processing::NOD_RECOVERING_CODES 、 SされたError検出::NODE_SHUTTING_DNS_CODES 、 SされたErrorDeleted::NOT_MASTER_CODES

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

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

ReadWriteRetryableに含まれるメソッド

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

Sされたエラーの検出に含まれるメソッド

#node_reactive?#node_shupping_down#not_ Master か。

インスタンス属性の詳細

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

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

次の値を返します。

  • (整数)

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

以来

  • 2.6.0


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

デフォルト コード
  @code
end

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

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

次の値を返します。

  • ( string )

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

以来

  • 2.6.0


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

デフォルト Code_name
  @code_name
end

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

エラーの詳細を返します。 WriteConcernErrors の場合、これは「ドキュメント['errInfo']' です」。 WriteErrors の場合、これは ` document [ 0 ] ` です。 他のすべてのエラーの場合、これは nil です。

次の値を返します。

  • ( string | nil )

    エラーの詳細。 WriteConcernErrors の場合、これは「ドキュメント['errInfo']' です」。 WriteErrors の場合、これは ` document [ 0 ] ` です。 他のすべてのエラーの場合、これは nil です。

以来

  • 2.0.0


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

デフォルト 詳細
  @ Details
end

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

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

次の値を返します。

  • (BSON::Document | nil)

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

以来

  • 2.0.0


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

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

結果 = Operation::Result (readonly)

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

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

次の値を返します。

以来

  • 2.0.0


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

デフォルト 結果
  @result
end

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

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

次の値を返します。

  • ( string )

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

以来

  • 2.0.0


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

デフォルト server_message
  @server_message
end

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

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

次の値を返します。

  • (Integer | nil)

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

以来

  • 2.10.0


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

デフォルト 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


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

デフォルト write_concern_error_code_name
  @write_concern_error_code_name
end

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

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

次の値を返します。

  • (ハッシュ | nil )

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

以来

  • 2.0.0


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

デフォルト write_concern_error_document
  @write_concern_error_document
end

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

change_stream_resumeable? = truefalse

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

例:

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

error.change_stream_resumable?

次の値を返します。

  • truefalse

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

以来

  • 2.6.0

[ソースを表示]

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

デフォルト 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

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

[ソースを表示]

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

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 であるかどうか。

以来

  • 2.0.0

[ソースを表示]

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

デフォルト 初期化(メッセージ = 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

[ソースを表示]

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

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

#unsupported_retryable_write? = true | false

エラーの原因が、再試行可能な書き込みをサポートしていないストレージ エンジンで再試行可能な書き込みが試行されたかどうか。

再試行可能な書込みをサポートしていないストレージ エンジンでの再試行可能な書込み。

次の値を返します。

  • true | false

    エラーが試行されたによって発生したかどうか

以来

  • 2.10.0

[ソースを表示]

229
230
231
232
233
234
ファイル 'lib/mongo/error/operation_failure.rb' 行 229

デフォルト unsupported_retryable_write?
  #コード20は IllexalOperation です。
  ドキュメントは BSON::Document であることが予想されていることに注意してください。
  は、string キーを持つか、異なるアクセスを提供するかのいずれかになります。
  コード == 20 & & server_message&.start_with?("トランザクション番号") || false
end

#write_concern_error = true | false

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

次の値を返します。

  • true | false

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

以来

  • 2.10.0

[ソースを表示]

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

デフォルト write_concern_error
  !!@write_concern_error_document
end

#wtimeout? = true | false

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

次の値を返します。

  • true | false

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

以来

  • 2.7.1

[ソースを表示]

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

デフォルト wtimeout?
  @wtimeout
end