Aller au contenu

CHKIN

Libérer un objet

En bref

La commande Libérer un objet (CHKIN) libère un objet verrouillé.

CHKIN se lit CHK (Vérifier) + IN. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

CHKIN OBJ(…)

Paramètres

  • OBJ Objet obligatoire
  • SUBTREE Branche du répertoire

Astuce : dans une session 5250, tapez CHKIN 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 Libérer un objet (CHKIN) libère un objet verrouillé.

La commande CHKIN permet également de libérer une arborescence de répertoires de façon à libérer 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 libérer un maximum d'objets de la sous-arborescence. Un message de diagnostic est émis pour chaque objet qui ne peut pas être libéré. 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é libéré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 libérés. Si SUBTREE(*ALL) est indiqué, l'opération de libération n'est appliquée qu'aux seuls types d'objet pris en charge par la commande CHKIN.
  • Pour libérer un objet qu'il a verrouillé, l'utilisateur doit disposer du droit d'écriture (*W) sur tout objet à libérer.
  • Pour libérer un objet verrouillé par un autre utilisateur, l'utilisateur doit posséder cet objet ou disposer de l'un des droits suivants :
    • droits *ALL sur l'objet,
    • droit spécial *ALLOBJ.
  • L'utilisateur doit disposer du droit d'exécution (*X) sur chacun des répertoires du chemin.
  • 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 CHKIN.

Paramètres

Mot-clé Description Valeurs possibles Remarques
OBJ Objet Chemin d'accès Obligatoire, positionnel 1
SUBTREE Branche du répertoire *NONE, *ALL Facultatif

Objet (OBJ)

Indique le nom de chemin de l'objet à libérer ou un masque correspondant à plusieurs objets.

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 libéré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 libérés.
*ALL
Les objets désignés par le paramètre OBJ sont libérés. Si l'objet est un répertoire, son contenu est libéré, 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 : Libération d'un objet sans traitement des sous-arborescences

CHKIN   OBJ('/rép1/obj4')  SUBTREE(*NONE)

Cette commande libère l'objet obj4 dans le répertoire rép1.

Exemple 2 : Libération de fichiers d'un répertoire avec traitement des sous-arborescences

CHKIN   OBJ('/rép1')  SUBTREE(*ALL)

Cette commande libère 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 libérés.

Exemple 3 : Libération d'un groupe d'objets

CHKIN   OBJ('/rép1/obj*')  SUBTREE(*NONE)

Dans cet exemple, les objets obj3 et obj4 vont être libérés.

Exemple 4 : Libération d'un groupe d'objets avec traitement des sous-arborescences

CHKIN   OBJ('/rép1/rép*')  SUBTREE(*ALL)

Dans cet exemple, les objets obj1 et obj2 vont être libérés.

Messages d'erreur

Messages *ESCAPE

CPFA09C
Aucun droit sur l'objet. L'objet est &1.
CPFA09D
Erreur dans le programme &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.
CPFA0BE
&3 objets libérés. &4 objets en échec.
CPFA0DA
L'objet est un répertoire. L'objet est &1.

© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.