Módulo: OperationFailure::Family
- Estendido por:
- Encaminhável
- Definido em:
- lib/mongo/error/operation_failure.rb
Visão geral
Implementa o comportamento para um erro OperationFailure. Outros erros (por exemplo ServerTimeoutError) também podem implementar isso, para que possam ser reconhecidos e tratados como erros OperationFailure.
Colapsode resumo constante
- CHANGE_STREAM_RESUME_ERRORS =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
Códigos de erro e nomes de código que devem resultar em uma falha no comando getMore em um change stream que NÃO está sendo retomado.
[ { code_name: 'HostUnreachable', código: 6 }, { code_name: 'HostNotFound', código: 7 }, { code_name: 'NetworkTimeout', código: 89 }, { code_name: 'ShutdownInProgress', código: 91 }, { code_name: 'PrimarySteppedDown', código: 189 }, { code_name: 'ExceededTimeLimit', código: 262 }, { code_name: 'SocketException', código: 9001 }, { code_name: 'NotMaster', código: 10_107 }, { code_name: 'InterruptedAtShutdown', código: 11_600 }, { code_name: 'InterruptedDueToReplStateChange', código: 11_602 }, { code_name: 'NotPrimaryNoSecondaryOk', código: 13_435 }, { code_name: 'NotMasterOrSecondary', 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 }, ].congelar
- Change_stream_resume_messages =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
O change stream pode ser retomado quando essas mensagens de erro são encontradas.
ReadWriteRetryable::WRITE_RETRY_MSSAGES
Constantes incluídas do Mongo::Error::ReadWriteRetryable
Mongo::Error::ReadWriteRetryable::RETRY_MSSAGES, Mongo::Error::ReadWriteRetryable::WRITE_RETRY_ERRORS, Mongo::Error::ReadWriteRetryable::WRITE_RETRY_MSSAGES
Constantes incluídas de Mongo::Error::SdamErrorDetection
Mongo::Error::SdamErrorDetection::NODE_RECOVERING_CODES, Mongo::Error::SdamErrorDetection::NODE_SHUTTING_DOWN_CODES, Mongo::Error::SdamErrorDetection::NOT_MASTER_CODES
Recolhimento do Resumo do atributo de instância
-
#code ➤ inteiro
Somente leitura
O código de erro analisado do documento.
-
#code_name ➤ string
Somente leitura
O nome do código de erro analisado do documento.
-
#detalhes ➤ string | nada
Somente leitura
Os detalhes do erro.
-
#document ⇒ BSON::Document | nil
Somente leitura
O documento de erro retornado pelo servidor.
-
#result ➤ Operação::Result
Somente leitura
privado
O objeto de resultado da operação.
-
#server_message ➤ string
Somente leitura
A mensagem de erro retornada pelo servidor analisada a partir da resposta.
-
#write_concern_error_code ➤ Inteiro | nada
Somente leitura
O código de erro para o erro de preocupação de gravação, se um erro de preocupação de gravação estiver presente e tiver um código.
-
#write_concern_error_code_name ➤ string | nada
Somente leitura
O nome de código do erro de preocupação de gravação , se um erro de preocupação de gravação estiver presente e tiver um nome de código.
-
#write_concern_error_document ➤ Hash | nada
Somente leitura
Retorna o documento de erro de write concern conforme relatado pelo servidor, se houver.
Recolhimento do Resumo do método de instância
-
#change_stream_resumable? ➤ verdadeiro, falso
O change stream no qual ocorreu esse erro pode ser retomado, desde que a operação que acionou esse erro tenha sido um getMore?.
-
#connection_description ➤ Servidor::Description
privado
Descrição do servidor do servidor no qual a operação a que esta exceção se refere foi executada.
-
#inicializar(mensagem = nil, resultado = nil, opções = {}) ➤ Objeto
Crie a falha da operação.
-
#max_time_ms_expired? ➤ verdadeiro | false
Se o erro é MaxTimeMSExpired.
-
#write_concern_error? ➤ verdadeiro | false
Se a falha inclui um erro de write concern.
-
#tempo limite? ➤ verdadeiro | false
Se o erro é um tempo limite de preocupação de gravação .
Métodos incluídos do Mongo::Error::ReadWriteRetryable
#retryable?, #write_retryable?
Métodos incluídos do Mongo::Error::SdamErrorDetection
#node_recovering?, #node_shutting_down?, #not_master?
Detalhes do atributo da instância
#code ➤ Inteiro (somente leitura)
Retorna o código de erro analisado do documento.
43 44 45 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 43 def código @code end |
#code_name ➤ string (somente leitura)
Retorna o nome do código de erro analisado do documento.
48 49 50 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 48 def code_name @code_name end |
#detalhes ➤ string | nil (somente leitura)
Retorna os detalhes do erro. Para WriteConcernErrors, é document['writeConcernError']['errInfo']. Para WriteErrors, isso é document['writeErrors'][0]['errInfo']. Para todos os outros erros, isso é nulo.
151 152 153 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 151 def Detalhes @ detalhes end |
#documento ➤ BSON::Documento | nil (somente leitura)
Retorna o documento de erro retornado pelo servidor.
156 157 158 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 156 def documento @document end |
#result ➤ Operação::Result (readonly)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o objeto de resultado da operação.
161 162 163 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 161 def Resultado @result end |
#server_message ➤ string (readonly)
Retorna A mensagem de erro retornada pelo servidor analisada a partir da resposta.
54 55 56 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 54 def @server_message end |
#write_concern_error_code ➤ Inteiro | nil (somente leitura)
Retorna o código de erro para o erro de preocupação de gravação, se um erro de preocupação de gravação estiver presente e tiver um código.
139 140 141 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 139 def write_concern_error_code @write_concern_error_code end |
#write_concern_error_code_name ➤ string | nil (somente leitura)
Retorna o nome do código do erro de preocupação de gravação, se um erro de preocupação de gravação estiver presente e tiver um nome de código.
145 146 147 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 145 def write_concern_error_code_name @write_concern_error_code_name end |
#write_concern_error_document ➤ Hash | nil (somente leitura)
Retorna o documento de erro de write concern conforme relatado pelo servidor, se houver.
133 134 135 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 133 def write_concern_error_document @write_concern_error_document end |
Detalhes do método de instância
#change_stream_resumable? ➤ true, false
O change stream no qual ocorreu esse erro pode ser retomado, desde que a operação que acionou esse erro tenha sido um getMore?
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 96 def change_stream_resumable? se @result && @result.is_a?(mongo::(operação)::pegue mais::Resultado) # As exceções CursorNotFound são sempre retomáveis porque o servidor # não está ciente do ID do cursor e, portanto, não pode determinar se # o cursor é um fluxo de alteração e não pode adicionar o # Etiqueta ResumableChangeStreamError. Método true se código == 43 # A descrição da conexão não é preenchida para escritas não reconhecidas. se connection_description.max_wire_version >= 9 rótulo?('ResumableChangeStreamError') mais change_stream_resumable_code? end mais false end end |
#connection_description ➤ Servidor::Description
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna a descrição do servidor MongoDB do servidor ao qual a operação a que esta exceção se refere foi executada.
38 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 38 def_delegator :@result, :connection_description |
#inicializar(mensagem = nil, resultado = nil, opções = {}) ➤ Objeto
Crie a falha da operação.
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 186 def inicializar( = nada, Resultado = nada, = {}) @ detalhes = retrieve_details([:document]) super(append_strings(, @ detalhes)) @result = Resultado @code = [:code] @code_name = [:code_name] @write_concern_error_document = [:write_concern_error_document] @write_concern_error_code = [:write_concern_error_code] @write_concern_error_code_name = [:write_concern_error_code_name] @write_concern_error_labels = [:write_concern_error_labels] || [] @labels = [:labels] || [] @wtimeout = !![:wtimeout] @document = [:document] @server_message = [:server_message] end |
#max_time_ms_expired? ➤ verdadeiro | false
Se o erro é MaxTimeMSExpired.
217 218 219 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 217 def max_time_ms_expired? código == 50 # MaxTimeMSExpired end |
#write_concern_error? ➤ verdadeiro | false
Retorna se a falha inclui um erro de preocupação de gravação . Uma falha pode ter um erro de nível superior e um erro de preocupação de gravação ou qualquer um dos dois.
125 126 127 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 125 def write_concern_error? !!@write_concern_error_document end |
#tempo limite? ➤ verdadeiro | false
Se o erro é um tempo limite de preocupação de gravação .
208 209 210 |
# Arquivo 'lib/mongo/error/operation_failure.rb', linha 208 def Wtimeout? @wtimeout end |