Sommaire

Les Sessionsessions

Transactions et sessions sont très fortement couplées comme vous avez pu le constater sur le code précédent : une transaction est exécutée dans le cadre d’une session, qui elle ne peut avoir plus d’une transaction ouverte simultanément. L’interruption d’une session, souhaitée ou non, conduit à l’annulation de toute transaction en cours sur celle-ci.

Voyons les différentes parties liées à la session. Tout d’abord sa création depuis la connexion en cours à la base de données (méthode getMongo()) :

var session = db.getMongo().startSession();

Ensuite, le démarrage d’une transaction liée à cette session nouvellement créée :

session.startTransaction();

Notre transaction est ensuite validée ou bien interrompue. Pour la valider, il faut utiliser commitTransaction comme ceci :

session.commitTransaction()

Pour interrompre une transaction et donc ne réaliser aucune des opérations qui s’y trouvaient, il faut utiliser abortTransaction :

session.abortTransaction()

Enfin, il faut fermer la session, quel qu’ait pu être le destin de notre transaction :

session.endSession()

Depuis la session, nous avons également pu récupérer des liens vers nos collections et les stocker dans des variables, le tout à l’aide de la méthode getDatabase :

var concerts = session.getDatabase(’test’).concerts;  ...