Partager via


TransactionalBatchRequestOptions.SessionToken Propriété

Définition

Obtient ou définit le jeton à utiliser avec la cohérence de session dans le service Azure Cosmos DB.

public string SessionToken { get; set; }
member this.SessionToken : string with get, set
Public Property SessionToken As String

Valeur de propriété

Jeton à utiliser avec la cohérence de session.

Remarques

L’un des ConsistencyLevel pour Azure Cosmos DB est Session. En fait, il s’agit du niveau par défaut appliqué aux comptes.

Lors de l’utilisation de la cohérence de session, chaque demande de lot avec une opération d’écriture dans Azure Cosmos DB se voit attribuer un nouveau SessionToken. CosmosClient utilise ce jeton en interne avec chaque requête de lecture/requête/traitement par lot pour garantir que le niveau de cohérence défini est maintenu.

Dans certains scénarios, vous devez gérer cette session vous-même ; Prenons l’exemple d’une application web avec plusieurs nœuds, chaque nœud aura ses propres instance de CosmosClient Si vous souhaitez que ces nœuds participent à la même session (pour pouvoir lire vos propres écritures de manière cohérente entre les niveaux web), vous devez envoyer sessionToken de TransactionalBatchResponse l’action d’écriture sur un nœud au niveau client, à l’aide d’un cookie ou d’un autre mécanisme, et que ce jeton revient à la couche Web pour les lectures suivantes. Si vous utilisez un équilibreur de charge de tourniquet (round robin) qui ne conserve pas l’affinité de session entre les requêtes, tel qu’Azure Load Balancer, la lecture peut s’effectuer sur un nœud différent de la requête d’écriture, où la session a été créée.

Si vous ne transmettez pas le SessionToken Azure Cosmos DB dans le cadre de la description ci-dessus, vous risquez de vous retrouver avec des résultats de lecture incohérents pendant une période donnée.

https://docs.microsoft.com/azure/cosmos-db/consistency-levels

S’applique à