Overview
Las sesiones del servidor de MongoDB, o sesiones lógicas, son la estructura subyacente utilizada por las sesiones de cliente para proporcionar soporte coherencia causal y escrituras reintentables.
Importante
Las aplicaciones utilizan sesiones de cliente para interactuar con sesiones de servidor.
Las sesiones de servidor solo están disponibles para conjuntos de réplicas y clústeres fragmentados.
Opciones de comando
A partir de la versión 3.6, los drivers de MongoDB asocian todas las operaciones con una sesión del servidor, con excepción de los guardados no confirmados. Las siguientes opciones están disponibles para todos los comandos para soportar la asociación con una sesión de servidor:
Importante
mongosh y los controladores asignan estas opciones a los comandos en la sesión.
Opción | Tipo | Descripción |
|---|---|---|
| Documento | El documento que especifica el ID único de la sesión asociada con el comando. Si se especifica el |
| entero de 64 bits | Un número estrictamente creciente y no negativo que identifica de manera única el comando en la sesión del comando. Si se especifica, el comando también debe incluir la opción |
Para los comandos,delete inserty que toman una matriz de declaraciones, la siguiente opción también está disponible:update
Importante
No configure manualmente stmtIds. MongoDB configura stmtIds para que sea un número no negativo estrictamente creciente.
Opción | Tipo | Descripción |
|---|---|---|
| Arreglo de enteros de 32 bits | Arreglo de números que identifican de manera única sus respectivas operaciones de escritura dentro del comando de escritura. |
Comandos de sesiones
Los siguientes comandos pueden utilizarse para listar, gestionar y finalizar las sesiones del servidor en todos los clústeres de MongoDB:
Comandos | Descripciones |
|---|---|
Expira las sesiones de servidor especificadas. | |
Termina todas las sesiones del servidor. | |
Mata todas las sesiones de servidor que coincidan con el patrón especificado. | |
Elimina las sesiones del servidor especificadas. | |
Actualiza las sesiones del servidor inactivas. | |
Inicia una nueva sesión de servidor. |
Sesiones y control de acceso
Si la implementación aplica autenticación/autorización, el usuario debe estar autenticado para iniciar una sesión y solo ese usuario puede usar la sesión.
Para usar sesiones de cliente y garantías de coherencia causal con usuarios de autenticación $external (usuarios Kerberos, LDAP o X.509), los nombres de usuario no pueden superar los 10k bytes.
Si la implementación no aplica la autenticación/autorización, una sesión creada no tiene propietario y puede ser utilizada por cualquier usuario en cualquier conexión. Si un usuario se autentica y crea una sesión para una implementación que no requiere autenticación/autorización, ese usuario es el propietario de la sesión. Sin embargo, cualquier usuario en cualquier conexión puede usar la sesión.
Si la implementación pasa a autenticación sin ningún tiempo de inactividad, no se pueden usar las sesiones sin propietario.