예외: Mongo::Error::OperationFailure
- 상속:
-
Mongo::Error
- 객체
- StandardError
- Mongo::Error
- Mongo::Error::OperationFailure
- 확장자:
- 전달 가능
- 다음을 포함합니다.
- ReadWriteRetryable, SdamErrorDetection
- 다음에 정의됨:
- 빌드/ Ruby-driver-v2.19/lib/mongo/error/operation_failure.rb
개요
어떤 이유로든 작업이 실패할 때 발생합니다.
상수 요약 접기
- CHANGE_STREAM_RESUME_ERRORS =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
변경 스트림이 재개되지 않을 때 실패하는 getMore 명령을 유발하는 오류 코드 및 코드 이름입니다.
[ {code_name: 'HostUnreachable', 코드: 6}, {code_name: 'HostNotFound', 코드: 7}, {code_name: 'NetworkTimeout', 코드: 89}, {code_name: 'ShutdownInProgress', 코드: 91}, {code_name: 'PrimarySteppedDown', 코드: 189}, {code_name: 'ExceededTimeLimit', 코드: 262}, {code_name: 'SocketException', 코드: 9001}, {code_name: 'NotMaster', 코드: 10107}, {code_name: 'InterruptedAtShutdown', 코드: 11600}, {code_name: 'InterruptedDueToReplStateChange', 코드: 11602}, {code_name: 'NotPrimaryNoSecondaryOk', 코드: 13435}, {code_name: 'NotMasterOrSecondary', 코드: 13436}, {code_name: 'StaleShardVersion', 코드: 63}, {code_name: 'FailedToSatisfyReadPreference', 코드: 133}, {code_name: 'StaleEpoch', 코드: 150}, {code_name: 'RetryChangeStream', 코드: 234}, {code_name: 'StaleConfig', 코드: 13388}, ].동결
- CHANGE_STREAM_RESUME_MESSAGES =
이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이러한 오류 메시지가 발생하면 변경 스트림 을 재개할 수 있습니다.
ReadWriteRetryable::WRITE_RETRY_MESSAGES
ReadWriteRetryable에 포함된 상수
ReadWriteRetryable::RETRY_MESSAGES, ReadWriteRetryable::WRITE_RETRY_ERRORS, ReadWriteRetryable::WRITE_RETRY_MESSAGES
SdamErrorDetection에 포함된 상수
SdamErrorDetection::NODE_RECOVERING_CODES, SdamErrorDetection::NODE_SHUTTING_DOWN_CODES, SdamErrorDetection::NOT_MASTER_CODES
Mongo::Error에서 상속된 상수
BAD_밸류, 코드, CURSOR_NOT_FOUND, ERR, ERRMSG, ERROR, TRANSIENT_TRANSACTION_ERROR_LABEL, UNKNOWN_ERROR, UNKNOWN_TRANSACTION_COMMIT_RESULT_LABEL, WRITE_CONCERN_CONCERN_ERROR, WRITE_CONCERN_CONCERN_WRITE
인스턴스 속성 요약 접기
-
#코드 ⇒ 정수
읽기 전용
문서에서 구문 분석된 오류 코드입니다.
-
#code_name ⇒ string
읽기 전용
문서에서 구문 분석된 오류 코드 이름입니다.
-
#세부 정보 ⇒ string | nil
읽기 전용
오류의 세부 정보입니다.
-
#document ⇒ BSON::Document | nil
읽기 전용
서버에서 반환한 오류 문서.
-
#server_message ⇒ string
읽기 전용
응답에서 구문 분석된 서버 반환 오류 메시지입니다.
-
#write_concern_error_code ⇒ 정수 | nil
읽기 전용
쓰기 고려 오류가 존재하고 코드가 있는 경우 쓰기 고려 오류에 대한 오류 코드입니다.
-
#write_concern_error_code_name ⇒ string | nil
읽기 전용
쓰기 고려 (write concern) 쓰기 고려 (write concern) 의 코드 이름입니다.
-
#write_concern_error_document ⇒ 해시 | nil
읽기 전용
서버에서 보고한 쓰기 고려 오류 문서(있는 경우)를 반환합니다.
Notable에 포함된 속성
#connection_global_id, #generation, #service_id
인스턴스 메서드 요약 접기
-
#change_stream_resumable? ⇒ 참, 거짓
이 오류를 트리거한 작업이 getMore인 경우 이 오류가 발생한 변경 스트림 을 재개할 수 있나요?
-
#connection_description ⇒ Server::Description
비공개
이 예외가 참조하는 작업이 수행된 서버 에 대한 서버 설명입니다.
-
#initialize(message = nil, 결과 = nil, options = {}) ⇒ OperationFailure
생성자
작업 실패를 만듭니다.
-
#max_time_ms_expired? ⇒ true | false
오류가 MaxTimeMSExpired인지 여부입니다.
-
#unsupported_retryable_write? ⇒ true | false
재시도 가능 쓰기를 지원 하지 않는 스토리지 엔진 에서 재시도 가능 쓰기 (write) 를 시도하여 오류가 발생했는지 여부입니다.
-
#write_concern_error? ⇒ true | false
실패에 쓰기 고려 오류가 포함되는지 여부입니다.
-
#wtimeout? ⇒ true | false
오류가 쓰기 고려 (write concern) 시간 초과인지 여부입니다.
ReadWriteRetryable에 포함된 메서드
#retryable?, #write_retryable?
SdamErrorDetection에 포함된 메서드
#node_recovering?, #node_shutting_down?, #not_master?
Mongo::Error에서 상속된 메서드
#write_concern_error_label?, #write_concern_error_labels
WriteRetryable에 포함된 메서드
Labelable에 포함된 메서드
Notable에 포함된 메서드
#add_note, #add_notes, #notes, #to_s
생성자 세부 정보
#initialize(message = nil, 결과 = nil, options = {}) ⇒ OperationFailure
작업 실패를 만듭니다.
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 187 def 초기화( = nil, 결과 = nil, = {}) @details = retrieve_details([:document]) super(append_details(, @details)) @result = 결과 @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 |
인스턴스 속성 세부 정보
#코드 ⇒ 정수 (읽기 전용)
반환값 문서 에서 구문 분석된 오류 코드를 반환합니다.
43 44 45 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 43 def 코드 @code end |
#code_name ⇒ string (읽기 전용)
반환값 문서에서 구문 분석된 오류 코드 이름을 반환합니다.
48 49 50 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 48 def code_name @code_name end |
#세부 정보 ⇒ string | nil (읽기 전용)
151 152 153 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 151 def 세부 정보 @details end |
#문서 ⇒ BSON::Document | nil (읽기 전용)
서버에서 반환한 오류 문서를 반환합니다.
156 157 158 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 156 def 문서 @document end |
#server_message ⇒ string (읽기 전용)
응답에서 구문 분석된 서버 반환 오류 메시지를 반환합니다.
54 55 56 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 54 def @server_message end |
#write_concern_error_code ⇒ 정수 | nil (읽기 전용)
쓰기 고려 오류가 있고 코드가 있는 경우 쓰기 고려 오류에 대한 오류 코드를 반환합니다.
139 140 141 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 139 def write_concern_error_code @write_concern_error_code end |
#write_concern_error_code_name ⇒ string | nil (읽기 전용)
쓰기 고려 오류가 있고 코드명이 있는 경우 쓰기 고려 오류에 대한 코드 이름을 반환합니다.
145 146 147 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 145 def write_concern_error_code_name @write_concern_error_code_name end |
#write_concern_error_document ⇒ 해시 | nil (읽기 전용)
서버에서 보고한 쓰기 고려 오류 문서(있는 경우)를 반환합니다.
133 134 135 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 133 def write_concern_error_document @write_concern_error_document end |
인스턴스 메서드 세부 정보
#change_stream_resumable? ⇒ true, false
이 오류를 트리거한 작업이 getMore인 경우 이 오류가 발생한 변경 스트림을 재개할 수 있나요?
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 96 def change_stream_resumable? 만약 @result && @result.is_a?(mongo::작업::자세히 보기::결과) # 서버 예외는 항상 재개될 수 있습니다. # 커서 ID를 인식하지 못하므로 다음 여부를 확인할 수 없습니다. # 커서는 변경 스트림이므로 추가할 수 없습니다. # ResumableChangeStreamError 레이블. 반환 true 만약 코드 == 43 # 승인되지 않은 쓰기에 대해서는 연결 설명이 채워지지 않습니다. 만약 connection_description.max_wire_version >= 9 레이블?('ResumableChangeStreamError') other change_stream_resumable_code? end other 거짓 end end |
#connection_description ⇒ Server::Description
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 예외가 참조하는 작업이 수행된 서버에 대한 MongoDB Server 설명을 반환합니다.
38 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 38 def_delegator :@result, :connection_description |
#max_time_ms_expired? ⇒ true | false
오류가 MaxTimeMSExpired인지 여부입니다.
218 219 220 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 218 def max_time_ms_expired? 코드 == 50 # MaxTimeMSExpired end |
#unsupported_retryable_write? ⇒ true | false
재시도 가능 쓰기를 지원 하지 않는 스토리지 엔진 에서 재시도 가능 쓰기 (write) 를 시도하여 오류가 발생했는지 여부입니다.
재시도 가능 쓰기 (write) 를 지원 하지 않는 스토리지 엔진 의 재시도 가능 쓰기입니다.
229 230 231 232 233 234 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 229 def unsupported_retryable_write? # 코드 20 은(는) 불법적인 운영입니다. # 문서는 BSON::Document여야 하므로 # string 키를 사용하거나 무관심한 액세스 를 제공할 수 있습니다. 코드 == 20 && &.start_with?("트랜잭션 번호") || 거짓 end |
#write_concern_error? ⇒ true | false
반환값 실패에 쓰기 고려 (write concern) 오류가 포함되는지 여부를 반환합니다. 실패에는 최상위 오류와 쓰기 고려 (write concern) 오류 또는 둘 중 하나가 있을 수 있습니다.
125 126 127 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 125 def write_concern_error? !!@write_concern_error_document end |
#wtimeout? ⇒ true | false
오류가 쓰기 고려 (write concern) 시간 초과인지 여부입니다.
209 210 211 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/error/operation_failure.rb', 줄 209 def wtimeout? @wtimeout end |