Support pour les sessions basées sur des scripts Gremlin - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Support pour les sessions basées sur des scripts Gremlin

Vous pouvez utiliser des sessions Gremlin avec des transactions implicites dans Amazon Neptune. Pour de plus amples informations sur les sessions Gremlin, veuillez consulterExamen des sessionschez les Apache TinkerPop . Les sections ci-dessous décrivent comment utiliser les sessions Gremlin avec Java.

Note

Cette fonction est disponible à partir deVersion 1.0.1.0.200463.0 du moteur Neptune.

Démarrage parVersion 1.1.1.0 du moteur Neptuneet TinkerPop version 3.5.2, vous pouvez également utiliserTransactions Gremlin.

Important

Actuellement, la durée maximale pendant laquelle Neptune peut maintenir ouverte une session basée sur des scripts est de 10 minutes. Si vous ne fermez pas votre session avant cela, la session expire et tout ce qu'elle contient est annulé.

Sessions Gremlin sur la console Gremlin

Si vous créez une connexion à distance sur la console Gremlin sans le paramètre session, la connexion à distance est créée en mode sans session. Dans ce mode, chaque demande envoyée au serveur est traitée comme une transaction complète en elle-même, et aucun état n'est enregistré entre les demandes. Si une demande échoue, seule cette demande est annulée.

Si vous créez une connexion à distance quifaireUtiliser lesessionparamètre, vous créez une session basée sur un script qui dure jusqu'à ce que vous fermiez la connexion à distance. Chaque session est identifiée par un UUID unique que la console génère et renvoie.

Voici un exemple d'appel de console qui crée une session. Une fois les requêtes soumises, un autre appel ferme la session et valide les requêtes.

gremlin> :remote connect tinkerpop.server conf/neptune-remote.yaml session . . . . . . gremlin> :remote close

Pour plus d'informations et d'exemples, consultezSessionsdans le TinkerPop .

Toutes les requêtes que vous exécutez au cours d'une session forment une seule transaction qui n'est pas validée tant que toutes les requêtes n'ont pas abouti et que vous n'avez pas fermé la connexion à distance. Si une requête échoue, ou si vous ne fermez pas la connexion pendant la durée de vie de session maximale prise en charge par Neptune, la transaction de session n'est pas validée et toutes les requêtes qu'elle contient sont annulées.

Sessions Gremlin dans la variante du langage Gremlin

Dans la variante du langage Gremlin (GLV), vous devez créer un objet SessionedClient pour émettre plusieurs requêtes en une seule transaction, comme dans l'exemple suivant.

Cluster cluster = Cluster.open(); // line 1 Client client = cluster.connect("sessionName"); // line 2 . . . . . . client.close( );

La ligne 2 de l'exemple précédent crée l'objet SessionedClient selon les options de configuration définies pour le cluster en question. La chaîne sessionName que vous transférez à la méthode de connexion devient le nom unique de la session. Pour éviter les collisions, utilisez un UUID pour le nom.

Le client démarre une transaction de session lorsqu'il est initialisé. Toutes les requêtes que vous exécutez au cours du formulaire de session ne sont validées que lorsque vous appelez client.close( ). Encore une fois, si une seule requête échoue, ou si vous ne fermez pas la connexion pendant la durée de vie de session maximale prise en charge par Neptune, la transaction de session échoue et toutes les requêtes qu'elle contient sont annulées.