IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

z/OS Discussion :

LISTDSI et fichier pris en ENQEUE


Sujet :

z/OS

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut LISTDSI et fichier pris en ENQEUE
    Bonjour,

    En REXX, j'aimerais savoir si un fichier est pris en ENQEUE avant de l'editer.
    Il me semble que c'est la commande LISTDSI mais je ne sais quel est le code retour correspondant...

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur et formateur Mainframe
    Inscrit en
    Février 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur et formateur Mainframe
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 44
    Points : 103
    Points
    103
    Par défaut
    Bonjour Sam01,

    Tu aurais avantage à utiliser la fonction SYSDSN qui te rend les messages suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    OK
    MEMBER SPECIFIED, BUT DATASET IS NOT PARTITIONED
    MEMBER NOT FOUND
    DATASET NOT FOUND
    ERROR PROCESSING REQUESTED DATASET
    PROTECTED DATASET
    VOLUME NOT ON SYSTEM
    UNAVAILABLE DATASET
    INVALID DATASET NAME, data-set-name:
    MISSING DATASET NAME
    La fonction s'appelle de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x = SYSDSN("'mon.dsname'")
    Sinon tu trouveras ci après la liste des SYSREASON délivrés par LISTDSI (pompée sur la doc IBM de REXX) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    +------------------------------------------------------------------------+
    ¦ Table 7. LISTDSI reason codes                                          ¦
    +------------------------------------------------------------------------¦
    ¦ Reason code     ¦ Description                                          ¦
    +-----------------+------------------------------------------------------¦
    ¦ 0               ¦ Normal completion.                                   ¦
    +-----------------+------------------------------------------------------¦
    ¦ 1               ¦ Error parsing the function.                          ¦
    +-----------------+------------------------------------------------------¦
    ¦ 2               ¦ Dynamic allocation processing error.                 ¦
    +-----------------+------------------------------------------------------¦
    ¦ 3               ¦ The data set is a type that cannot be processed.     ¦
    +-----------------+------------------------------------------------------¦
    ¦ 4               ¦ Error determining UNIT name.                         ¦
    +-----------------+------------------------------------------------------¦
    ¦ 5               ¦ Data set not cataloged.                              ¦
    +-----------------+------------------------------------------------------¦
    ¦ 6               ¦ Error obtaining the data set name.                   ¦
    +-----------------+------------------------------------------------------¦
    ¦ 7               ¦ Error finding device type.                           ¦
    +-----------------+------------------------------------------------------¦
    ¦ 8               ¦ The data set does not reside on a direct access      ¦
    ¦                 ¦ storage device.                                      ¦
    +-----------------+------------------------------------------------------¦
    ¦ 9               ¦ DFHSM migrated the data set. NORECALL prevents       ¦
    ¦                 ¦ retrieval.                                           ¦
    +-----------------+------------------------------------------------------¦
    ¦ 11              ¦ Directory information was requested, but you lack    ¦
    ¦                 ¦ authority to access the data set.                    ¦
    +-----------------+------------------------------------------------------¦
    ¦ 12              ¦ VSAM data sets are not supported.                    ¦
    +-----------------+------------------------------------------------------¦
    ¦ 13              ¦ The data set could not be opened.                    ¦
    +-----------------+------------------------------------------------------¦
    ¦ 14              ¦ Device type not found in unit control block (UCB)    ¦
    ¦                 ¦ tables.                                              ¦
    +-----------------+------------------------------------------------------¦
    ¦ 17              ¦ System or user abend occurred.                       ¦
    +-----------------+------------------------------------------------------¦
    ¦ 18              ¦ Partial data set information was obtained.           ¦
    +-----------------+------------------------------------------------------¦
    ¦ 19              ¦ Data set resides on multiple volumes.                ¦
    +-----------------+------------------------------------------------------¦
    ¦ 20              ¦ Device type not found in eligible device table       ¦
    ¦                 ¦ (EDT).                                               ¦
    +-----------------+------------------------------------------------------¦
    ¦ 21              ¦ Catalog error trying to locate the data set.         ¦
    +-----------------+------------------------------------------------------¦
    ¦ 22              ¦ Volume not mounted.                                  ¦
    +-----------------+------------------------------------------------------¦
    ¦ 23              ¦ Permanent I/O error on volume.                       ¦
    +-----------------+------------------------------------------------------¦
    ¦ 24              ¦ Data set not found.                                  ¦
    +-----------------+------------------------------------------------------¦
    ¦ 25              ¦ Data set migrated to non-DASD device.                ¦
    +-----------------+------------------------------------------------------¦
    ¦ 26              ¦ Data set on MSS (Mass Storage) device.               ¦
    +-----------------+------------------------------------------------------¦
    ¦ 27              ¦ No volume serial is allocated to the data set.       ¦
    +-----------------+------------------------------------------------------¦
    ¦ 28              ¦ The ddname must be one to eight characters.          ¦
    +-----------------+------------------------------------------------------¦
    ¦ 29              ¦ Data set name or ddname must be specified.           ¦
    +-----------------+------------------------------------------------------¦
    ¦ 30              ¦ Data set is not SMS-managed.                         ¦
    +-----------------+------------------------------------------------------¦
    ¦ 31              ¦ ISITMGD macro returned with bad return code and      ¦
    ¦                 ¦ reason code. Return code and reason code can be      ¦
    ¦                 ¦ found in message IKJ58431I, which is returned in     ¦
    ¦                 ¦ variable &SYSMSGLVL2.                                ¦
    +-----------------+------------------------------------------------------¦
    ¦ 32              ¦ Unable to retrieve SMS information. DFSMS/MVS has    ¦
    ¦                 ¦ incorrect level.                                     ¦
    +-----------------+------------------------------------------------------¦
    ¦ 33              ¦ Unable to retrieve SMS information. DFSMS/MVS is not ¦
    ¦                 ¦ active.                                              ¦
    +-----------------+------------------------------------------------------¦
    ¦ 34              ¦ Unable to retrieve SMS information. OPEN error.      ¦
    +-----------------+------------------------------------------------------¦
    ¦ 35              ¦ Unexpected error from DFSMS/MVS internal service     ¦
    ¦                 ¦ IGWFAMS.                                             ¦
    +-----------------+------------------------------------------------------¦
    ¦ 36              ¦ Unexpected error from the SMS service module.        ¦
    +-----------------+------------------------------------------------------¦
    ¦ 37              ¦ Unexpected error from DFSMS service IGGCSI00.        ¦
    +------------------------------------------------------------------------+
    Et je pense qu'en testant le SYSREASON 13 tu auras une solution correcte à ta question.

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Bonjour BernardBZH,

    j'avais effectivement cette liste de code erreur mais je n'étais pas sûr de choisir le bon code. J'ai pensé comme toi au code 13.

    Ca confirme donc.

    Merci.

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    heu je viens de me rendre compte que j'ai aussi besoin de vérifier avant si le fichier est vide ou non. Si le fichier est vide je ne dois pas le traiter...
    Quelle est la commande qui permet cela (sans entrer dans le fichier...) ?

  5. #5
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    les trucs simples sont parfois oubliés:
    1) allocation du fichier en disp=old, si rc différent de 00, pas dispo
    2) print idcams, count(1), si rc=4, fichier vide

    recette appliquée dans de nombreux rexx perso

  6. #6
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Merci bernard59139,

    je sais tester un fichier vide par JCL mais je suis obligé dans mon cas précis de passer par un REXX...

    Donc on oublie l'IDCAMS...

    J'utilise ISPEXEC EDIT pour editer le fichier en question.
    Mias ça me retourne un code erreur 20 quand le fichier est vide, et ensuite toutes la suite de mon REXX...
    Les commandes ISREDIT qui suivent plante toutes...

  7. #7
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    on peut très bien appellé IDCAMS en rexx.
    pas forcément directement, mais le "PRINT IDS('le fichier') COUNT(1)" fonctionne très bien.

  8. #8
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Ha d'accord. Je ne savais pas.


    Merci pour l'info bernard59139.

  9. #9
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Il me semble que l'on peut aussi utiliser la commande : QUERYENQ...

  10. #10
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    QUERYENQ est une commande ISPF que tu peux appeler depuis le rexx.
    je l'utilise très peu car c'est un peu lourdingue (ca créé une table ispf que tu dois lire pour connaitre le résultat). En plus dans un sysplex, les paramètres sont très importants.

    a+

Discussions similaires

  1. [XL-2010] Mise à jour auto d' un fichier pris du web
    Par melodyte dans le forum Excel
    Réponses: 3
    Dernier message: 31/03/2011, 05h41
  2. fichier xml non pris en compte : redémarrage obligé ..
    Par coucou78 dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 16/04/2008, 10h28
  3. Fichier HOSTS pas pris en compte sous firefox
    Par jln13 dans le forum Firefox
    Réponses: 1
    Dernier message: 03/04/2007, 19h19
  4. Réponses: 6
    Dernier message: 10/03/2007, 16h13
  5. Réponses: 10
    Dernier message: 20/02/2006, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo