Clase: Mongo::servidor::ConnectionBase

Hereda:
Conexión común Mostrar todo
Ampliado por:
Reenviable
Incluye:
Monitoreo::Publicable
Definido en:
lib/mongo/servidor/connection_base.rb

Overview

Nota:

Aunque los métodos de este módulo son parte de la API pública, el hecho de que estos métodos estén definidos en este módulo y no en las clases que incluyen este módulo no es parte de la API pública.

Esta clase encapsula la funcionalidad de conexión común.

Desde:

  • 2.0.0

Subclases conocidas directas

Conexión, Conexión pendiente

Colapso delresumen constante

TAMAÑO MÁXIMO DE OBJETO BSON PREDETERMINADO =

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 tamaño máximo permitido en bytes que puede ocupar un documento proporcionado por el usuario cuando se serializa, si la respuesta de saludo del servidor no incluye el campo maxBsonObjectSize.

Los comandos que se envían al servidor pueden superar este tamaño en MAX_BSON_COMMAND_OVERHEAD.

Desde:

  • 2.0.0

16777216
MAX_BSON_COMANDO_OVERHEAD =

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.

La sobrecarga adicional permitida para los datos de comando (es decir, campos agregados al documento de comando por el controlador, a diferencia de los documentos proporcionados por el usuario) al serializar un comando completo a BSON.

Desde:

  • 2.0.0

16384
REDUCED_MAX_BSON_SIZE =

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.

Desde:

  • 2.0.0

2097152

Constantes incluidas desde Loggable

Registrable::PREFIX

Colapso delresumen de atributos de instancia

Atributos incluidos de Monitoring::Publishable

#monitoring

Atributos heredados de ConnectionCommon

#compressor, #pid

Colapso del resumen del método de instancia

Métodos incluidos en Monitoring::Publishable

#publicar_evento_cmap, #publicar_evento, #publicar_evento_sdam

Métodos incluidos en Loggable

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

Métodos heredados de ConnectionCommon

#conectado?, #comando_de_apretón_de_manos, #documento_de_apretón_de_manos

Detalles de los atributos de instancia

#descripciónServidor::Descripción (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.

Nota:

Un objeto de conexión que aún no se ha conectado (realizado el enlace y autenticado, si se requiere autenticación) no tiene descripción. Mientras se establece la conexión y se realiza la autenticación, el driver debe utilizar los valores por defecto globales, en particular, no asumir que las propiedades de una conexión en particular son las mismas que las propiedades de otras conexiones realizadas a la misma dirección (ya que el servidor en el otro extremo podría haber sido apagado y podría haberse lanzado una versión diferente del servidor).

Devuelve la descripción del servidor para esta conexión, derivada de la respuesta de saludo para el protocolo de enlace realizado en esta conexión.

Devuelve:

  • (Servidor::Descripción)

    Descripción del servidor para esta conexión.

Desde:

  • 2.0.0



82
83
84
# Archivo 'lib/mongo/server/connection_base.rb', línea 82

def Descripción
  @descripción
end

#opcionesHash (solo lectura)

Devuelve opciones Las opciones pasadas.

Devuelve:

  • (Hash)

    opciones Las opciones pasadas.

Desde:

  • 2.0.0



53
54
55
# Archivo 'lib/mongo/server/connection_base.rb', línea 53

def opciones
  @opciones
end

#servidorMongo::Address (solo lectura)

Dirección de retorno La dirección a la que conectarse.

Devuelve:

Desde:

  • 2.0.0



58
59
60
# Archivo 'lib/mongo/server/connection_base.rb', línea 58

def Server
  @server
end

Detalles del método de instancia

#app_metadataObject

Desde:

  • 2.0.0



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Archivo 'lib/mongo/server/connection_base.rb', línea 107

def 
  @app_metadata ||= begin
    mismo = true
    Metadatos de la aplicación::CLAVES DE OPCIÓN DE AUTORIZACIÓN.cada hacer |clave|
      Si @server.opciones[clave] != opciones[clave]
        mismo = false
        break
      end
    end
    Si mismo
      @server.
    else
      Metadatos de la aplicación.Nuevo(opciones.unir(objetivo: @server..propósito))
    end
  end
end

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

Nota:

Este método se llama dispatch ya que 'send' es un método central de Ruby en todos los objetos.

Nota:

Para compatibilidad retroactiva, este método acepta los mensajes en un arreglo. Sin embargo, debe proporcionarse exactamente un mensaje por invocación.

Envía un solo mensaje a la conexión. Si el mensaje requiere respuesta, se devolverá una.

Ejemplos:

Envía el mensaje.

connection.dispatch([ insert ])

Parámetros:

  • mensajes (Matriz<Message>)

    Una matriz de un elemento que contiene el mensaje a enviar.

  • context (operación::Context)

    El contexto de la operación.

  • opciones (Hash) (predeterminado: {})

Opciones Hash(opciones):

  • :deserializar_como_bson (Booleano)

    Si se debe deserializar la respuesta a este mensaje utilizando objetos BSON en lugar de tipos nativos de Ruby siempre que sea posible.

Devuelve:

Aumentos:

Desde:

  • 2.0.0



150
151
152
153
154
155
156
157
158
159
160
161
162
# Archivo 'lib/mongo/server/connection_base.rb', línea 150

def despacho(mensajes, context, opciones = {})
  # El código de monitoreo no maneja correctamente múltiples mensajes,
  # y el driver, internamente, no envía más de un mensaje a la vez.
  # una vez más. Por lo tanto, se prohíbe el uso de mensajes múltiples por ahora.
  Si mensajes.longitud != 1
    propagar ArgumentError, 'Solo se puede enviar un mensaje a la vez'
  end
  Si Descripción.¿desconocido?
    propagar Error::InternalDriverError, "Nose puede enviar un mensaje en una conexión con descripción desconocida: #{description.inspect}"
  end
  Mensaje = mensajes.primera
  entregar(Mensaje, context, opciones)
end

#generaciónEntero | nulo

Generación del grupo de conexiones desde el que se creó esta conexión. Puede ser nula.

Devuelve:

  • (Integer | nil)

    Generación de pool de conexiones.

Desde:

  • 2.0.0



100
101
102
103
104
105
# Archivo 'lib/mongo/server/connection_base.rb', línea 100

def generación
  # Si la conexión es a un balanceador de carga, se establece @generation
  # después de completar el protocolo de enlace. Si la conexión es a otro servidor
  # tipo, la generación se especifica durante la creación de la conexión.
  @generación || opciones[:generación]
end

#service_idnil | objeto

Devuelve el ID del servicio, si lo hay.

Devuelve:

  • (nil | Objeto)

    El identificador del servicio, si lo hay.

Desde:

  • 2.0.0



92
93
94
# Archivo 'lib/mongo/server/connection_base.rb', línea 92

def id_de_servicio
  Descripción&.id_de_servicio
end