CHKOUT
Verrouiller un objet
En bref
La commande Verrouiller un objet (CHKOUT) permet de verrouiller un objet.
CHKOUT se lit CHK
(Vérifier) + OUT.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
CHKOUT OBJ(…)
Paramètres
Astuce : dans une session 5250, tapez CHKOUT puis F4 pour
l'invite de saisie, et F1 sur un paramètre pour son aide.
Aide IBM i de la commande
Texte du F1, IBM i 7.5 en français
(bibliothèque QSYS)
Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Non
La commande Verrouiller un objet (CHKOUT) permet de verrouiller un objet. L'objet est verrouillé sous le profil utilisateur associé à l'utilisateur en cours du travail exécutant la commande CHKOUT.
Lorsqu'un objet est verrouillé, les autres utilisateurs peuvent le lire ou le copier. Seul l'utilisateur qui l'a verrouillé peut le modifier tant qu'il n'est pas libéré (commande Libérer un objet (CHKIN)).
La commande CHKOUT permet également de libérer une arborescence de répertoires de façon à verrouiller le contenu du répertoire indiqué ainsi que le contenu de tous ses sous-répertoires. Si SUBTREE(*ALL) est précisé, la commande tente de verrouiller un maximum d'objets de la sous-arborescence. Un message de diagnostic est émis pour chaque objet qui ne peut pas être verrouillé. Une fois l'opération tentée sur tous les objets, un message d'arrêt programme est envoyé en cas d'erreur. Si tous les objets ont été verrouillés sans erreur, un message d'achèvement est émis.
En cas de détection d'un lien symbolique, que celui-ci apparaisse dans le paramètre Objet (OBJ) ou soit rencontré en cours de traitement d'une sous-arborescence, ce lien n'est pas suivi.
Pour plus d'informations sur les commandes du système de fichiers intégré, reportez-vous aux Rubriques Système de fichiers intégré de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
Restrictions :
- Seuls les documents de QDLS et les fichiers STREAM peuvent être verrouillés. Si SUBTREE(*ALL) est indiqué, l'opération de verrouillage n'est appliquée qu'aux seuls types d'objet pris en charge par la commande CHKOUT.
- Pour verrouiller un objet, l'utilisateur doit disposer du droit d'écriture (*W) sur tout objet à verrouiller.
- Pour verrouiller un objet, l'utilisateur doit au moins disposer du droit d'exécution (*X) sur les préfixes de répertoire dans le chemin d'accès.
- Lors du traitement d'une sous-arborescence, l'utilisateur doit disposer des droits de lecture (*R) et d'exécution (*X) sur le nom de chemin et sur tous les sous-répertoires de ce chemin.
- Tous les systèmes de fichiers n'acceptent pas la commande CHKOUT.
Objet (OBJ)
Indique le nom de l'objet à verrouiller ou un masque correspondant à plusieurs objets à verrouiller.
Il peut s'agir d'un nom simple ou d'un nom qualifié indiquant le nom du répertoire contenant l'objet. Vous pouvez indiquer un masque pour la dernière partie du nom. Un astérisque (*) correspond à un nombre quelconque de caractères, alors qu'un point d'interrogation (?) correspond à un caractère unique. Si le nom est qualifié ou contient un masque, il doit être placé entre apostrophes (').
Pour obtenir de plus amples informations relatives à la spécification des noms de chemin, reportez-vous à "Object naming rules" dans la rubrique Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
Remarque :Ce paramètre est compatible Unicode. Pour plus d'informations, reportez-vous à la section sur la prise en charge Unicode dans CL, dans les Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
Branche du répertoire (SUBTREE)
Indique si tous les objets figurant dans la sous-arborescence doivent être verrouillés ou non lorsque l'objet indiqué au paramètre Objet (OBJ) est un répertoire.
- *NONE
- Les objets désignés par le paramètre OBJ sont verrouillés.
- *ALL
- Les objets désignés par le paramètre OBJ sont verrouillés. Si l'objet est un répertoire, son contenu est verrouillé, de même que le contenu de tous ses sous-répertoires.
Remarque :Le filtrage du paramètre OBJ ne s'applique qu'aux objets de premier niveau. Si l'objet de premier niveau est un répertoire, le filtrage ne s'applique pas à son contenu, ni au contenu de ses sous-répertoires.
Une fois que la commande a commencé à traiter une branche d'un répertoire spécifique, les objets localisés et traités peuvent être affectés par les opérations qui mettent à jour l'organisation des objets dans l'arborescence de répertoire spécifiée. Cela inclut, sans caractère limitatif, les éléments suivants :
- Ajout, suppression ou nouvelle dénomination des liens d'objet
- Montage ou démontage des systèmes de fichiers
- Mise à jour du répertoire racine effectif pour le processus qui appelle la commande
- Mise à jour du contenu d'un lien symbolique
Pour traiter la branche du répertoire, le code du système peut augmenter le nombre maximal de descripteurs de fichier, dans la portée du processus, qui peuvent être ouverts lors du traitement. Cette opération est effectuée afin que la commande ne soit pas susceptible d'échouer en raison d'un manque de descripteurs. Cette valeur maximale de portée de processus n'est pas réinitialisée à la fin de la commande.
Exemples
Les exemples suivants s'appuient sur l'arborescence représentée ci-dessous :
---- rép2
/
/--rép1 ------- rép3
ç ç ç
ç ç -- obj1
ç ç
ç -- rép4 -- rép5 -- rép6
ç ç
-- obj3 -- obj2
obj4
Exemple 1 : Verrouillage d'un objet
CHKOUT OBJ('/rép1/obj4')
Cette commande verrouille l'objet obj4 du répertoire rép1. L'objet est verrouillé au niveau de l'utilisateur en cours pour le travail exécutant cette commande.
Exemple 2 : Verrouillage d'objets avec traitement des sous-arborescences
CHKOUT OBJ('/rép1') SUBTREE(*ALL)
Cette commande verrouille tous les objets possibles du répertoire rép1, de même que tous les objets contenus dans ses sous-répertoires. Dans cet exemple, les objets obj1, obj2, obj3 et obj4 vont être verrouillés.
Exemple 3 : Verrouillage d'un groupe d'objets
CHKOUT OBJ('/rép1/obj*') SUBTREE(*NONE)
Dans cet exemple, les objets obj3 et obj4 vont être verrouillés.
Exemple 4 : Verrouillage d'un groupe d'objets avec traitement des sous-arborescences
CHKOUT OBJ('/rép1/rep*') SUBTREE(*ALL)
Dans cet exemple, les objets obj1 et obj2 vont être verrouillés.
Messages d'erreur
Messages *ESCAPE
- CPFA09C
- Aucun droit sur l'objet. L'objet est &1.
- CPFA09D
- Erreur dans le programme &1.
- CPFA09E
- L'objet est en cours d'utilisation. L'objet est &1.
- CPFA0A1
- Erreur d'entrée ou de sortie.
- CPFA0A3
- La résolution du nom de chemin provoque une boucle.
- CPFA0A7
- Le nom de chemin est trop long.
- CPFA0A9
- Objet introuvable. L'objet est &1.
- CPFA0AA
- Une erreur s'est produite pendant l'allocation d'espace.
- CPFA0AB
- Erreur d'opération pour l'objet. L'objet est &1.
- CPFA0AD
- Fonction non acceptée par le système de fichiers.
- CPFA0B2
- Aucun objet ne correspond à la demande.
- CPFA0BF
- &3 objets verrouillés. &4 objets en échec.
- CPFA0DA
- L'objet est un répertoire. L'objet est &1.
- CPFA1C5
- Cet objet est en lecture seule. L'objet est &1.
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.