클래스: Mongo::Server::ConnectionBase

상속:
ConnectionCommon 모두 표시
확장자:
전달 가능
다음을 포함합니다.
모니터링::게시 가능
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb

개요

참고:

이 모듈의 메서드는 공개 API의 일부이지만 이러한 메서드가 이 모듈에서 정의되고 이 모듈을 포함하는 클래스에서 정의되지 않는다는 사실은 공개 API의 일부가 아닙니다.

이 클래스는 일반적인 연결 기능을 캡슐화합니다.

이후:

  • 2.0.0

직접 알려진 하위 클래스

Connection, PendingConnection

상수 요약 접기

DEFAULT_MAX_BSON_OBJECT_SIZE =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

서버의 hello 응답에 maxBsonObjectSize 필드가 포함되지 않은 경우 사용자 제공 문서가 직렬화될 때 차지할 수 있는 최대 허용 크기(바이트)입니다.

서버로 전송되는 명령은 이 크기를 MAX_BSON_COMMAND_OVERHEAD만큼 초과할 수 있습니다.

이후:

  • 2.0.0

16777216
MAX_BSON_COMMAND_OVERHEAD =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

명령 데이터에 허용되는 추가 오버헤드(예: 전체 명령을 BSON으로 직렬화할 때 사용자가 제공한 문서가 아니라 드라이버가 명령 문서에 추가한 필드).

이후:

  • 2.0.0

16384
REDUCED_MAX_BSON_SIZE =

이 상수는 비공개 API의 일부입니다. 이 상수는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이후:

  • 2.0.0

2097152

Loggable에서 포함된 상수

Loggable::prefix

인스턴스 속성 요약 접기

모니터링::게시 가능에 포함된 속성

#monitoring

ConnectionCommon에서 상속된 속성

#compressor, #pid

인스턴스 메서드 요약 접기

Monitoring::Publishable에 포함된 메서드

#publish_cmap_event, #publish_event, #publish_s담_event

Loggable에 포함된 메서드

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

ConnectionCommon에서 상속된 메서드

#connected?, #handShake_command, #handShake_document

인스턴스 속성 세부 정보

#descriptionServer::Description (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

참고:

아직 연결되지 않은 연결 객체(인증이 필요한 경우 핸드셰이크 및 인증됨)에는 설명이 없습니다. 핸드셰이킹 및 드라이버 인증은 전역 기본값을 사용해야 하지만, 특히 특정 연결의 속성이 동일한 주소로 이루어진 다른 연결의 속성과 동일하다고 가정하지 않아야 합니다(상대방의 서버가 종료되어 다른 서버 버전이 실행되었을 수 있습니다).

이 연결에서 수행된 핸드셰이크에 대한 hello 응답에서 파생된 이 연결에 대한 서버 설명을 반환합니다.

반환합니다:

이후:

  • 2.0.0



82
83
84
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 82

def description
  @description
end

#options해시 (읽기 전용)

옵션을 반환합니다.

반환합니다:

  • (해시)

    options 전달된 옵션입니다.

이후:

  • 2.0.0



53
54
55
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 53

def 옵션
  @options
end

#서버Mongo::Address (읽기 전용)

주소 연결할 주소를 반환합니다.

반환합니다:

이후:

  • 2.0.0



58
59
60
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 58

def 서버
  @server
end

인스턴스 메서드 세부 정보

#app_metadata객체

이후:

  • 2.0.0



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 107

def 
  @app_metadata ||= 시작
    동일 = true
    AppMetadata::AUTH_OPTION_KEYS. do ||
      만약 @server.옵션[] != 옵션[]
        동일 = 거짓
        휴식
      end
    end
    만약 동일
      @server.
    other
      AppMetadata.신규(옵션.merge(목적: @server..목적))
    end
  end
end

#dispatch(messages, context, options = {}) ⇒ Protocol::Message | nil

참고:

'send'는 모든 객체에 대한 핵심 Ruby 메서드이므로 이 메서드의 이름은 디스패치(dispatch)입니다.

참고:

이전 버전과의 호환성을 위해 이 메서드는 메시지를 배열로 허용합니다. 그러나 호출당 정확히 하나의 메시지가 제공되어야 합니다.

연결에 단일 메시지를 발송합니다. 메시지에 응답이 필요한 경우 회신이 반환됩니다.

예시:

메시지를 발송합니다.

connection.dispatch([ insert ])

매개변수:

  • 메시지 (Array<Message>)

    전달할 메시지가 포함된 요소를 1개 가진 배열입니다.

  • 컨텍스트 (Operation::Context)

    작업 컨텍스트입니다.

  • 옵션 (해시) (기본값: {})

옵션 해시(options):

  • :deserialize_as_bson (부울)

    가능한 경우 네이티브 Ruby 유형 대신 BSON 객체를 사용하여 이 메시지에 대한 응답을 역직렬화할지 여부입니다.

반환합니다:

다음을 발생시킵니다.

이후:

  • 2.0.0



150
151
152
153
154
155
156
157
158
159
160
161
162
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 150

def 디스패치(메시지, 컨텍스트, 옵션 = {})
  # 모니터링 코드가 여러 메시지를 올바르게 처리하지 못하거나,
  # 드라이버는 내부적으로 다음 위치에서 둘 이상의 메시지를 보내지 않습니다.
  # time ever. 따라서 지금은 여러 메시지 사용을 금지합니다.
  만약 메시지.분량 != 1
    올리다 ArgumentError, '한 번에 하나의 메시지만 발송할 수 있습니다.'
  end
  만약 description.알 수 없음?
    올리다 오류::Internal DriverError, "설명을 알 수 없는 연결에서는 메시지를 전달할 수 없습니다: #{description.검사}"
  end
  메시지 = 메시지.first
  전달(메시지, 컨텍스트, 옵션)
end

#세대정수 | nil

이 연결이 생성된 연결 풀 생성입니다. nil일 수 있습니다.

반환합니다:

  • (정수 | nil)

    연결 풀 생성.

이후:

  • 2.0.0



100
101
102
103
104
105
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 100

def 생성
  # 로드 밸런서에 대한 연결인 경우 @generation이 설정됩니다.
  # 핸드셰이크가 완료된 후. 다른 서버에 대한 연결인 경우
  # 유형, 연결 생성 중에 생성이 지정됩니다.
  @generation || 옵션[:generation]
end

#service_idnil | 객체

서비스 ID(있는 경우)를 반환합니다.

반환합니다:

  • (nil | 객체)

    서비스 ID(있는 경우)입니다.

이후:

  • 2.0.0



92
93
94
# 파일 'build/ruby-driver-v2.19/lib/mongo/server/connection_base.rb', 줄 92

def service_id
  description&.service_id
end