Aller au contenu

ALCOBJ

Allouer un objet

En bref

La commande ALCOBJ (Allouer un objet) permet de réserver, dans un travail ou une unité d'exécution, un objet ou une liste d'objets pour un usage ultérieur dans ce travail ou dans l'unité d'exécution.

ALCOBJ se lit ALC (Allouer) + OBJ. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

ALCOBJ OBJ(…)

Paramètres

  • OBJ Spécifications d'objet obligatoire
  • WAIT Temps d'attente
  • SCOPE Portée du verrouillage
  • CONFLICT Action conflit verrouillage
  • MIRROR Protection par disque miroir

Astuce : dans une session 5250, tapez ALCOBJ 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 : Sous conditions

La commande ALCOBJ (Allouer un objet) permet de réserver, dans un travail ou une unité d'exécution, un objet ou une liste d'objets pour un usage ultérieur dans ce travail ou dans l'unité d'exécution. Lorsque le travail demande l'utilisation d'un objet qui n'a pas été indiqué dans la commande ALCOBJ, cet objet est automatiquement alloué dès qu'il est utilisé.

Les objets peuvent être désalloués au moyen de la commande DLCOBJ (Désallouer un objet). Les verrouillages travail et les verrouillages unité d'exécution alloués sont libérés automatiquement respectivement à la fin du travail ou de l'unité d'exécution. Si un verrouillage travail est apposé à une unité d'exécution, il est maintenu par le travail après l'arrêt de l'unité d'exécution qui a émis la demande. Les verrouillages espace de verrouillage ne sont pas automatiquement libérés.

La commande DLCOBJ ne doit pas être émise pour un objet qui n'a pas été explicitement alloué par la commande ALCOBJ. Si la commande DLCOBJ est lancée, les verrouillages internes sur l'objet sont libérés, ce qui peut entraîner la suppression de l'objet.

