Transactions Commencez à journaliser le fichier physique avant d'exécuter le test.
STRJRNPF FILE(MYLIB/MEMBER MYLIB/MEMBER2) JRN(MYLIB/JRN) IMAGES(*BOTH)
SQLtransactions.js
//Exemple d'engagement
app.get("/tranCommit", function (req, res, next) {
pool.transaction(function (tran) {
var Id = 110;
return tran.update("insert into member (ID,LNAME,FNAME,PROF,TOKUTEN) VALUES(?,?,?,?,?)",
[Id, "Tokugawa","Lignée familiale",'4e génération', 4]).then(function () {
return tran.update("insert into member2 (ID,LNAME,FNAME,PROF,TENSU) VALUES(?,?,?,?,?)",
[Id, "Tokugawa","Lignée familiale",'4e génération', 4]);
});
});
res.send('end');
});
//Un exemple de retour en arrière. membre2.Définir les caractères dans TENSU
app.get("/tranRollback", function (req, res, next) {
pool.transaction(function (tran) {
var Id = 111;
return tran.update("insert into member (ID,LNAME,FNAME,PROF,TOKUTEN) VALUES(?,?,?,?,?)",
[Id, "Tokugawa","Tsunayoshi",'5e génération', 5]).then(function () {
return tran.update("insert into member2 (ID,LNAME,FNAME,PROF,TENSU) VALUES(?,?,?,?,?)",
[Id, "Tokugawa","Tsunayoshi",'5e génération', 'a']);
});
});
res.send('end');
});
L'exécution de / tranCommit ajoutera correctement des enregistrements à chaque fichier physique. Lors de l'exécution de / tranRollback, une erreur s'est produite dans l'instruction d'insertion pour membre2 et aucun enregistrement n'a été ajouté au membre.
Recommended Posts