Módulo: Mongo::Error::OperationFailure::Family
- Ampliado por:
- Reenviable
- Incluye:
- ReadWriteRetryable, SdamErrorDetection
- Incluido en:
- Mongo::Error:: OperationFailure, ServerTimeoutError
- Definido en:
- lib/mongo/error/operation_failure.rb
Overview
Implementa el comportamiento para un error OperationFailure. Otros errores (por ejemplo, ServerTimeoutError) también pueden implementar esto, para que puedan ser reconocidos y tratados como errores OperationFailure.
Colapso delresumen constante
- CAMBIODETRANSMISIÓN_REANUDACIÓN_ERRORES =
Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Códigos de error y nombres de códigos que deberían provocar que un comando getMore fallido en un flujo de cambios NO se reanude.
[ {nombre_código: 'HostUnreachable', código: 6}, {nombre_código: 'HostNoEncontrado', código: 7}, {nombre_código: 'NetworkTimeout', código: 89}, {nombre_código: 'ApagadoEnProgreso', código: 91}, {nombre_código: 'PrimarioDescendido', código: 189}, {nombre_código: 'ExceededTimeLimit', código: 262}, {nombre_código: 'SocketException', código: 9001}, {nombre_código: 'NotMaster', código: 10107}, {nombre_código: 'InterrumpidoAlApagar', código: 11600}, {nombre_código: 'Interruptido por cambio de estado de representación', código: 11602}, {nombre_código: 'NoPrimarioNoSecundarioOk', código: 13435}, {nombre_código: 'NoEsPrincipalNiSecundario', código: 13436}, {nombre_código: 'StaleShardVersion', código: 63}, {nombre_código: 'FailedToSatisfyReadPreference', código: 133}, {nombre_código: 'StaleEpoch', código: 150}, {nombre_código: 'RetryChangeStream', código: 234}, {nombre_código: 'StaleConfig', código: 13388}, ].freeze
- CAMBIAR_MENSAJES_DE_REANUDACIÓN_DE_FLUJO =
Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
El flujo de cambios se puede reanudar cuando se encuentran estos mensajes de error.
ReadWriteRetryable::WRITE_RETRY_MESSAGES
Constantes incluidas en ReadWriteRetryable
ReadWriteRetryable::RETRY_MESSAGES, ReadWriteRetryable::WRITE_RETRY_ERRORS, ReadWriteRetryable::WRITE_RETRY_MESSAGES
Constantes incluidas de SdamErrorDetection
SdamErrorDetection::NODE_RECOVERING_CODES, SdamErrorDetection::NODE_SHUTTING_DOWN_CODES, SdamErrorDetection::NOT_MASTER_CODES
Resumen de atributos de la instancia colapsar
-
#code ⇒ Integer
Solo lectura
El código de error analizado del documento.
-
#code_name ⇒ String
Solo lectura
El nombre del código de error analizado del documento.
-
#detalles ⇒ Cadena | nulo
Solo lectura
Los detalles del error.
-
#document ⇒ BSON::Document | nil
Solo lectura
El documento de error devuelto por el servidor.
-
#resultado ⇒ Operation::Result
Solo lectura
privado
El objeto de resultado de la operación.
-
#server_message ⇒ String
Solo lectura
El mensaje de error devuelto por el servidor que se ha analizado a partir de la respuesta.
-
#write_concern_error_code ⇒ Integer | nil
Solo lectura
El código de error del error de nivel de confirmación de escritura (write concern), si un error de nivel de confirmación de escritura (write concern) está presente y tiene un código.
-
#write_concern_error_code_name ⇒ String | nil
Solo lectura
El nombre en clave para el error de nivel de confirmación de escritura (write concern), si existe un error de nivel de confirmación de escritura (write concern) y tiene un nombre en clave.
-
#write_concern_error_document ⇒ Hash | nil
Solo lectura
Devuelve el documento de error de escritura tal como lo informó el servidor, si lo hay.
Resumen del método de instancia colapsar
-
#change_stream_resumable? ⇒ true, false
¿Se puede reanudar el flujo de cambio en el que se produjo este error, siempre que la operación que desencadenó este error haya sido getMore?
-
#connection_descripción ⇒ servidor::descripción
privado
Descripción del servidor en el que se realizó la operación a la que se refiere esta excepción.
-
#initialize(mensaje = nil, resultado = nil, opciones = {}) ⇒ Object
Crear la falla de la operación.
-
#max_time_ms_expired? ⇒ true | false
Si el error es MaxTimeMSExpired (Tiempo máximo alcanzado).
-
#unsupported_retryable_write? ⇒ true | false
Si el error se debe a un intento de escritura reintentable en un motor de almacenamiento que no admite escrituras reintentables.
-
#write_concern_error? ⇒ true | false
Si el error incluye un error de escritura.
-
#wtimeout? ⇒ true | false
Si el error es un tiempo de espera de nivel de confirmación de escritura (write concern).
Métodos incluidos de ReadWriteRetryable
#¿reintentable?, #¿escritura_reintentable?
Métodos incluidos de SdamErrorDetection
#nodo_recuperando?, #nodo_apagándose?, #no_es_máster?
Detalles de los atributos de instancia
#código ⇒ Entero (solo lectura)
Devuelve el código de error analizado del documento.
44 45 46 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 44 def Código @code end |
#nombre_del_código ⇒ string (solo lectura)
Devuelve el nombre del código de error analizado del documento.
49 50 51 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 49 def nombre_clave @code_name end |
#detalles ⇒ String | nil (solo lectura)
152 153 154 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 152 def Detalles @detalles end |
#documento ⇒ BSON::Document | nil (solo lectura)
Devuelve El documento de error devuelto por el servidor.
157 158 159 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 157 def Documento @documento end |
#resultado ⇒ Operación::Resultado (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el objeto resultado de la operación.
162 163 164 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 162 def Resultado @resultado end |
#mensaje_del_servidor ⇒ String (solo lectura)
DevuelveEl mensaje de error devuelto por el servidor analizado de la respuesta.
55 56 57 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 55 def @server_message end |
#write_concern_error_code ⇒ Entero | nulo (solo lectura)
Devuelve el código de error para el error de escritura, si hay un error de escritura y tiene un código.
140 141 142 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 140 def write_concern_error_code @write_concern_error_code end |
#write_concern_error_code_name ⇒ String | nil (solo lectura)
Retorna el nombre del código para el error de nivel de confirmación de escritura (write concern), si hay un error de nivel de confirmación de escritura (write concern) y este tiene un nombre de código.
146 147 148 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 146 def write_concern_error_code_name @write_concern_error_code_name end |
#write_concern_error_document ⇒ Hash | nil (solo lectura)
Devuelve el documento de error de escritura tal como lo informó el servidor, si lo hay.
134 135 136 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 134 def documento_de_error_de_gravedad_de_escritura @write_concern_error_document end |
Detalles del método de instancia
#change_stream_resumable? ⇒ verdadero, falso
¿Se puede reanudar el flujo de cambio en el que se produjo este error, siempre que la operación que desencadenó este error haya sido getMore?
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 97 def ¿streaming de cambios reanudable? si @resultado && @resultado.is_a?(Mongo::Operación::Obtener más::Resultado) # Las excepciones CursorNotFound siempre pueden reanudarse porque el servidor # no está al tanto de la id del cursor y, por lo tanto, no puede determinar si # el cursor es un flujo de cambios y no puede añadir el Etiqueta #ResumableChangeStreamError. return true si Código == 43 # La descripción de conexión no se rellena para guardados no reconocidos. si connection_description.max_wire_version >= 9 ¿etiqueta?('ResumableChangeStreamError') else change_stream_resumable_code? end else false end end |
#descripción_conexión ⇒ Servidor::Descripción
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve la descripción del servidor en el que se realizó la operación a la que se refiere esta excepción.
39
|
# Archivo 'lib/mongo/error/operation_failure.rb', línea 39 def_delegador :@resultado, :descripción_de_conexión |
#initialize(mensaje = nil, resultado = nil, opciones = {}) ⇒ objeto
Crear la falla de la operación.
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 187 def inicializar( = nulo, Resultado = nulo, = {}) @detalles = retrieve_details([:documento]) super(append_details(, @detalles)) @resultado = Resultado @code = [clave] @code_name = [:nombre_código] @write_concern_error_document = [Documento de error de Write concern] @write_concern_error_code = [:escribir_código_de_error_de_preocupación] @write_concern_error_code_name = [Nombre del código de error de writeConcern] Etiquetas de error de Write Concern = [:escribir etiquetas de error de preocupación] || [] @labels = [:etiquetas] || [] @wtimeout = !![:wtimeout] @documento = [:documento] @server_message = [Mensaje_del_servidor] end |
#¿max_time_ms_expired? ⇒ verdadero | falso
Si el error es MaxTimeMSExpired (Tiempo máximo alcanzado).
218 219 220 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 218 def ¿max_time_ms_expired? Código == 50 # MaxTimeMSExpired end |
#unsupported_retryable_write? ⇒ true | false
Si el error se debe a un intento de escritura reintentable en un motor de almacenamiento que no admite escrituras reintentables.
escritura reintentable en un motor de almacenamiento que no admite escrituras reintentables.
229 230 231 232 233 234 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 229 def unsupported_retryable_write? # El código 20 es IllegalOperation. # Ten en cuenta que se espera que el documento sea un BSON::Document, por lo tanto # ya sea teniendo claves de string o proporcionando acceso indiferente. Código == 20 && &.start_with?("Números de transacción") || false end |
#es_una_inquietud_de _escritura? ⇒ true | false
Devuelve si la falla incluye un error de nivel de confirmación de escritura (write concern). Una falla puede tener un error de nivel superior y un error de nivel de confirmación de escritura (write concern) o uno de los dos.
126 127 128 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 126 def ¿error_de_escritura? !!@write_concern_error_document end |
#wtimeout? ⇒ true | false
Si el error es un tiempo de espera de nivel de confirmación de escritura (write concern).
209 210 211 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 209 def ¿wtimeout? @wtimeout end |