REMARQUES :

  1. Lors de l'allocation de fichiers base de données, utilisez la commande DLCOBJ avant de supprimer le fichier si le fichier à allouer est de type logique.
  2. En cas d'allocation d'un fichier qui est concerné par une substitution de fichier, la commande ALCOBJ ne tient pas compte de cette substitution et tente d'allouer le fichier désigné dans le paramètre OBJ.
  3. Lors de l'allocation des fichiers DDM et des fichiers répartis, la commande requiert un délai d'exécution supplémentaire en raison du délai nécessaire à la communication et à l'allocation de fichiers sur les systèmes éloignés.
  4. Une file d'attente de messages de poste de travail ne peut pas être allouée. Une file d'attente de messages de poste de travail est associée à une description d'unité de poste de travail du même nom. Par conséquent, pour effectuer une opération sur une file d'attente de messages de poste de travail qui doit être allouée, l'utilisateur doit allouer la description d'unité associée. Une fois cette dernière allouée, la file d'attente de messages de poste de travail est implicitement allouée.
  5. Lorsque ALCOBJ est exécutée pour accéder à un verrouillage EXCL sur un programme (*PGM), seule la description d'objet du programme est verrouillée. Le code programme n'est pas exclusivement verrouillé. Par conséquent, il se peut que le programme continue à être exécuté par un autre utilisateur. Aucune modification n'est admise pour la description d'objet programme lors de l'utilisation du programme réel.
  6. Le système ne verrouille pas les programmes lorsqu'il les appelle.
  7. Lorsque ALCOBJ est exécutée pour accéder à un verrouillage EXCL sur un membre de fichier logique (*FILE), ce dernier ainsi que les membres de fichiers physiques associés sont verrouillés. Par conséquent, aucun autre utilisateur ne peut utiliser les membres de fichiers physiques (pas même via d'autres membres de fichiers logiques).
  8. L'allocation d'un objet en indiquant *LIBL à la bibliothèque de l'objet, la modification de la liste des bibliothèques de l'unité d'exécution, puis la tentative de désallocation de l'objet en indiquant *LIBL à la bibliothèque de l'objet peuvent entraîner la désallocation d'un objet incorrect. Une telle désallocation peut provoquer des verrouillages internes.

Restrictions :

  1. Cette commande ne peut pas être utilisée pour allouer une description d'unité *DEVD pour une unité APPC (advanced program-to-program communications) ou pour une unité INTRA (intrasystem).
  2. Cette commande peut être utilisée pour allouer uniquement les types d'objets *FILE base de données suivants :
    • Fichiers physiques
    • Fichiers logiques
    • Fichiers répartis

      Permet d'allouer la partie du fichier sur chaque noeud du groupe de noeuds.

    • Fichiers DDM

      Permet d'allouer le fichier DDM sur le système local et le fichier sur le système éloigné identifié dans le fichier DDM.

  3. L'objet doit exister sur le système.
  4. L'utilisateur qui émet la commande doit disposer du droit d'opération sur l'objet (*OBJOPR) et du doit d'exécution (*EXECUTE) sur la bibliothèque de l'objet.
  5. Si l'allocation ne peut pas être achevée, aucun des verrouillages n'est accordé et un message est envoyé à l'unité d'exécution qui a émis la commande. Si celle-ci est émise à partir d'un programme, la commande MONMSG (Intercepter message) permet de déterminer si l'allocation a abouti.
  6. Dans le cas de travaux à unités d'exécution multiples, cette commande n'admet pas l'utilisation d'unités d'exécution multiples pour les fichiers répartis. Par ailleurs, cette commande n'admet pas l'utilisation fichiers DDM de type *SNA.

Paramètres

Mot-clé Description Valeurs possibles Remarques
OBJ Spécifications d'objet Values (jusqu'à 50 répétitions): Liste d'éléments Obligatoire, positionnel 1
Élément 1: Objet Nom d'objet qualifié
Qualificatif 1: Objet Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
Élément 2: Type d'objet *AUTL, *BNDDIR, *CLD, *CRQD, *CSI, *CSPMAP, *CSPTBL, *DEVD, *DTAARA, *DTADCT, *DTAQ, *FCT, *FILE, *FNTRSC, *FNTTBL, *FORMDF, *IMGCLG, *IPXD, *LIB, *LOCALE, *MEDDFN, *MENU, *MGTCOL, *MODULE, *MSGQ, *NODL, *NTBD, *NWSCFG, *NWSD, *OVL, *PAGDFN, *PAGSEG, *PDFMAP, *PDG, *PGM, *PNLGRP, *PSFCFG, *QMFORM, *QMQRY, *QRYDFN, *SBSD, *SCHIDX, *SQLPKG, *SQLXSR, *SRVPGM, *SSND, *S36, *TIMZON, *USRIDX, *USRQ, *USRSPC, *VLDL, *WSCST
Élément 3: Etat de verrouillage *SHRRD, *SHRNUP, *SHRUPD, *EXCLRD, *EXCL
Élément 4: Membre, si fichier BD Nom, *FIRST
WAIT Temps d'attente Entier, *CLS Facultatif, positionnel 2
SCOPE Portée du verrouillage *JOB, *THREAD, *LCKSPC Facultatif
CONFLICT Action conflit verrouillage *NORQSRLS, *RQSRLS Facultatif
MIRROR Protection par disque miroir *YES, *NO Facultatif

Spécifications d'objet (OBJ)

