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
![Utiliser le contrôle de commitment Utiliser le contrôle de commitment](https://www.itpro.fr/wp-content/uploads/2016/06/a30f46add9cb5b1af550ee3d9ccdc847.png)
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 lutter contre le Phishing ?](https://www.itpro.fr/wp-content/uploads/2024/07/Special-Report-Eviden-Securite-Phishing-Juillet-2024.png)
Comment lutter contre le Phishing ?
Dans un environnement cyber en constante mutation, le phishing évolue vers des attaques toujours plus sophistiquées combinant IA, automatisation et industrialisation. Une réalité complexe qui exige des mesures de sécurité avancées et repensées au-delà de l’authentification multifacteur. Découvrez les réponses technologiques préconisées par les experts Eviden et les perspectives associées à leur mise en œuvre.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Stimuler l’innovation durable grâce à la transformation numérique et aux principes ESG
- Retour au bureau avec Copilot M365
- Les entreprises optent pour des solutions durables
- Le rôle clé du no-code/low-code dans la transformation numérique
- Le rôle de l’intelligence Artificielle dans le Cloud Computing
![Revue Smart DSI](https://www.itpro.fr/wp-content/uploads/2024/07/SMART-DSI-Numero-34-Juin-2024.jpg)