Módulo: OperationFailure::Family
- Ampliado por:
- Reenviable
- 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.
Resumen de constantes colapsar
- CAMBIODETRANSMISIÓN_REANUDACIÓN_ERRORES =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
Códigos de error y nombres de códigos que deben hacer que un comando getMore falle en un flujo de cambios NO siendo reanudado.
[ { code_name: 'HostUnreachable', código: 6 }, { code_name: 'HostNotFound', código: 7 }, { code_name: 'NetworkTimeout', código: 89 }, { code_name: 'ApagadoEnProgreso', código: 91 }, { code_name: 'PrimarioDescendido', código: 189 }, { code_name: 'ExceededTimeLimit', código: 262 }, { code_name: 'SocketException', código: 9001 }, { code_name: 'NotMaster', código: 10_107 }, { code_name: 'InterrumpidoDuranteApagado', código: 11_600 }, { code_name: 'Interruptido por cambio de estado de representación', código: 11_602 }, { code_name: 'NoPrimarioNoSecundarioOk', código: 13_435 }, { code_name: 'NoEsPrincipalNiSecundario', código: 13_436 }, { code_name: 'StaleShardVersion', código: 63 }, { code_name: 'FailedToSatisfyReadPreference', código: 133 }, { code_name: 'StaleEpoch', código: 150 }, { code_name: 'RetryChangeStream', código: 234 }, { code_name: 'StaleConfig', código: 13_388 }, ].freeze
- CHANGE_STREAM_RESUME_MESSAGES =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
El flujo de cambios se puede reanudar cuando se encuentren estos mensajes de error.
ReadWriteRetryable::WRITE_RETRY_MESSAGES
Constantes incluidas de Mongo::Error::ReadWriteRetryable
Mongo::Error::ReadWriteRetryable::RETRY_MESSAGES, Mongo::Error::ReadWriteRetryable::WRITE_RETRY_ERRORS, Mongo::Error::ReadWriteRetryable::WRITE_RETRY_MESSAGES
Constantes incluidas de Mongo::Error::SdamErrorDetection
Mongo::Error::SdamErrorDetection::NODE_RECOVERING_CODES, Mongo::Error::SdamErrorDetection::NODE_SHUTTING_DOWN_CODES, Mongo::Error::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 extraído del documento.
-
#details ⇒ String | nil
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 para 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 nivel de confirmación de escritura (write concern) tal y como lo reportó el servidor, si lo hubo.
Resumen del método de instancia colapsar
-
#change_stream_resumable? ⇒ true, false
¿Se puede reanudar el flujo de cambios en el que ocurrió este error, siempre que la operación que lo haya provocado haya sido un 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).
-
#write_concern_error? ⇒ true | false
Si la falla incluye un error de nivel de confirmación de escritura (write concern).
-
#wtimeout? ⇒ true | false
Si el error es un tiempo de espera de nivel de confirmación de escritura (write concern).
Métodos incluidos de Mongo::Error::ReadWriteRetryable
#¿reintentable?, #¿escritura_reintentable?
Métodos incluidos de Mongo::Error::SdamErrorDetection
#nodo_recuperando?, #nodo_apagándose?, #no_es_máster?
Detalles de atributo de instancias
#código ⇒ Entero (solo lectura)
Devuelve el código de error analizado del documento.
43 44 45 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 43 def Código @code end |
#nombre_del_código ⇒ string (solo lectura)
Devuelve el nombre del código de error extraído del documento.
48 49 50 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 48 def code_name @code_name end |
#detalles ⇒ String | nil (solo lectura)
Returns Los detalles del error. Para los errores de WriteConcern, esto es document['writeConcernError']['errInfo']. Para WriteErrors, esto es document['writeErrors'][0]['errInfo']. Para todos los demás errores, este valor es nulo.
151 152 153 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 151 def Detalles @detalles end |
#documento ⇒ BSON::Document | nil (solo lectura)
Devuelve El documento de error devuelto por el servidor.
156 157 158 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 156 def Documento @document end |
#resultado ⇒ Operación::Resultado (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el objeto resultado de la operación.
161 162 163 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 161 def Resultado @result end |
#mensaje_del_servidor ⇒ String (solo lectura)
DevuelveEl mensaje de error devuelto por el servidor analizado de la respuesta.
54 55 56 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 54 def @server_message end |
#write_concern_error_code ⇒ Integer | nil (solo lectura)
Devuelve el código de error 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) presente y tiene un código.
139 140 141 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 139 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.
145 146 147 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 145 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 nivel de confirmación de escritura (write concern) tal y como lo reportó el servidor, si lo hubo.
133 134 135 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 133 def documento_de_error_de_gravedad_de_escritura @write_concern_error_document end |
Detalles del método de instancia
#change_stream_resumable? ⇒ true, false
¿Se puede reanudar el flujo de cambios en el que se produjo este error, suponiendo que la operación que activó este error fuera un getMore?
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 96 def ¿streaming de cambios reanudable? si @result && @result.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 es parte de una API privada. Se debe evitar el uso de este método 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.
38
|
# Archivo 'lib/mongo/error/operation_failure.rb', línea 38 def_delegator :@result, Descripción de la conexión |
#initialize(mensaje = nil, resultado = nil, opciones = {}) ⇒ objeto
Crear la falla de la operación.
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 186 def inicializar( = nulo, Resultado = nulo, = {}) @detalles = retrieve_details([documento]) super(append_details(, @detalles)) @result = Resultado @code = [clave] @code_name = [Nombre del código] @write_concern_error_document = [Documento de error de Write concern] @write_concern_error_code = [Código_error_conciencia_escritura] @write_concern_error_code_name = [Nombre del código de error de writeConcern] Etiquetas de error de Write Concern = [:write_concern_error_labels] || [] @labels = [:etiquetas] || [] @wtimeout = !![:wtimeout] @document = [documento] @server_message = [Mensaje_del_servidor] end |
#max_time_ms_expired? ⇒ true | false
Si el error es MaxTimeMSExpired (Tiempo máximo alcanzado).
217 218 219 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 217 def ¿max_time_ms_expired? Código == 50 # MaxTimeMSExpired 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.
125 126 127 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 125 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).
208 209 210 |
# Archivo 'lib/mongo/error/operation_failure.rb', línea 208 def ¿wtimeout? @wtimeout end |