Indique le nom et la bibliothèque d'un ou plusieurs objets alloués au travail, à l'unité d'exécution ou à l'espace de verrouillage, le type de chacun de ces objets, son état de verrouillage et le nom de membre (si l'objet est un fichier base de données ou un fichier DDM).

Ce paramètre est obligatoire.

Vous pouvez affecter 50 valeurs à ce paramètre.

Elément 1 : Objet

Qualificatif 1 : Objet

nom
Indiquez le nom de l'objet.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de l'unité d'exécution jusqu'à ce que la première occurrence soit trouvée.
*CURLIB
La bibliothèque en cours pour l'unité d'exécution permet de localiser l'objet. Si celle-ci n'est indiquée, QGPL est prise par défaut.
nom
Indiquez le nom de la bibliothèque contenant l'objet.

Elément 2 : Type d'objet

type-objet
Indiquez le type d'objet à allouer. Pour plus d'informations, reportez-vous à la figure Etats de verrouillages admis par type d'objet.

Elément 3 : Etat de verrouillage

*SHRRD
L'état de verrouillage est partagé en lecture.
*SHRNUP
L'état de verrouillage est partagé (mise à jour non permise).
*SHRUPD
L'état de verrouillage est partagé en mise à jour.
*EXCLRD
L'état de verrouillage est en exclusif (lecture permise).
*EXCL
L'état de verrouillage est en exclusif (lecture non permise).

Elément 4 : Membre, si fichier BD

Remarque :Les valeurs suivantes ne peuvent être indiquées que si le type d'objet est un fichier base de données.

*FIRST
Le premier membre du fichier base de données est alloué.
nom
Indiquez le nom du membre à allouer. Si le fichier indiqué est un fichier logique, les membres de fichier physique associés aux membres du fichier logique sont également alloués.

Vous pouvez indiquer tous les cinq états de verrouillage (*EXCL, *EXCLRD, *SHRUPD, *SHRNUP et *SHRRD) pour la plupart des types d'objet, mais pas pour tous.

Figure : Etats de verrouillage admis par type d'objet

Type                                    Etats de verrouillage
d'objet  Définition              *EXCL *EXCLRD *SHRUPD *SHRNUP *SHRRD
-------  ----------------------  ----- ------- ------- ------- ------
*AUTL    Liste d'autorisation      x      x       x       x       x
*BNDDIR  Répertoire de liage       x      x                       x
*CLD     Description env local C   x      x       x       x       x
*CRQD    Description de demande    x      x       x       x       x
         de changement
*CSI     Informations annexes      x      x       x       x       x
         sur les communications
*DEVD    Description d'unité              x       x
*DTAARA  Zone de données           x      x       x       x       x
*DTADCT  Dico de données           x      x       x       x       x
*DTAQ    File de données           x      x       x       x       x
*FCT     Table ctrl formulaires    x      x       x       x       x
*FILE    Fichier                   x      x       x       x       x
*FNTRSC  Ressource police          x      x       x       x       x
*FNTTBL  Table mappage polices     x      x       x       x       x
*FORMDF  Définition d'imprimé      x      x       x       x       x
*IMGCLG  Catalogue d'images        x      x       x       x       x
*IPXD    Description               x      x       x       x       x
         IPX
*LIB     Bibliothèque                     x       x       x       x
*LOCALE  Obj Environnement local   x      x       x       x       x
*MEDDFN  Définition support        x      x       x       x       x
*MENU    Menu                      x      x       x       x       x
*MGTCOL  Collecte de gestion       x      x       x       x       x
*MODULE  Module                    x      x                       x
*MSGQ    File de messages          x                              x
*NODL    Liste de noeuds           x      x       x       x       x
*NTBD    Description NetBIOS       x      x       x       x       x
*NWSCFG  Configuration de          x      x       x       x       x
         Services Facility
*NWSD    Description de serveur    x      x       x       x       x
         de changement
*OVL     Fond de page              x      x       x       x       x
*PAGDFN  Définition de page        x      x       x       x       x
*PAGSEG  Segment de page           x      x       x       x       x
*PDFMAP  Mappage PDF               x      x       x       x       x
*PDG     Grpe descripteur impr     x      x       x       x       x
*PGM     Programme                 x      x                       x
*PNLGRP  Groupe de panneaux        x      x       x       x       x
*PSFCFG  Configuration de Print    x      x       x       x       x
         Services Facility
*QMFORM  Format QM                 x      x       x       x       x
*QMQRY   Requête QM                x      x       x       x       x
*QRYDFN  Définition d'analyse      x      x       x       x       x
*S36     Description de machine    x      x       x       x       x
         de changement
*SBSD    Description de sous-syst. x
*SCHIDX  Index d'aide              x      x       x       x       x
*SQLPKG  Module                    x      x       x       x       x
         SQL
*SQLXSR  Référentiel de schéma     x      x       x       x       x
         XML SQL
*SRVPGM  Programme de service      x      x       x       x       x
*SSND    Description de session    x      x       x       x       x
*TIMZON  Descr. fuseau horaire     x      x       x       x       x
*USRIDX  Index utilisateur         x      x       x       x       x
*USRQ    File utilisateur          x      x       x       x       x
*USRSPC  Espace utilisateur        x      x       x       x       x
*VLDL    Objet liste validation    x      x       x       x       x
*WSCST   Objet personnalisation    x      x       x       x       x
         poste de travail
'x' indique l'état de verrouillage admis pour le type d'objet.

Remarque :Pour plus de détails sur les états de verrouillage, consultez le manuel Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Plusieurs verrouillages peuvent être indiqués pour le même objet du même travail dont les états de verrouillage sont différents ou en double. Chaque verrouillage est utilisé séparément. Par exemple, si un verrouillage *EXCL est déjà utilisé pour un objet et qu'un deuxième verrouillage *EXCL est demandé, celui-ci est acquis. Les deux verrouillages doivent être libérés dans le travail (désalloués à l'aide de la commande DLCOBJ (Désallouer un objet)) avant qu'un autre travail puisse accéder au même objet. Si un objet est déjà alloué avec un seul état de verrouillage et que l'utilisateur souhaite recourir à un autre état de verrouillage, il doit d'abord utiliser la commande ALCOBJ pour demander le nouveau verrouillage à l'état souhaité, puis la commande DLCOBJ pour libérer l'ancien verrouillage (à l'état de verrouillage précédent).

