Pour utiliser le contrôle de commitment, commencez par définir l’environnement adéquat par l’une des méthodes suivantes, selon l’environnement et selon que votre application utilise SQL ou RLA:
• Exécuter une commande CL i5/OS Start Commitment Control (StrCmt Ctl).
• Spécifier le paramètre Commit approprié sur la commande
Utiliser le contrôle de commitment
CrtSqlXxx, StrSql, ou RunSqlStm
• Coder une directive de précompilateur Set Option Commit ou une instruction exécutable Set Transaction Isolation Level dans un programme en langage évolué (HLL, high level language) qui contient du SQL imbriqué.
• Spécifier une clause With isolation-level sur une instruction SQL Select, Insert, Update, Delete ou Declare Cursor.
• Définir la propriété « transaction isolation » quand vous utilisez le driver DB2Driver (natif) ou AS400JDBC Driver (boîte à outils) pour vous connecter à l’i5.
• Définir la propriété CommitMode quand vous vous connectez via ODBC.
Pour des environnements non recensés ci-dessus, recherchez une propriété ou une option avec « commit » ou « transaction » dans le nom de propriété ou le label d’option.
Dans tous les cas ci-dessus, vous devez spécifier un niveau d’isolation (isolation level) (appelé aussi « niveau de verrouillage de commit »). Tout niveau d’isolation autre que No Commit ou None commence un environnement de contrôle de commitment, si un environnement approprié n’existe pas déjà. J’expliquerai plus loin les différents niveaux d’isolation, mais voyons d’abord d’un peu plus près comment établir un environnement de contrôle de commitment.
Pour une application HLL qui n’utilise que RLA, le moyen le plus simple consiste à utiliser la commande StrCmtCtl pour établir l’environnement et une commande End Commitment Control (EndCmtCtl) pour le terminer. Il ne doit y avoir aucune transaction « uncommitted » quand vous terminez l’environnement (ou job).
Pour des programmes HLL avec du SQL imbriqué, il n’est pas nécessaire d’exécuter une commande StrCmtCtl, bien que ce soit possible. Il existe plusieurs autres solutions. Le fait de spécifier une valeur autre que *None pour le paramètre Commit sur la commande CrtSqlXxx ou la directive de précompilateur Set Option Commit, amène le programme compilé à s’exécuter sous un environnement de contrôle de commitment et à commencer un nouvel environnement si nécessaire. Il faut coder l’instruction Set Option avant toute autre instruction HLL ou SQL.
Vous pouvez aussi utiliser l’instruction SQL Set Transaction pour établir (ou terminer) un environnement de contrôle de commitment et/ou pour changer le niveau d’isolation pendant l’exécution du programme. L’instruction a la syntaxe
Set Transaction Isolation Level isolation-level
Si un programme exécute une instruction Set Transaction Isolation Level None, il met fin au contrôle de commitment. L’instruction Set Transaction Isolation Level appelle quelques autres considérations.
Pour des programmes triggers
• L’instruction Set Isolation Level peut être utilisée n’importe où, mais il faut normalement l’exécuter au début du programme trigger.
• Le niveau d’isolation spécifié ne dure que jusqu’à la prochaine instruction Commit ou Rollback ou jusqu’à ce que le programme trigger retourne.
Pour des programmes non triggers
• L’instruction Set Isolation Level ne peut être exécutée qu’au début d’une transaction.
• Le niveau d’isolation spécifié ne dure que jusqu’à la prochaine transaction (par exemple l’instruction Commit ou Rollback suivante).
Pour changer dynamiquement le niveau d’isolation d’une instruction individuelle, vous pouvez spécifier une clause With isolation-level sur les instructions Select, Insert, Update et Delete, comme dans l’exemple suivant :
Update Customer Set Discount = Discount + 0.001 Where Discount Is Not Null With CS
Le niveau d’isolation appliqué à une instruction individuelle ne survit pas à celle-ci. Ce niveau s’applique indépendamment de toute valeur spécifiée sur le paramètre Commit d’une commande, une instruction Set Option Commit, ou une instruction Set Transaction Isolation Level.
Vous pouvez aussi utiliser une clause With isolation-level sur une instruction Declare Cursor, et le niveau d’isolation ne s’applique qu’aux tables atteintes via le curseur et dure pendant que les tables sont ouvertes. Déterminer quel environnement de contrôle de commitment est utilisé Un journal peut avoir plusieurs environnements de contrôle de commitment, dont
• Un environnement de contrôle de commitment job-level
• Un environnement de contrôle de commitment activation group-level pour chaque groupe d’activation • des environnements de contrôle de commitment nommés explicitement
• des environnements de contrôle de commitment limités à certaines transactions
Téléchargez cette ressource
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Baromètre channel IT : fin du cuivre, essor de UCaaS et premiers pas vers l’IA
- Fraude par identité synthétique : comment l’IA peut redonner confiance aux entreprises et à leurs clients
- VirtualBrowser protège la navigation web à la source
- Innovation et performance : le rôle clé du consulting dans la transformation numérique
Articles les + lus
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
À la une de la chaîne Tech
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
- DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
