Clase: Mongo::servidor::ConnectionBase

Hereda:
ConnectionCommon Mostrar todo
Ampliado por:
Reenviable
Incluye:
Supervisión::Publishable
Definido en:
lib/mongo/servidor/connection_base.rb

Overview

Nota:

Aunque los métodos de este módulo forman 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 forma 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, PendingConnection

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 un documento proporcionado por el usuario puede ocupar al serializarse, si la respuesta de hola del servidor no incluye el campo maxBsonObjectSize.

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

Desde:

  • 2.0.0

16777216
MAX_BSON_COMMAND_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, en contraposición a 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

Resumen de atributos de la instancia colapsar

Atributos incluidos de supervisión::Publishable

#monitoring

Atributos heredados de ConnectionCommon

#compressor, #pid

Resumen del método de instancia colapsar

Métodos incluidos en Monitoring::Publishable

#publicar_evento_cmap, #publicar_evento, #publicar_evento_sdam

Métodos incluidos desde Registrable

#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ónServer::Description (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:

  • (encriptada)

    opciones Las opciones introducidas.

Desde:

  • 2.0.0



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

def opciones
  @options
end

#servidorMongo::Address (solo lectura)

Dirección de devoluciones 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
    igual = true
    Metadatos de la aplicación::AUTH_OPTION_KEYS.cada hacer |llave|
      si @server.opciones[llave] != opciones[llave]
        igual = false
        break
      end
    end
    si igual
      @server.
    else
      Metadatos de la aplicación.Nuevo(opciones.fusionar(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.

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

Ejemplos:

Envía el mensaje.

connection.dispatch([ insert ])

Parámetros:

  • mensajes (arreglo<Message>)

    Un arreglo de un solo elemento que contiene el mensaje por enviar.

  • context (operación::Context)

    El contexto de la operación.

  • opciones (Hash) (por defecto a: {})

Opciones Hash (options):

  • :deserialize_as_bson (booleano)

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

Devuelve:

Aumenta:

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 enviar(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.
  # nunca. Por lo tanto, prohíbe el uso de múltiples mensajes 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, "No se puede enviar un mensaje en una conexión con una descripción desconocida: #{description.inspect}"
  end
  mensaje = mensajes.primero
  entregar(mensaje, context, opciones)
end

#generaciónEntero | nulo

Generación del pool de conexiones a partir del cual se creó esta conexión. Puede ser nulo.

Devuelve:

  • (Integer | nil)

    Generación del 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 que se complete el apretón de manos. Si la conexión es a otro servidor
  # el 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 service_id
  Descripción&.service_id
end