Lorsqu'un verrouillage exclusif est demandé sur un membre de fichier logique, ce dernier ainsi que les membres de fichier physique associés sont verrouillés. Par conséquent, aucun autre utilisateur ne peut utiliser les membres de fichiers physiques (pas même via d'autres membres de fichiers logiques).

Pour déterminer si une description d'unité peut être allouée, utilisez les informations de la commande WRKCFGSTS (Gérer état de la configuration).

Temps d'attente (WAIT)

Indique le nombre de secondes pendant lesquelles le programme attend l'allocation de l'objet. Si cette allocation ne peut avoir lieu dans le temps imparti, le programme reçoit un message pouvant être détecté par la commande MONMSG (Intercepter message). Lorsqu'une ou plusieurs descriptions d'unités figurent dans la liste des objets à allouer, le système peut prolonger le temps d'attente imparti pour la tentative d'allocation.

Lors de l'allocation de fichiers DDM et de fichiers répartis, les temps d'attente pour établir les communications et allouer des fichiers sur les systèmes éloignés sont prolongés. Chaque système éloigné fixe un temps d'attente qui lui est propre. Lorsque vous allouez des objets avec un verrouillage espace de verrouillage, l'espace de verrouillage peut se substituer au temps d'attente indiqué.

*CLS
Le temps d'attente pour l'allocation d'un objet est celui indiqué par défaut dans la description de classe utilisée par la phase d'activation.
nombre-entier
Entrez le nombre de secondes pendant lesquelles le programme attend l'allocation de tous les objets indiqués. Vous pouvez indiquer 0 ou une valeur comprise entre 1 et 32767. La valeur 0 indique qu'aucun temps d'attente n'a été défini.

Portée du verrouillage (SCOPE)

Indiquez la portée de cette demande de verrouillage.

*JOB
Le verrouillage est apposé au niveau du travail.
*LCKSPC
Le verrouillage est apposé à l'espace de verrouillage attaché à l'unité d'exécution en cours. Si aucun espace de verrouillage n'est attaché, le verrouillage est apposé au travail.
*THREAD
Le verrouillage est apposé au niveau de l'unité d'exécution.

Tous les types d'objet pris en charge par le paramètre OBJ acceptent les verrouillages travail. Tous les types d'objet pris en charge par le paramètre OBJ acceptent les verrouillages espace de verrouillage. Lorsque vous allouez des objets DDM avec un verrouillage espace de verrouillage, le verrouillage sur le système éloigné est apposé au travail.

Les verrouillages apposés au niveau d'une unité d'exécution ne peuvent jamais être en conflit avec un verrouillage apposé au travail contenant cette unité d'exécution. Toutefois, ils peuvent être en conflit avec un verrouillage apposé à un travail, ou une unité différents (en fonction de l'état de verrouillage indiqué).

Figure : Types d'objet prenant en charge les verrouillages de portée unité d'exécution

Objet                                    Unité d'exécution
Type     Définition du type d'objet         Portée
-------  ------------------------------------  ------
*AUTL    Liste autorisation
*BNDDIR  Répertoire de liage
*CLD     Description de l'environnement local C
*CRQD    Description de demande de modification
*CSI     Informations annexes sur les
         communications
