Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > z/OS
z/OS Forum d'entraide sur z/OS et MVS (Multiple Virtual Storage), les systèmes d'exploitation des ordinateurs « mainframes » IBM : JCL, Tso, Ispf, Vsam, Racf, SMS, Cics, Ims, OPC, Ca-7, Control-M, Dialog Manager ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2011, 13h21   #1
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
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...
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 14h06   #2
Membre du Club
 
Homme Bernard
Développeur et formateur Mainframe
Inscription : février 2007
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Bernard
Localisation : France, Ille et Vilaine (Bretagne)

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

Informations forums :
Inscription : février 2007
Messages : 39
Points : 67
Points : 67
Bonjour Sam01,

Tu aurais avantage à utiliser la fonction SYSDSN qui te rend les messages suivants :
Code :
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 :
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 :
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.
BernardBZH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 14h34   #3
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
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.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 16h00   #4
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
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...) ?
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 20h21   #5
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 503
Détails du profil
Informations personnelles :
Localisation : France

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

Informations forums :
Inscription : octobre 2006
Messages : 503
Points : 688
Points : 688
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
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 20h59   #6
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
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...
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 04h14   #7
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 503
Détails du profil
Informations personnelles :
Localisation : France

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

Informations forums :
Inscription : octobre 2006
Messages : 503
Points : 688
Points : 688
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.
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 22h11   #8
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Ha d'accord. Je ne savais pas.


Merci pour l'info bernard59139.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 11h17   #9
Membre confirmé
 
Inscription : mars 2004
Messages : 1 187
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 187
Points : 233
Points : 233
Il me semble que l'on peut aussi utiliser la commande : QUERYENQ...
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 14h46   #10
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 503
Détails du profil
Informations personnelles :
Localisation : France

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

Informations forums :
Inscription : octobre 2006
Messages : 503
Points : 688
Points : 688
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+
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h19.


 
 
 
 
Partenaires

Hébergement Web