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
Comment accélérer la transformation des environnements de travail ?
Dans un monde professionnel en pleine mutation, la mobilité, l’efficacité énergétique, la sécurité et l’intelligence embarquée sont devenues des critères décisifs pour les équipements informatiques. Découvrez comment les nouveaux PC Microsoft Surface dotés des processeurs Snapdragon X Series s’imposent comme une réponse stratégique aux nouveaux enjeux IT.
Les articles les plus consultés
- Une baie de stockage c’est quoi ?
- Activer la mise en veille prolongée dans Windows 10
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Cybersécurité Active Directory et les attaques de nouvelle génération
Les plus consultés sur iTPro.fr
- Dans l’œil du cyber-cyclone : l’excès d’optimisme constitue le risque principal pour la résilience des données
- Les 3 prédictions 2026 pour Java
- Infrastructures IT : 5 leviers concrets pour éviter les impasses technologiques
- Top 6 des priorités des DSI en 2026
Articles les + lus
CES 2026 : l’IA physique et la robotique redéfinissent le futur
Les 3 prédictions 2026 pour Java
Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
Face à l’urgence écologique, l’IT doit faire sa révolution
D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
À la une de la chaîne Tech
- CES 2026 : l’IA physique et la robotique redéfinissent le futur
- Les 3 prédictions 2026 pour Java
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- Face à l’urgence écologique, l’IT doit faire sa révolution
- D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