*DEVD    Description d'unité                     x
*DTAARA  Zone de données                         x
*DTADCT  Dictionnaire de données                 x
*DTAQ    File d'attente de données               x
*FCT     Table de contrôle de formulaires
*FILE    Fichier                                 x
*FNTRSC  Ressource police
*FNTTBL  Table de mappage de polices
*FORMDF  Définition d'imprimé
*IMGCLG  Catalogue d'images                      x
*IPXD    Description IPX                         x
*LIB     Bibliothèque                            x
*LOCALE  Objet Environnement local               x
*MEDDFN  Définition support
*MENU    Menu
*MGTCOL  Collecte de gestion                     x
*MODULE  Module
*MSGQ    File d'attente de messages              x
*NODL    Liste de noeuds
*NTBD    Description NetBIOS                     x
*NWSCFG  Configuration de serveur de réseau
*NWSD    Description de serveur de réseau        x
*OVL     Fond de page
*PAGDFN  Définition de page
*PAGSEG  Segment de page
*PDFMAP  Mappage PDF                             x
*PDG     Groupe du descripteur d'impression
*PGM     Programme                               x
*PNLGRP  Groupe de panneaux
*PSFCFG  Configuration PSF
*QMFORM  Format QM
*QMQRY   Requête QM
*QRYDFN  Définition d'analyse
*S36     IBM 36
*SBSD    Description de sous-syst. x
*SCHIDX  Index d'aide
*SQLPKG  Module SQL
*SQLXSR  Référentiel de schémas XML SQL
*SRVPGM  Programme de service                    x
*SSND    Description de session
*TIMZON  Description de fuseau horaire           x
*USRIDX  Index utilisateur                       x
*USRQ    File d'attente utilisateur              x
*USRSPC  Espace utilisateur                      x
*VLDL    Objet Liste de validation               x
*WSCST   Personnalisation de postes de travail
'x' indique que le verrouillage de portée unité d'exécution est admis pour
ce type d'objet.

Action conflit verrouillage (CONFLICT)

Indiquez la mesure à prendre en cas de conflit de verrouillage. Ce paramètre est admis uniquement pour les fichiers base de données. Il est ignoré pour tous les autres objets. Les objets *FILE base de données pris en charge sont les suivants :

  • Fichier physique
  • Fichier logique
  • Fichier réparti
*NORQSRLS 
Aucune demande n'est envoyée aux autres travaux ou unités d'exécution détenant des verrouillages incompatibles.
*RQSRLS
Une demande est envoyée au code système s'exécutant dans chaque travail ou unité d'exécution détenant un verrouillage incompatible pour l'objet spécifié. Une notification de conflit de verrouillage n'est pas visible pour les applications utilisateur détenant des verrouillages incompatibles. Seuls les verrouillages acquis implicitement par le code système peuvent être libérés. Les verrouillages acquis explicitement par le code d'application utilisateur ne peuvent pas être libérés. Si *RQSRLS est spécifié pour un fichier réparti, la demande de libération du verrouillage est envoyée à chaque noeud du groupe de noeuds détenant un verrouillage incompatible.

Protection par disque miroir (MIRROR)

Indiquez la mesure à prendre si l'objet est répliqué par Db2 mirror. Ce paramètre est admis uniquement pour les fichiers base de données(*FILE), les zones de données (*DTAARA), les espaces utilisateur (*USRSPC) et les index utilisateur (*USRIDX). Il est ignoré pour tous les autres objets. Les demandes ne sont pas répliquées lorsque l'objet est suivi.

*YES
La commande est exécutée sur les noeuds source et cible.
*NO
La commande est exécutée uniquement sur le noeud source. La demande n'est pas répliquée sur le noeud cible.

Exemples

Exemple 1: allocation d'un fichier à un travail

ALCOBJ   OBJ((LIBB/FILEA  *FILE *EXCL MEMBERA))  SCOPE(*JOB)
         WAIT(60)

Cette commande permet exclusivement d'allouer le membre MEMBERA du fichier FILEA de la bibliothèque LIBB au travail dans lequel la commande ALCOBJ est utilisée. Si MEMBERA n'est pas disponible, le travail attendra 60 secondes pour qu'il le devienne.

Exemple 2: allocation d'une zone de données à une unité d'exécution

ALCOBJ   OBJ((LIBY/DATAAREAX  *DTAARA  *EXCL ))
         SCOPE(*THREAD)

Cette commande permet exclusivement d'allouer une zone de données DATAAREAX de la bibliothèque LIBY à l'unité d'exécution demandeuse dans laquelle la commande ALCOBJ est utilisée.

Exemple 3 : allocation d'un fichier à un espace de verrouillage

ALCOBJ   OBJ((LIBB/FILEA  *FILE *EXCL MEMBERA))
         SCOPE(*LCKSPC)

Cette commande permet exclusivement d'allouer le membre MEMBERA du fichier FILEA de la bibliothèque LIBB à un espace de verrouillage attaché à l'unité d'exécution en cours. Si aucun espace de verrouillage n'est attaché, le verrouillage est apposé au travail.

Messages d'erreur

Messages *ESCAPE

CPF1002
Allocation de l'objet &1 impossible.
CPF1040
Nombre maximal d'objets alloués atteint.
CPF1085
Objets non alloués.

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