Overview
Las sesiones de servidor de MongoDB, o sesiones lógicas, son el marco subyacente que utilizan las sesiones de cliente para respaldar Coherencia causaly 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 3.6, los controladores de MongoDB asocian todas las operaciones con una sesión de servidor, excepto las escrituras no confirmadas. Las siguientes opciones están disponibles para todos los comandos que admiten 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 al comando. Si se especifica |
| entero de 64 bits | Un número no negativo estrictamente creciente que identifica de forma ú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 |
|---|---|---|
| Matriz de enteros de 32bits | 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 se pueden utilizar para enumerar, administrar y eliminar sesiones de servidor en todos los clústeres de MongoDB:
Comandos | Descripciones |
|---|---|
Caduca las sesiones de servidor especificadas. | |
Mata todas las sesiones del servidor. | |
Mata todas las sesiones de servidor que coincidan con el patrón especificado. | |
Mata sesiones de servidor especificadas. | |
Actualiza las sesiones del servidor inactivas. | |
Inicia una nueva sesión de servidor. |
Sesiones y control de acceso
Si la implementación exige autenticación/autorización, el usuario debe estar autenticado para iniciar una sesión, y solo ese usuario puede usarla.
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 exige autenticación/autorización, la sesión creada no tendrá propietario y cualquier usuario podrá usarla en cualquier conexión. Si un usuario se autentica y crea una sesión para una implementación que no exige autenticación/autorización, dicho usuario será el propietario de la sesión. Sin embargo, cualquier usuario en cualquier conexión podrá usarla.
Si la implementación pasa a autenticación sin ningún tiempo de inactividad, no se podrá utilizar ninguna sesión sin propietario.