47 F2 04UF REV04 - UFAS-EXTENDED Guide de l`Utilisateur

Transcription

47 F2 04UF REV04 - UFAS-EXTENDED Guide de l`Utilisateur
Gestion des fichiers et des volumes
BULL DPS 7000
UFAS-EXTENDED - Guide de l'utilisateur
GCOS 7
Logiciel
Sujet :
Description du système unifié d'accès aux fichiers
UFAS-EXTENDED et de sa mise en oeuvre sous GCOS 7-V7.
Observations :
La révision 4 de ce document annule et remplace la révision 3 pour
les utilisateurs de GCOS7-V7. La révision 3 reste valable pour la
version V6 de GCOS, ainsi que la révision 2 pour la version V5 de
GCOS.
Version du logiciel :
GCOS 7-AP/HPS/EXMS Version V7
Date :
Février 1996
Bull Electronics Angers S.A.
CEDOC
Atelier de reprographie
331, Avenue Patton
49004 ANGERS Cedex 01
FRANCE
47 F2 04UF Rev04
Bull HN Information Systems Inc.
Publication Order Entry
FAX: (508) 294-7411
MA02/423S
Technology Park
Billerica, MA 01821
U.S.A.
Copyright  Bull S.A., 1996
Toutes les marques citées sont la propriété de leurs titulaires respectifs.
Vos suggestions sur la forme et le fond de ce manuel seront les bienvenues. Une
feuille destinée à recevoir vos remarques se trouve à la fin du présent manuel.
La loi du 11 mars 1957, complétée par la loi du 3 juillet 1985, interdit les copies ou
reproductions destinées à une utilisation collective. Toute représentation ou
reproduction intégrale ou partielle faite par quelque procédé que ce soit, sans
consentement de l'auteur ou de ses ayants cause, est illicite et constitue une
contrefaçon sanctionnée par les articles 425 et suivants du code pénal.
Ce document est fourni à titre d'information seulement. Il n'engage pas la
responsabilité de Bull S.A. en cas de dommages résultant de son application. Des
corrections ou modifications au contenu de ce document peuvent intervenir sans
préavis ; des mises à jour ultérieures les signaleront éventuellement aux destinataires.
Préface
OBJET DU MANUEL
Le présent manuel décrit le système unifié d'accès aux fichiers UFAS-EXTENDED, et sa
mise en oeuvre sur les grands systèmes DPS 7000 fonctionnant sous GCOS 7.
UTILISATEURS CONCERNES
Ce manuel s'adresse plus particulièrement aux programmeurs COBOL, mais intéresse
également les utilisateurs des autres langages admis sous GCOS 7.
Le lecteur doit être familiarisé avec le langage GCL ou le langage JCL.
47 F2 04UF Rev04
iii
UFAS-EXTENDED - Guide de l'utilisateur
STRUCTURE
Ce manuel comporte huit chapitres, précédés chacun d'un plan détaillé, et sept annexes :
viii
Chapitre 1 :
définit les notions de base relatives à UFAS-EXTENDED et
son contexte d'utilisation sous GCOS 7.
Chapitres 2, 3 et 4 :
présentent respectivement les trois types d'organisations
de fichiers UFAS-EXTENDED : séquentiel, relatif et
séquentiel indexé.
Chapitre 5 :
concerne les fichiers UFAS-EXTENDED disque et bande
et traite des points suivants : affectation au traitement,
gestion des tampons et maintien de l'intégrité.
Chapitre 6 :
est consacré à la conception, à la création et à la
modification des fichiers UFAS-EXTENDED sur disque.
Chapitre 7 :
traite des fichiers UFAS-EXTENDED sur bande.
Chapitre 8 :
décrit brièvement les utilitaires de gestion des fichiers
UFAS-EXTENDED et des volumes.
Annexe A :
fournit plusieurs méthodes de randomisation pour les
fichiers relatifs.
Annexe B :
décrit les formats et labels standard des volumes bande.
Annexe C :
donne des éléments permettant d'interpréter les vidages en
hexadécimal des espaces adresses pour les fichiers
séquentiels indexés.
Annexe D :
contient les tableaux de correspondance GCL/JCL.
Annexe E :
offre un complément d'informations sur les opérations
internes effectuées sur les tampons.
Annexe F :
traite du paramétrage des fichiers UFAS sous UFASEXTENDED (systèmes VBO uniquement).
Annexe G :
décrit Batch Booster (optimiseur d'E/S Traitement par lots).
47 F2 04UF Rev04
Préface
BIBLIOGRAPHIE
Cette bibliographie est fournie à titre indicatif. Pour plus de précisions (disponibilité du
manuel, numéro de révision, indice de mise à jour), veuillez vous adresser à CEDOC ou
éventuellement consulter le fascicule "Documents nouveaux" (référence 00 F4 7210).
Manuels de base :
COBOL 85 - Manuel de référence ................................................................... 47 F2 05UL
COBOL 85 Reference Manual ......................................................................... 47 A2 05UL
COBOL 85 - Guide de l'utilisateur .................................................................... 47 F2 06UL
COBOL 85 User's Guide.................................................................................. 47 A2 06UL
Utilitaires de gestion de données - Guide de l'utilisateur ................................. 47 F2 34UF
Data Management Utilities User's Guide .........................................................47 A2 34UF
GPL - Primitives système................................................................................. 47 F2 34UL
GPL System Primitives .................................................................................... 47 A2 34UL
Batch Booster - Optimiseur d'E/S Traitement par lots ..................................... 47 F2 33UF
Batch Booster...................................................................................................47 A2 33UF
IOF - Manuel de référence de l'utilisateur
Vol. 1 : Introduction à IOF .............................................................................. 47 F2 38UJ
Vol. 2 : Commandes système ........................................................................ 47 F2 39UJ
Vol. 3 : Directives et commandes processeurs.............................................. 47 F2 40UJ
IOF Terminal User's Reference Manual
Part 1 : Introduction to IOF............................................................................. 47 A2 38UJ
Part 2 : System-level Commands................................................................... 47 A2 39UJ
Part 3 : Directives and General Processors Commands ............................... 47 A2 40UJ
Migration des fichiers - Guide de l'utilisateur.................................................... 47 F2 32UF
File Migration Tool User's Guide ......................................................................47 A2 32UF
GCOS 7 Reconstitution des fichiers - Guide de l'utilisateur............................. 47 F2 37UF
GCOS 7 File Recovery Facilities User's Guide................................................47 A2 37UF
JCL - Manuel de référence............................................................................... 47 F2 11UJ
JCL Reference Manual .................................................................................... 47 A2 11UJ
JCL - Guide de l'utilisateur ............................................................................... 47 F2 12UJ
JCL User's Guide ............................................................................................. 47 A2 12UJ
GCL - Guide du programmeur ......................................................................... 47 F2 36UJ
GCL Programmer's Guide................................................................................ 47 A2 36UJ
47 F2 04UF Rev04
v
UFAS-EXTENDED - Guide de l'utilisateur
Autres manuels cités :
Gestion des catalogues - Guide de l'utilisateur ................................................ 47 F2 35UF
Catalog Management User's Guide .................................................................47 A2 35UF
GAC-EXTENDED - Guide de l'utilisateur ......................................................... 47 F2 12UF
GAC-EXTENDED User's Guide.......................................................................47 A2 12UF
GCOS 7 - Manuel de l'administrateur du système ...........................................47 F2 41US
GCOS 7 System Administrator's Manual .........................................................47 A2 41US
IDS/II - Manuel de référence - Volume 1..........................................................47 F2 05UD
IDS/II Reference Manual - Volume 1............................................................... 47 A2 05UD
IDS/II - Manuel de référence - Volume 2..........................................................47 F2 06UD
IDS/II Reference Manual - Volume 2............................................................... 47 A2 06UD
IDS/II - Guide de l'utilisateur.............................................................................47 F2 07UD
IDS/II User's Guide.......................................................................................... 47 A2 07UD
IDS/II - Manuel de référence ............................................................................47 F2 11UD
IDS/II Reference Manual ................................................................................. 47 A2 11UD
IDS/II - Manuel de l'administrateur ...................................................................47 F2 13UD
IDS/II Administrator's Manual.......................................................................... 47 A2 13UD
Messages et codes retour................................................................................ 47 F2 10UJ
Messages and Return Codes Directory ........................................................... 47 A2 10UJ
Tri et fusion - Guide de l'utilisateur................................................................... 47 F2 08UF
SORT/MERGE Utilities User's Guide...............................................................47 A2 08UF
TDS - Guide de l'administrateur ....................................................................... 47 F2 32UT
TDS Administrator's Guide...............................................................................47 A2 32UT
TDS/COBOL - Manuel du programmeur.......................................................... 47 F2 33UT
TDS/COBOL Programmer's Manual ................................................................47 A2 33UT
Dans ce manuel, les références sont citées sous forme abrégée (quatre derniers
caractères alphanumériques).
viii
47 F2 04UF Rev04
Préface
GCL ET JCL
La création, l'affectation, la manipulation et la maintenance des fichiers
UFAS-EXTENDED peuvent s'effectuer au moyen du langage GCL (langage de
commande GCOS 7) ou du langage JCL (langage de gestion des travaux). Dans ce
manuel, toute commande GCL est suivie de son équivalent JCL entre parenthèses. Une
table de correspondance est fournie à l'annexe D.
CONVENTIONS D'ECRITURE
Les conventions d'écriture utilisées pour la syntaxe des commandes GCL sont les
suivantes :
ELEMENT
Les majuscules indiquent un mot-clé, à introduire tel quel.
élément
Les minuscules indiquent une valeur à fournir par
l'utilisateur.
[élément]
Les crochets indiquent un élément facultatif.
{élément1}
Une colonne d'éléments entre accolades indique que l'un
d'eux doit être sélectionné, si le paramètre correspondant
est retenu. La valeur implicite (éventuelle) est soulignée
(ici, élément2). A noter que le soulignement n'apparaît pas
à l'écran.
{élément2}
{élément3}
47 F2 04UF Rev04
vii
UFAS-EXTENDED - Guide de l'utilisateur
viii
47 F2 04UF Rev04
Table des matières
1.
Présentation ..........................................................................................................
1-1
1.1
PLAN DU CHAPITRE .................................................................................................
1-1
1.2
GENERALITES...........................................................................................................
1-2
1.3
CARACTERISTIQUES D'UFAS-EXTENDED ............................................................
1-3
1.4
NOTIONS DE BASE ...................................................................................................
1-4
1.4.1
1.4.2
1.4.3
1.4.4
1.4.4.1
1.4.4.2
Articles .......................................................................................................................
CI (intervalles de contrôle) .......................................................................................
Espaces adresses .....................................................................................................
Différents types de volumes disque........................................................................
Volumes FBO..............................................................................................................
Volumes VBO..............................................................................................................
1-4
1-5
1-7
1-8
1-9
1-10
2.
Organisation séquentielle ...............................................................................
2-1
2.1
PLAN DU CHAPITRE .................................................................................................
2-1
2.2
GENERALITES SUR L'ORGANISATION SEQUENTIELLE......................................
2-2
2.3
MODES D'OUVERTURE DES FICHIERS..................................................................
2-3
2.4
MODE D'ACCES EN COBOL ....................................................................................
2-4
2.5
PREMIERE UTILISATION D'UN FICHIER SEQUENTIEL.........................................
2-4
47 F2 04UF Rev04
ix
UFAS-EXTENDED - Guide de l'utilisateur
2.6
FORMAT DES CI DE DONNÉES DANS UN FICHIER SÉQUENTIEL ......................
2-5
3.
Organisation relative .........................................................................................
3-1
3.1
PLAN DU CHAPITRE .................................................................................................
3-1
3.2
GENERALITES SUR L'ORGANISATION RELATIVE ...............................................
3-2
3.3
MODES D'OUVERTURE DES FICHIERS..................................................................
3-3
3.4
MODES D'ACCES EN COBOL ..................................................................................
3-3
3.4.1
3.4.2
3.4.3
Mode d'accès séquentiel ..........................................................................................
Mode d'accès direct ..................................................................................................
Mode d'accès dynamique.........................................................................................
3-4
3-5
3-6
3.5
PREMIERE UTILISATION D'UN FICHIER RELATIF.................................................
3-6
3.6
FORMAT DES CI DE DONNEES DANS UN FICHIER RELATIF ..............................
3-7
3.7
EXEMPLE D'APPLICATION ......................................................................................
3-9
4.
Organisation séquentielle indexée..............................................................
4-1
4.1
PLAN DU CHAPITRE .................................................................................................
4-1
4.2
GENERALITES SUR L'ORGANISATION SEQUENTIELLE INDEXEE.....................
4-2
4.3
MODES D'OUVERTURE DES FICHIERS..................................................................
4-5
4.4
MODES D'ACCES EN COBOL-85.............................................................................
4-6
4.4.1
4.4.2
4.4.3
Mode d'accès séquentiel en COBOL-85 .................................................................
Mode d'accès direct ..................................................................................................
Mode d'accès dynamique.........................................................................................
4-6
4-8
4-9
4.5
PREMIERE UTILISATION D'UN FICHIER SEQUENTIEL INDEXE ..........................
4-10
4.6
ADJONCTION D'ARTICLES ......................................................................................
4-10
x
47 F2 04UF Rev04
Table des matières
4.7
SUPPRESSION D'ARTICLES ....................................................................................
4-10
4.8
CLES SECONDAIRES ...............................................................................................
4-11
4.8.1
4.8.2
Création des index secondaires ..............................................................................
Mise à jour des index secondaires..........................................................................
4-11
4-12
4.9
STRUCTURE D'UN FICHIER SEQUENTIEL INDEXE UFAS-EXTENDED...............
4-13
4.9.1
4.9.2
4.9.3
4.9.4
4.9.5
4.9.6
4.9.7
4.9.8
4.9.9
4.9.10
Espace adresses 1 ....................................................................................................
Espace adresses 2 ....................................................................................................
Espace adresses 3 ....................................................................................................
Espace adresses 4 ....................................................................................................
Espace adresses 5 ....................................................................................................
Espace adresses 6 ....................................................................................................
Espace adresses 7 ....................................................................................................
Recherche dans l'index primaire .............................................................................
Recherche dans un index secondaire.....................................................................
Structure de l'index primaire et secondaire ...........................................................
4-13
4-13
4-13
4-13
4-14
4-14
4-15
4-16
4-16
4-18
4.10
ESPACE LIBRE DANS LES CI ..................................................................................
4-19
4.11
INSERTION D'ARTICLES ..........................................................................................
4-20
4.11.1
4.11.2
4.11.3
4.11.4
Insertion sans réorganisation de CI ........................................................................
Insertion avec compactage du CI ............................................................................
Insertion avec réorganisation incrémentale de CI .................................................
Insertion avec réorganisation de CI d'index...........................................................
4-20
4-21
4-22
4-23
4.12
FORMAT DES CI DE DONNEES DANS UN FICHIER SEQUENTIEL INDEXÉ........
4-25
4.13
EXEMPLE D'APPLICATION ......................................................................................
4-27
5.
Fichiers disque et bande - Affectation, gestion des tampons et
intégrité ...................................................................................................................
5-1
5.1
PLAN DU CHAPITRE .................................................................................................
5-1
5.2
PARAMETRAGE DES FICHIERS EN GCL................................................................
5-3
5.3
PARAMETRAGE DES FICHIERS EN JCL ................................................................
5-4
5.4
PARAMETRAGE DES FICHIERS DANS LES PROGRAMMES UTILISATEUR.......
5-5
47 F2 04UF Rev04
xi
UFAS-EXTENDED - Guide de l'utilisateur
5.5
GROUPE DE PARAMETRES ASGN (AFFECTATION DE FICHIERS).....................
5-6
5.6
TYPES DE VOLUMES................................................................................................
5-9
5.6.1
5.6.2
5.6.3
Volumes résidants ....................................................................................................
Volumes de manoeuvre............................................................................................
Volumes nommément désignés ..............................................................................
5-9
5-10
5-11
5.7
FICHIERS MULTIVOLUMES .....................................................................................
5-12
5.7.1
5.7.2
Traitement partiel et extension du nombre de volumes .......................................
Gestion du nombre d'appareils mobilisés (paramètre MOUNT) ..........................
5-13
5-14
5.8
POOLS D'APPAREILS (PARAMETRES POOL) .......................................................
5-16
5.9
PARTAGE DE FICHIER (PARAMETRE SHARE) ......................................................
5-18
5.10
REGLES DE RECOUVREMENT DES VALEURS DE PARAMETRES .....................
5-21
5.11
GROUPE DE PARAMETRES DEFN (DEFINITION DE FICHIERS) ..........................
5-23
5.12
GESTION DES TAMPONS.........................................................................................
5-24
5.12.1
5.12.2
5.12.3
5.12.4
5.12.5
5.12.6
Paramètre POOLSIZE................................................................................................
Paramètre BUFPOOL ................................................................................................
Clause RESERVE AREAS/Paramètre NBBUF.........................................................
Exemples d'utilisation des tampons .......................................................................
Optimisation des paramètres de gestion des tampons ........................................
Statistiques UFAS-EXTENDED figurant dans le JOR ............................................
5-26
5-28
5-31
5-33
5-40
5-42
5.13
JOURNALISATION ....................................................................................................
5-46
5.13.1
5.13.2
Journal Avant (BEFORE)..........................................................................................
Journal Après (AFTER).............................................................................................
5-46
5-47
5.14
INTEGRITE DES FICHIERS.......................................................................................
5-48
5.14.1
5.14.1.1
5.14.1.2
Phase de création......................................................................................................
Fichiers sans clés secondaires ...................................................................................
Fichiers avec clés secondaires ...................................................................................
5-48
5-49
5-49
5.14.2
5.14.2.1
5.14.2.2
5.14.2.3
5.14.2.4
Phase de traitement ..................................................................................................
Fichiers ouverts en entrée (INPUT) ............................................................................
Fichiers ouverts en entrée-sortie (I-O) ........................................................................
Fichiers sans clés secondaires ...................................................................................
Fichiers avec clés secondaires ...................................................................................
5-49
5-49
5-50
5-50
5-51
5.14.3
Phase d'extension .....................................................................................................
5-52
xii
47 F2 04UF Rev04
Table des matières
5.14.4
Erreurs d'E/S persistantes .......................................................................................
5-52
6.
Fichiers disque - Création et modification ...............................................
6-1
6.1
PLAN DU CHAPITRE .................................................................................................
6-1
6.2
GENERALITES...........................................................................................................
6-2
6.3
RESERVATION D'ESPACE .......................................................................................
6-3
6.3.1
6.3.2
6.3.3
6.3.4
6.3.5
Taille de CI (paramètre CISIZE)................................................................................
Tailles de CI recommandées pour les fichiers sur disques non-FSA..................
Capacités de stockage par type de disques...........................................................
Taille initiale du fichier (paramètre SIZE ou SPLIT) ...............................................
Taille d'incrément (paramètre INCRSIZE) ...............................................................
6-5
6-6
6-7
6-11
6-12
6.4
SIMULATION D'AFFECTATION DE PLACE À UN FICHIER....................................
6-13
6.5
CALCULS D'ESPACE POUR UN FICHIER SEQUENTIEL .......................................
6-14
6.5.1
6.5.2
Articles de longueur fixe ..........................................................................................
Articles de longueur variable ...................................................................................
6-14
6-17
6.6
CALCULS D'ESPACE POUR UN FICHIER RELATIF ...............................................
6-19
6.7
PARAMETRAGE DES FICHIERS SEQUENTIELS INDEXES...................................
6-22
6.7.1
6.7.2
6.7.3
6.7.4
6.7.5
6.7.5.1
6.7.5.2
Taille de CI (paramètre CISIZE) pour un fichier séquentiel indexé ......................
Espace libre par CI (paramètre CIFSP) ...................................................................
Insertion de masse....................................................................................................
Fichiers avec clés secondaires ...............................................................................
Calculs d'espace .......................................................................................................
Fichiers sans index secondaires .................................................................................
Fichiers avec index secondaires .................................................................................
6-23
6-24
6-25
6-25
6-26
6-26
6-31
6.8
GCL DE CREATION, DE LISTAGE ET DE MODIFICATION ....................................
6-39
6.8.1
6.8.1.1
Commande BUILD_FILE...........................................................................................
Exemples de création par la commande BUILD_FILE ...............................................
6-39
6-41
6.8.2
6.8.3
6.8.4
6.8.5
6.8.6
6.8.7
6.8.8
Commande CREATE_FILE .......................................................................................
Groupe de paramètres ALCn ...................................................................................
Groupe de paramètres DEFn ...................................................................................
Commande LIST_FILE ..............................................................................................
Commande LIST_FILE_SPACE................................................................................
Commande MODIFY_FILE........................................................................................
Commande MODIFY_FILE_SPACE .........................................................................
6-44
6-47
6-49
6-52
6-53
6-54
6-56
47 F2 04UF Rev04
xiii
UFAS-EXTENDED - Guide de l'utilisateur
7.
Fichiers bande (classique ou en cartouche) - Format standard,
types, labels et création ...................................................................................
7-1
7.1
PLAN DU CHAPITRE .................................................................................................
7-1
7.2
TYPES DE FICHIERS BANDE ...................................................................................
7-2
7.3
LABELS ......................................................................................................................
7-3
7.4
LES ATTRIBUTS DE FICHIER ..................................................................................
7-4
7.4.1
7.4.2
7.4.3
7.4.3.1
7.4.3.2
Longueur d'article (paramètre RECSIZE)................................................................
Longueur de bloc (paramètre BLKSIZE).................................................................
Format d'article (paramètre RECFORM) .................................................................
Articles de longueur fixe ..............................................................................................
Articles de longueur variable .......................................................................................
7-4
7-4
7-4
7-5
7-6
7.5
CHOIX DE LA LONGUEUR DE BLOC ......................................................................
7-9
7.6
CREATION DES FICHIERS BANDE (CLASSIQUE OU EN CARTOUCHE).............
7-10
7.7
PARAMETRAGE DES FICHIERS BANDE DANS EXEC_PG ...................................
7-13
7.8
LONGUEUR MINIMALE DE BLOC............................................................................
7-15
7.9
DONNÉES COMPRESSÉES SUR BANDE ...............................................................
7-15
8.
Fichiers disque et bande - Manipulation et maintenance..................
8-1
8.1
PLAN DU CHAPITRE .................................................................................................
8-1
8.2
TRI ET FUSION (SORT_FILE ET MERGE_FILE) .....................................................
8-2
8.3
CHARGEMENT (LOAD_FILE) ...................................................................................
8-3
8.3.1
8.3.2
Passage du format UFAS au format UFAS-EXTENDED ........................................
Passage du format VBO au format FBO .................................................................
8-5
8-6
8.4
MANIPULATION DES DONNEES : LE LANGAGE DSL...........................................
8-7
xiv
47 F2 04UF Rev04
Table des matières
8.5
UTILITAIRES DE GESTION DE FICHIERS ...............................................................
8-8
8.6
UTILITAIRES DE GESTION DE VOLUMES ..............................................................
8-11
8.7
VISIBILITÉ DE L'ESPACE PHYSIQUE ET LOGIQUE
AFFECTÉ AUX FICHIERS DISQUE UFAS ................................................................
8-12
47 F2 04UF Rev04
xv
UFAS-EXTENDED - Guide de l'utilisateur
Annexes
A.
Fichiers relatifs - Randomisation .................................................................
A-1
A.1
TECHNIQUES DE RANDOMISATION .......................................................................
A-1
A.2
DIVISION PAR UN NOMBRE PREMIER ...................................................................
A-2
A.3
ELEVATION AU CARRE, PLIAGE ET EXTRACTION...............................................
A-4
A.4
CHANGEMENT DE BASE DE NUMERATION ..........................................................
A-5
A.5
ANALYSE DES FREQUENCES .................................................................................
A-6
A.5.1
Transformation clé-adresse relative .......................................................................
A-8
A.6
CLES NON NUMERIQUES ........................................................................................
A-11
B.
Volumes bande - Formats et labels standard .........................................
B-1
B.1
GENERALITES...........................................................................................................
B-1
B.1.1
B.1.2
B.1.3
Relation volume (bobine)/fichier .............................................................................
Organisation des fichiers .........................................................................................
Organisation des données .......................................................................................
B-2
B-2
B-3
B.2
FORMATS ET LABELS STANDARD.........................................................................
B-4
B.2.1
B.2.2
Généralités.................................................................................................................
Format standard GCOS 7/ASCII...............................................................................
B-4
B-16
C.
Fichiers séquentiels indexés - Représentation hexadécimale
des espaces adresses ......................................................................................
C-1
xvi
47 F2 04UF Rev04
Table des matières
D.
Correspondance GCL/JCL ..............................................................................
D-1
E.
Opérations internes sur les tampons.........................................................
E-1
F.
Paramétrage des fichiers UFAS sous UFAS-EXTENDED ..................
F-1
G.
Batch Booster (Optimiseur d'E/S Traitement par lots) .......................
G-1
G.1
PRÉSENTATION ........................................................................................................
G-1
G.1.1
G.1.1.1
G.1.1.2
Mise en oeuvre de Batch Booster ...........................................................................
Lancement externe au programme.............................................................................
Lancement au sein d'un programme...........................................................................
G-1
G-1
G-2
G.1.2
Mode d'exécution du traitement BPB .....................................................................
G-2
G.2
CONDITIONS D'EXÉCUTION DU TRAITEMENT BPB .............................................
G-2
G.3
BPB ET UTILITAIRES DE GESTION DE DONNÉES................................................
G-3
G.3.1
G.3.2
G.3.2.1
G.3.2.2
Transfert de fichiers..................................................................................................
Utilitaires de Tri/Fusion (SORT/MERGE) ................................................................
Tri ................................................................................................................................
Fusion..........................................................................................................................
G-3
G-4
G-4
G-5
G.4
BPB EN ENVIRONNEMENT GCL .............................................................................
G-6
...................................................................................................................................
i-1
Index
47 F2 04UF Rev04
xvii
UFAS-EXTENDED - Guide de l'utilisateur
Illustrations
Figures
1-1
1-2
1-3
1-4
1-5
1-6
1-7
1-8
1-9
1-10
2-1
2-2
2-3
2-4
3-1
3-2
3-3
3-4
3-5
3-6
3-7
4-1
4-2
4-3
4-4
4-5
4-6
4-7
4-8
4-9
4-10
4-11
4-12
4-13
5-1
5-2
5-2
5-3
5-4
5-5
xviii
L'article : unité d'échange entre UFAS-EXTENDED et les programmes ....................
Unité de transfert entre UFAS-EXTENDED et le disque.............................................
Structure logique des fichiers disque séquentiels et relatifs .......................................
Structure logique des fichiers disque séquentiels indexés..........................................
Implantation d'un CI dans des blocs de données........................................................
Piste de disque............................................................................................................
Structure physique d'un volume VBO et système d'adressage ..................................
Fichiers, volumes et fragments ...................................................................................
Structure physique d'un fichier disque ........................................................................
Relation entre structure physique et structure logique d'un fichier disque ..................
Structure logique d'un fichier séquentiel .....................................................................
Relation entre mode d'ouverture et mode d'accès pour un fichier séquentiel ............
Format des CI de données dans un fichier séquentiel
(articles de longueur fixe)............................................................................................
Format des CI de données dans un fichier séquentiel
(articles de longueur variable) .....................................................................................
Structure logique d'un fichier relatif .............................................................................
Accès séquentiel à un fichier relatif en COBOL ..........................................................
Accès direct à un fichier relatif en COBOL..................................................................
Accès dynamique à un fichier relatif en COBOL.........................................................
Format des CI de données dans un fichier relatif
(articles de longueur fixe)............................................................................................
Format des CI de données dans un fichier relatif
(articles de longueur variable) .....................................................................................
Exemple d'application utilisant un fichier relatif...........................................................
Exemple de clés dans un article de fichier séquentiel indexé.....................................
Accès séquentiel à un fichier séquentiel indexé en COBOL.......................................
Accès direct à un fichier séquentiel indexé en COBOL ..............................................
Accès dynamique à un fichier séquentiel indexé en COBOL......................................
Structure logique d'un fichier séquentiel indexé..........................................................
Structure de l'index primaire dans un fichier séquentiel
indexé sans clés secondaires .....................................................................................
Structure des index secondaires dans un fichier séquentiel
indexé avec clés secondaires .....................................................................................
Espace libre dans un fichier séquentiel indexé ...........................................................
Insertion sans réorganisation de CI ............................................................................
Insertion avec compactage du CI................................................................................
Insertion avec réorganisation incrémentale de CI.......................................................
Insertion avec réorganisation de CI d'index ................................................................
Format des CI de données dans un fichier séquentiel indexé
(articles de longueur fixe ou variable) .........................................................................
Affectation de fichiers à un programme ......................................................................
Affectation de fichiers dans la commande EXEC_PG (1/2)........................................
Affectation de fichiers dans la commande EXEC_PG (2/2)........................................
Utilisation de volumes résidants..................................................................................
Utilisation de volumes de manoeuvre .........................................................................
Utilisation de volumes nommément désignés.............................................................
1-4
1-6
1-7
1-7
1-9
1-10
1-11
1-12
1-12
1-13
2-2
2-3
2-6
2-6
3-2
3-4
3-5
3-6
3-7
3-7
3-9
4-2
4-7
4-8
4-9
4-15
4-17
4-18
4-19
4-20
4-21
4-22
4-24
4-25
5-6
5-7
5-8
5-9
5-10
5-11
47 F2 04UF Rev04
Table des matières
5-6
5-7
5-8
5-9
5-10
5-11
5-12
5-13
5-14
5-15
5-16
6-1
7-1
7-2
7-3
7-4
7-5
B-1
B-1
B-2
B-3
E-1
Utilisation d'un fichier disque ou bande multivolume non catalogué ...........................
Utilisation d'un fichier multivolume catalogué..............................................................
Traitement partiel/extension de fichiers bande multivolumes .....................................
Gestion des périphériques pour le traitement des fichiers multivolumes....................
Mise en oeuvre d'un pool d'appareils ..........................................................................
Partage d'un fichier par deux activités ........................................................................
Combinaisons SHARE/ACCESS ................................................................................
Règles de partage d'un fichier.....................................................................................
Structure de la mémoire tampon.................................................................................
Possibilités d'utilisation du journal Avant.....................................................................
Possibilités d'utilisation du journal Après ....................................................................
Exemple d'utilisation de CIFSP ...................................................................................
Types de fichiers bande ..............................................................................................
Exemples d'articles de formats F et FB ......................................................................
Exemple d'articles de format V ...................................................................................
Enregistrement des articles de format V.....................................................................
Enregistrement des articles de format VB ..................................................................
Formats reconnus conformes à GCOS 7/EBCDIC .....................................................
Formats reconnus conformes à GCOS 7/EBCDIC (2/2) ............................................
Formats créés par GCOS 7 ........................................................................................
Formats reconnus conformes à GCOS 7/ASCII .........................................................
Opérations internes sur les tampons ..........................................................................
5-12
5-12
5-13
5-15
5-16
5-18
5-19
5-20
5-25
5-46
5-47
6-24
7-2
7-5
7-6
7-7
7-8
B-13
B-14
B-15
B-21
E-3
Valeurs recommandées pour CISIZE .........................................................................
Capacité des volumes sur disques FSA .....................................................................
Capacité des volumes sur disques non-FSA ..............................................................
Capacité respective des volumes VBO et FBO sur disques MS/D500 .......................
Capacité respective des volumes VBO et FBO sur disques MS/B10 .........................
Utilitaires de niveau de fichier (1/3) .............................................................................
Utilitaires de niveau de fichier (2/3) .............................................................................
Utilitaires de niveau de fichier (3/3) .............................................................................
Utilitaires de niveau volume ........................................................................................
Nombres premiers.......................................................................................................
Table des fréquences..................................................................................................
Développement d'une adresse relative .......................................................................
Table des clés .............................................................................................................
Types de labels ...........................................................................................................
Label début de volume VOL1 (GCOS 7/EBCDIC) ......................................................
Label début de fichier HDR1 (GCOS 7/EBCDIC) (1/2) ...............................................
Label début de fichier HDR1 (GCOS 7/EBCDIC) (2/2) ...............................................
Label début de fichier HDR2 (GCOS 7/EBCDIC) (1/2) ...............................................
Label début de fichier HDR2 (GCOS 7/EBCDIC) (2/2) ...............................................
Label fin de fichier EOF1 (GCOS 7/EBCDIC) .............................................................
Label fin de volume EOV1 (GCOS 7/EBCDIC)...........................................................
Label début de volume VOL1 (GCOS 7/ASCII) ..........................................................
Label début de fichier HDR1 (GCOS 7/ASCII) (1/2) ...................................................
Label début de fichier HDR1 (GCOS 7/ASCII) (2/2) ...................................................
Label début de fichier HDR2 (GCOS 7/ASCII)............................................................
Label fin de fichier EOF1 (GCOS 7/ASCII) .................................................................
Correspondances JCL/GCL (1/2)................................................................................
Correspondances JCL/GCL (2/2)................................................................................
Correspondances GCL/JCL (1/2)................................................................................
Correspondances GCL/JCL (2/2)................................................................................
6-6
6-7
6-8
6-9
6-10
8-8
8-9
8-10
8-11
A-2
A-7
A-8
A-9
B-4
B-6
B-7
B-8
B-9
B-10
B-11
B-12
B-16
B-17
B-18
B-19
B-20
D-1
D-2
D-3
D-4
Tableaux
6-1
6-2
6-3
6-4
6-5
8-1
8-1
8-1
8-2
A-1
A-2
A-3
A-4
B-1
B-2
B-3
B-3
B-4
B-4
B-5
B-6
B-7
B-8
B-8
B-9
B-10
D-1
D-2
D-3
D-4
47 F2 04UF Rev04
xix
UFAS-EXTENDED - Guide de l'utilisateur
xx
47 F2 04UF Rev04
1. Présentation
1.1
PLAN DU CHAPITRE
• Généralités.
• Caractéristiques d'UFAS-EXTENDED.
• Notions de base :
-
Articles (longueur fixe et longueur variable).
CI (intervalle de contrôle).
Espaces adresses.
Blocs de fichier.
• Caractéristiques des disques :
-
Disques FSA.
Disques non-FSA.
Adresse.
Fragment (extent).
• Structure physique et structure logique d'un fichier disque.
47 F2 04UF Rev04
1-1
UFAS-EXTENDED - Guide de l'utilisateur
1.2
GENERALITES
UFAS-EXTENDED est le système standard d'accès aux fichiers pour toutes les
applications exploitables sur DPS 7000 sous GCOS 7 à compter de la version V5.
Il constitue l'interface entre la gestion logique des données et la mémoire externe. Il se
compose d'un ensemble de routines de création, de lecture et de mise à jour des fichiers
sur disque et sur bande (classique ou en cartouche).
UFAS-EXTENDED assure les fonctions suivantes, indépendamment des caractéristiques
physiques des supports :
•
•
•
•
•
gestion des tampons,
regroupement des données en blocs,
contrôle des erreurs,
placement et recherche des articles,
traitement des labels.
Tous les CI d'un fichier UFAS-EXTENDED ont la même longueur (voir plus loin dans ce
chapitre).
UFAS-EXTENDED gère un grand nombre de tampons, ce qui a pour effet de minimiser
les opérations d'E/S :
• jusqu'à 20.000 tampons par application TDS (18.500 pour les fichiers avec l'attribut
PREVIOUS) ;
• jusqu'à 32.000 tampons au niveau système (pour plusieurs applications, y compris
traitement par lots).
De plus, il autorise un grand nombre de fichiers :
• environ 500 ouvertures simultanées de fichiers par application TDS ;
• environ 1000 fichiers partageables au niveau système (par plusieurs applications TDS)
pour un niveau de partage égal à 5, ou 3200 fichiers pour un niveau de partage égal
à 2.
1-2
47 F2 04UF Rev04
Présentation
1.3
CARACTERISTIQUES D'UFAS-EXTENDED
1.
UFAS-EXTENDED admet les organisations de fichiers suivantes :
- séquentielle,
- relative,
- séquentielle indexée,
- IDS/II (base de données).
Remarques :
2.
1.
L'organisation détermine un mode de rangement des articles
adapté aux besoins du traitement prévu pour le fichier.
2.
Un fichier IDS/II est un fichier base de données contenant plusieurs
types d'articles et leurs relations logiques. Physiquement, le fichier
IDS/II est un ensemble d'aires. Pour plus de précisions, se reporter
au manuel de référence IDS/II correspondant.
Les fichiers, quelle que soit leur organisation, sont exploitables dans les trois
dimensions de GCOS 7 :
- traitement par lots (BATCH),
- transactionnel (TDS),
- interactif (IOF).
3.
Avec les fichiers UFAS-EXTENDED, il est possible d'utiliser tous les modes et les
verbes d'accès du COBOL 85 aux normes ANSI.
4.
Autres caractéristiques :
- fichiers multivolumes (fichiers s'étendant sur plusieurs volumes) et volumes
multifichiers (volumes contenant plusieurs fichiers), sur disque et sur bande
(classique ou en cartouche) ;
- traitement des labels disque et bande (classique ou en cartouche) standard ;
- traitement standard des erreurs tel que défini pour le COBOL 85 ;
- maintien de l'intégrité des fichiers grâce aux mécanismes de journalisation et de
relance sur point de reprise ;
- accès concurrents aux fichiers par plusieurs programmes ;
- extension statique et dynamique des fichiers séquentiels et séquentiels indexés.
47 F2 04UF Rev04
1-3
UFAS-EXTENDED - Guide de l'utilisateur
1.4
NOTIONS DE BASE
Les principaux éléments nécessaires à la compréhension d'UFAS-EXTENDED sont les
suivants :
•
•
•
•
articles,
CI (intervalles de contrôle),
espaces adresses,
caractéristiques physiques des disques.
Les trois premiers points concernent exclusivement les fichiers disque.
En outre, il convient de définir les deux concepts suivants pour les volumes FBO :
• Bloc de données : plus petite unité adressable par une E/S dans un volume FBO. Sa
taille est de 512 octets sur un disque FSA et de 4096 octets dans un volume FBO
implanté sur un disque non-FSA.
• Bloc de fichier : plus petite unité accessible au système d'accès. Cette notion
correspond à celle de CI dans le cas des fichiers UFAS. Un bloc de fichier peut être
constitué de 1 à n blocs de données.
A noter que les informations spécifiques des fichiers bande (classique ou en cartouche)
sont regroupées au chapitre 7.
1.4.1
Articles
L'article est l'unité d'échange de données entre UFAS-EXTENDED et les programmes
utilisateur. Les articles sont définis dans les programmes et permettent la manipulation
des données. Un fichier est un ensemble d'articles doté d'un nom.
Les articles peuvent être de longueur fixe ou variable :
GCOS 7
P rogra m m es
utilisa te u r
A rticles
UFAS-EXTENDED
U tilita ires
systè m e
Figure 1-1. L'article : unité d'échange entre UFAS-EXTENDED et les programmes
1-4
47 F2 04UF Rev04
Présentation
Longueur fixe et longueur variable
La longueur des articles peut être fixe ou variable (l'utilisateur précise son choix à la
création du fichier, au moment où il en déclare les attributs au système).
Exemple d'utilisation d'articles de longueur fixe
Soit un fichier Paye, avec, pour chaque employé, un article de la forme suivante :
NOM
ADRESSE
E M P LO YE
N°
N°
CODE
S E C U R IT E
S O C IA LE M A T R IC U LE R E T E N U E S
Tous les articles contiennent la même quantité d'informations ; ils sont donc tous de la
même longueur.
Exemple d'utilisation d'articles de longueur variable
Soit un fichier Commandes, avec, pour chaque client, un article par année.
En théorie, chaque client peut passer une commande par semaine, mais, dans la
pratique, le nombre de commandes par client ne dépasse jamais 20 par an.
L'article se présente sous la forme suivante :
N ° C LIE N T
D IS T R IC T
DE
V E N TE
C O M M A N D E C O M M AN D E
COMMANDE
ANNEE
N° 1
N° 2
N ° 20
Supposons que le nombre moyen de commandes par client soit annuellement de cinq. Si
les articles étaient de longueur fixe (avec 20 zones commande par article), seul 25 % de
l'espace réservé aux commandes serait occupé dans le fichier. Pour éviter cette perte de
place importante, il est donc préférable de travailler avec des articles de longueur
variable, qui ont l'avantage de n'occuper que l'espace nécessaire aux données (plus
l'espace indispensable aux informations de gestion UFAS-EXTENDED).
Dans le cadre d'UFAS-EXTENDED, toutes les organisations de fichier admettent les
articles de longueur variable.
Lorsque l'utilisateur souhaite travailler avec des articles de longueur variable, il doit
déclarer la longueur maximale d'article au moment où il réserve de l'espace sur le support
pour le fichier.
1.4.2
CI (intervalles de contrôle)
Ce paragraphe concerne exclusivement les fichiers disque. Les informations spécifiques
des fichiers bande sont regroupées au chapitre 7.
47 F2 04UF Rev04
1-5
UFAS-EXTENDED - Guide de l'utilisateur
L'unité de transfert des données entre UFAS-EXTENDED et le disque est l'intervalle de
contrôle ou CI (Control Interval). Suivant la taille déclarée par l'utilisateur, chaque CI peut
contenir un ou plusieurs articles (2 articles minimum pour un fichier séquentiel indexé).
Les CI UFAS-EXTENDED correspondent aux pages IDS/II. Les principales
caractéristiques des CI UFAS-EXTENDED sont les suivantes :
• Tous les types de CI (CI de données, CI d'index et CI de gestion) ont la même taille.
• Chaque CI de données contient un nombre entier d'articles, pouvant aller jusqu'à 255.
Un article ne peut être réparti sur deux CI.
• La taille de CI ne peut être inférieure à la longueur d'article (longueur maximale d'article
pour le format variable).
• La taille maximale de CI est de 32.256 octets (32 Ko - 512).
• Fichiers FBO : la taille de CI doit correspondre à un nombre entier de blocs de données
(voir plus loin dans ce chapitre).
Fichiers VBO : la taille de CI ne peut excéder une piste, et un CI ne peut pas être
réparti sur deux pistes.
• La taille de CI est toujours un multiple de 512 octets. L'utilisateur peut spécifier
n'importe quelle valeur dans la limite de cinq chiffres : UFAS-EXTENDED l'arrondit si
nécessaire au multiple de 512 immédiatement supérieur. La taille optimale de CI pour
chaque type d'unité de disques non-FSA est donnée au chapitre 6 (tableau 6-1).
• Le nombre maximal de CI dans un fichier est limité à 16.777.215 (2 puissance 24
moins 1).
Pour plus de détails sur les CI, consulter les chapitres relatifs aux différentes
organisations de fichiers.
GCOS 7
P rogram m es
utilisateur
A rticles
U tilitaires
systèm e
UFAS-EXTENDED
Intervalle
de contrôle
(C I)
Figure 1-2. Unité de transfert entre UFAS-EXTENDED et le disque
1-6
47 F2 04UF Rev04
Présentation
1.4.3
Espaces adresses
Ce paragraphe concerne exclusivement les fichiers disque. Les informations spécifiques
des fichiers bande sont regroupées au chapitre 7.
D'un point de vue logique, un fichier disque est structuré en espaces adresses ; chaque
espace adresses regroupe des données de la même catégorie (informations de gestion,
données utilisateur, index).
Les figures 1-3 et 1-4 montrent la répartition des différents types de CI suivant
l'organisation de fichier.
Fichiers séquentiels et relatifs
E s p a c e a d re s se s 2
E sp a ce
a d re ss es 1
CI
CI
CI
de
de
de
données données données
CI
CI
CI
CI
de
de
de
de
d o n n é e s d on n é e s d o n n é e s d on n é e s
Figure 1-3. Structure logique des fichiers disque séquentiels et relatifs
• L'espace adresses 1 contient des informations de gestion telles que la description des
autres espaces adresses et, éventuellement, les labels utilisateur. Ces informations
sont utilisées et gérées par UFAS-EXTENDED. Elles commencent toujours au début
de la première piste de l'espace affecté au fichier. La longueur de l'espace adresses 1
est toujours égale à une piste (VBO), ou à un minimum de 16 Koctets (FBO).
• L'espace adresses 2 contient les CI de données.
Fichiers séquentiels indexés
C I d'in d e x p rim a ire
E sp a ce
E spac e
a d re ss es 1 a dres se s 3
E spac e
a dres se s 4
CI de données
E sp a ce
a d re ss es 2
C I d 'in d e x s e c o n d a ire
Espace
E sp a ce
E spac e
a dres se s 6 a d re ss es 7 a dres se s 5
Figure 1-4. Structure logique des fichiers disque séquentiels indexés
• L'espace adresses 1 contient des informations de gestion telles que la description des
autres espaces adresses et, éventuellement, les labels utilisateur. Ces informations
sont utilisées et gérées par UFAS-EXTENDED. L'espace adresses 1 occupe toujours
une piste (VBO), ou les 16 premiers Koctets du fichier (FBO).
• L'espace adresses 2 contient les CI de données.
47 F2 04UF Rev04
1-7
UFAS-EXTENDED - Guide de l'utilisateur
• Les espaces adresses 3 et 4 contiennent les CI d'index primaire. Les espaces
adresses 5, 6 et 7 contiennent les CI d'index secondaire.
Les notions d'index primaire et d'index secondaire sont définies au chapitre 4.
Avant d'étudier la relation existant entre la structure logique et la structure physique des
fichiers, il convient d'analyser brièvement les caractéristiques des disques.
1.4.4
Différents types de volumes disque
Un volume disque est constitué d'une pile de disques superposés, montés sur un axe
commun. Les deux faces externes de la pile servent de protection. Toutes les autres
faces de disque sont utilisées pour l'enregistrement.
A noter que la notion de volume disque physique est à distinguer de celle de volume
logique, qui détermine la manière dont s'effectue la réservation de place pour les fichiers.
On distingue deux organisations de volumes :
• les volumes FBO (Fixed Block Organization : organisation à blocs de longueur fixe,
apparue sous GCOS 7-V5) ;
• les volumes VBO (Variable Block Organization : organisation à blocs de longueur
variable, déjà utilisée dans les versions antérieures de GCOS).
En matière d'architecture physique, on distingue :
• les disques FSA (Fixed Sector Architecture), qui n'acceptent que l'organisation FBO
(classe d'appareils : MS/FSA) ;
• les disques non-FSA ou CKD (classes d'appareils MS/D500 et MS/B10), qui peuvent
être formatés VBO ou FBO (au moyen de l'utilitaire VOLPREP).
1-8
47 F2 04UF Rev04
Présentation
1.4.4.1
Volumes FBO
Les volumes FBO peuvent être implantés soit sur des disques FSA (MS/FSA), soit sur
des disques non-FSA au format FBO (MS/B10 ou MS/D55). Ces volumes sont organisés
en blocs de données de longueur fixe.
Les blocs de données ont une longueur de 512 octets sur les disques FSA, et de
4096 octets sur les disques non-FSA formatés FBO. Les CI (blocs de fichier) des fichiers
FBO ont une longueur multiple de 512.
Physiquement, les CI sont implantés dans les blocs de données de manière à optimiser
l'occupation du volume. Un CI occupe toujours un nombre entier de blocs de données.
CI
Figure 1-5. Implantation d'un CI dans des blocs de données
Le CI représenté à la figure 1-5 occupe 7 blocs de données, soit 3584 octets (512 x 7).
47 F2 04UF Rev04
1-9
UFAS-EXTENDED - Guide de l'utilisateur
1.4.4.2
Volumes VBO
Les volumes VBO sont organisés en cylindres et en pistes. Ils sont implantés sur des
disques non-FSA au format VBO (MS/B10 ou MS/D500).
Piste
Chaque face d'enregistrement est divisée en un certain nombre de bandes concentriques
appelées pistes, sur lesquelles sont enregistrées les données. Une piste est la surface
balayée par une tête de lecture/écriture pendant une rotation du disque. La figure 1-6
présente une piste.
A xe
F ac e
d 'e nre g istre m e n t
T ê te d e
le c tu re -é c ritu re
P is te
Figure 1-6. Piste de disque
Cylindre
L'ensemble des pistes situées au même endroit sur chaque face d'enregistrement, donc
se trouvant sous les têtes de lecture/écriture pour une position donnée du mécanisme
d'accès, constitue un cylindre logique. Par exemple, les pistes situées le plus à l'extérieur
(une par face d'enregistrement) forment un cylindre (voir figure 1-7).
1-10
47 F2 04UF Rev04
Présentation
Adresse
Un emplacement dans un volume disque est désigné par une adresse exprimée sous la
forme :
• d'un numéro de bloc (de données) pour les volumes FBO,
• d'un numéro de cylindre et d'un numéro de piste pour les volumes VBO.
Les cylindres sont numérotés séquentiellement de l'extérieur (cylindre 000) vers l'intérieur.
Les pistes sont numérotées en fonction de la face d'enregistrement sur laquelle elles se
trouvent. Toutes les pistes de la première face d'enregistrement (c'est-à-dire la face
inférieure du premier disque depuis le haut de la pile) portent le numéro 00 ; toutes les
pistes de la deuxième face d'enregistrement (face supérieure du second disque) ont le
numéro 01, et ainsi de suite jusqu'à la dernière face utile.
C Y L IN D R E 7 0 7
C Y L IN D R E 0 0 0
P IS T E 0 0
P IS T E 0 1
P IS T E 0 2
P IS T E 0 3
P IS T E 0 4
P IS T E 0 5
D IS Q U E S
P IS T E 0 6
P IS T E 0 7
P IS T E 0 8
P IS T E 0 9
Figure 1-7. Structure physique d'un volume VBO et système d'adressage
Fragment (extent)
Un fichier disque peut occuper un ou plusieurs fragments (extents). On appelle "fragment"
un ensemble de pistes contiguës (VBO) ou de blocs de données contigus (FBO)
appartenant au même volume disque.
47 F2 04UF Rev04
1-11
UFAS-EXTENDED - Guide de l'utilisateur
La figure 1-8 illustre la relation entre volumes disque, fichiers et fragments, avec :
• un fichier A monovolume monofragment,
• un fichier B monovolume multifragment,
• un fichier C multivolume multifragment.
A
C
B C B C
Figure 1-8. Fichiers, volumes et fragments
Relation entre structure physique et structure logique d'un fichier
La figure 1-9 représente un fichier occupant quatre fragments. Les fragments 1 et 2
appartiennent au volume X, et les fragments 3 et 4 au volume Y.
V o lu m e X
F ra g m e n t
1
F ra g m e n t
2
F ra g m e n t
3
F ra g m e n t
4
V o lu m e Y
Figure 1-9. Structure physique d'un fichier disque
1-12
47 F2 04UF Rev04
Présentation
La figure 1-10 indique la relation entre fragments (physiques) et espaces adresses
(logiques).
F ra g m e n t 1
F ra g m e n t 2
F ra g m e n t 3
F ra g m e n t 4
e s p a ce a d re ss e s 2
espa ce a dres se s 4
e s pa ce a dres se s 3
e s p a ce a d re s se s 1 (1 p iste )
e s pa ce a dres se s 6
espa ce a dres se s 7
espa ce a dres se s 5
Figure 1-10. Relation entre structure physique et structure logique d'un fichier
disque
• Les limites des espaces adresses sont indépendantes des limites des fragments.
• L'accès logique à l'intérieur des espaces adresses s'effectue au moyen des numéros
de CI. En conséquence, les fichiers disque UFAS-EXTENDED peuvent être transférés
d'un ensemble de fragments à un autre sans traitement spécial.
• Le transfert de fichiers UFAS-EXTENDED entre disques ne présentant pas les mêmes
caractéristiques physiques (nombre de blocs, nombre de pistes par cylindre, capacité
de piste) est possible sans perte de cohérence.
La conception et l'implantation des fichiers disque sont traitées au chapitre 6.
47 F2 04UF Rev04
1-13
UFAS-EXTENDED - Guide de l'utilisateur
1-14
47 F2 04UF Rev04
2. Organisation séquentielle
2.1
PLAN DU CHAPITRE
• Généralités sur l'organisation séquentielle.
• Modes d'ouverture des fichiers.
• Mode d'accès aux fichiers.
• Première utilisation d'un fichier séquentiel.
• Format des CI de données dans un fichier séquentiel.
47 F2 04UF Rev04
2-1
UFAS-EXTENDED - Guide de l'utilisateur
2.2
GENERALITES SUR L'ORGANISATION SEQUENTIELLE
Un fichier séquentiel peut être enregistré sur disque ou sur bande. L'accès aux articles ne
peut s'effectuer que de façon séquentielle.
Pour extraire l'article n, il faut d'abord lire tous les articles jusqu'à n-1 inclus. Après lecture
de l'article n, l'instruction READ suivante lit l'article n+1.
A noter que le GPL permet d'accéder directement à l'article n d'un
fichier séquentiel sur disque. Après lecture de cet article,
l'instruction READ suivante lit l'article n+1.
Remarque :
Il n'est possible d'écrire l'article n qu'après avoir écrit l'article n-1.
Art. 1
Art. 2
Art. 3
Art. 4
Art. (n-1)
Art. n
Art. (n+1)
Figure 2-1. Structure logique d'un fichier séquentiel
En COBOL, l'organisation séquentielle est déclarée par la clause ORGANIZATION IS
SEQUENTIAL. Si la clause ORGANIZATION IS est omise, SEQUENTIAL est la valeur
implicite.
2-2
47 F2 04UF Rev04
Organisation séquentielle
2.3
MODES D'OUVERTURE DES FICHIERS
Lorsqu'il ouvre un fichier, l'utilisateur doit spécifier un mode d'ouverture (en COBOL, ce
mode est déclaré dans l'instruction OPEN). Le mode d'ouverture déclaré pour un fichier
conditionne les instructions utilisables pour y accéder.
Pour un fichier séquentiel, il existe quatre modes d'ouverture :
• INPUT,
• OUTPUT,
• I-O,
• EXTEND (équivalent GPL = APPEND).
VERBE
COBOL
MODE
D 'O U V E R TURE COBOL
READ
IN P U T
OUTPUT
I-O *
E XT E N D
X
W R IT E
R E W R IT E
X
X
X
X
*I-O s'a ppliqu e uniqu em en t aux fichiers disq ue.
Figure 2-2. Relation entre mode d'ouverture et mode d'accès pour un fichier
séquentiel
• L'ouverture en mode OUTPUT détruit le contenu déjà existant du fichier. Il est donc
préférable de n'utiliser ce mode d'ouverture que pour le chargement initial du fichier.
• Lorsque l'ouverture s'effectue en mode EXTEND, les instructions WRITE ajoutent les
articles en fin de fichier. A cette différence près, le mode EXTEND est équivalent au
mode OUTPUT.
• En mode I-O, l'instruction REWRITE est obligatoirement précédée d'une instruction
READ (l'article à mettre à jour devant préalablement être lu). L'utilisateur ne doit pas
modifier la taille des articles de longueur variable.
47 F2 04UF Rev04
2-3
UFAS-EXTENDED - Guide de l'utilisateur
Fichiers multivolumes
Ces fichiers sont décrits de façon détaillée au chapitre 5.
Le passage automatique d'un volume au suivant s'effectue de façon différente selon le
mode d'ouverture du fichier.
• En mode OUTPUT ou EXTEND :
Le système ne passe au volume suivant que lorsqu'il a utilisé toute la place réservée
dans le volume courant. (A noter que le premier volume doit rester en ligne car il
contient les informations de gestion utilisées et mises à jour par UFAS-EXTENDED).
Le volume courant cesse alors d'être utilisé et les opérations d'écriture se poursuivent
dans le premier fragment (extent) réservé au fichier dans le volume suivant.
• En mode INPUT ou I-O :
Le système passe au volume suivant dès qu'il a lu le dernier article dans le dernier
fragment réservé au fichier dans le volume courant. Il lit alors le premier article du
premier fragment réservé dans le volume suivant.
2.4
MODE D'ACCES EN COBOL
Le seul mode d'accès possible est le mode séquentiel.
Il est déclaré par la clause ACCESS MODE IS SEQUENTIAL, et constitue la valeur
implicite.
2.5
PREMIERE UTILISATION D'UN FICHIER SEQUENTIEL
Lors de sa première utilisation, un fichier séquentiel doit de préférence être ouvert en
mode OUTPUT. Les fichiers disque peuvent être ouverts en mode I-O ; mais ce n'est pas
conseillé. Le chargement initial peut s'effectuer au moyen des commandes GCL
LOAD_FILE (équivalent JCL = CREATE), SORT_FILE (équivalent JCL = SORT) et
MERGE_FILE (équivalent JCL = MERGE), ou d'un programme COBOL.
2-4
47 F2 04UF Rev04
Organisation séquentielle
2.6
FORMAT DES CI DE DONNÉES DANS UN FICHIER SÉQUENTIEL
Les indications qui suivent permettent de mieux appréhender le mode de calcul de
l'espace à réserver pour un fichier (voir chapitre 6). Aucune programmation n'est requise
de la part de l'utilisateur pour la mise à jour et la prise en compte des zones de gestion
représentées à la figure 2-3. Tous les traitements nécessaires sont effectués par UFASEXTENDED.
Qu'il soit de longueur fixe ou variable, un article n'est jamais réparti sur deux CI. La taille
de CI est toujours un multiple de 512 octets. Il peut donc rester de la place inutilisée dans
un CI. UFAS-EXTENDED arrondit toujours la taille de CI spécifiée par l'utilisateur
(paramètre CISIZE) au multiple de 512 immédiatement supérieur. Le tableau 6-1 fournit
les tailles de CI recommandées pour chaque classe d'appareils des unités de disques
non-FSA.
Tout article enregistré présente un en-tête de quatre octets, qui contient la longueur de
l'article. Les programmes utilisateur n'ont pas accès à cet en-tête. L'entité de transfert
entre UFAS-EXTENDED et les programmes reste l'article, formé uniquement des zones
de données déclarées par l'utilisateur. La longueur des articles de format variable est
gérée différemment selon le langage de programmation employé (en COBOL, clause
DEPENDING
ON).
47 F2 04UF Rev04
2-5
UFAS-EXTENDED - Guide de l'utilisateur
9 octets (F B O )
8 octets (V B O )
E n-tê te d e C I
E n -tête d'a rticle
4 octets
E n-tête d'article
4 octe ts
E n -tête d'a rticle
4 octets
E n -tête d'a rticle
4 octets
E n-tê te d 'article
4 o ctets
E n-tête d'article
4 octe ts
A rticle
A rticle
A rticle
A rticle
A rticle
A rticle
1 o ctet fin de
C I si F B O
E spa ce inu tilisé
Figure 2-3. Format des CI de données dans un fichier séquentiel (articles de
longueur fixe)
9 octe ts (F B O )
8 octe ts (V B O )
E n-tête de C I
E n-tê te d 'article
4 o ctets
A rticle 1
E n-tê te d 'article
4 o ctets
A rticle 2
A rticle 2
(suite )
E n-tê te d'article
4 octets
A rticle 3
e tc. (jusq u'à l'article n )
E n-tê te d 'article
4 o ctets
E space inutilisé
A rticle 3
A rticle n
1 octe t fin
de C I si F B O
Figure 2-4. Format des CI de données dans un fichier séquentiel (articles de
longueur variable)
2-6
47 F2 04UF Rev04
3. Organisation relative
3.1
PLAN DU CHAPITRE
• Généralités sur l'organisation relative.
• Modes d'ouverture des fichiers.
• Modes d'accès aux fichiers.
• Mode d'accès séquentiel.
• Mode d'accès direct.
• Mode d'accès dynamique.
• Première utilisation d'un fichier relatif.
• Format des CI de données dans un fichier relatif.
• Exemple d'application.
• Avantages et inconvénients de l'organisation relative.
47 F2 04UF Rev04
3-1
UFAS-EXTENDED - Guide de l'utilisateur
3.2
GENERALITES SUR L'ORGANISATION RELATIVE
Un fichier relatif est obligatoirement sur disque. Chaque article est directement accessible
à l'aide d'un numéro d'article unique. Ainsi, pour lire l'article n, il n'est pas nécessaire de
lire les articles 1 à n-1 ; de même, pour écrire l'article m, il n'est pas nécessaire d'écrire
les articles 1 à m-1.
A rt. 1
A rt. 2
Art. 3
V ide
A rt. (n-1)
A rt. n
Art. n+1
A rt. m
V id e
Figure 3-1. Structure logique d'un fichier relatif
Un fichier relatif est une suite de positions d'article, chacune étant identifiée par un
numéro relatif d'article (RRN - Relative Record Number), qui permet d'y accéder
directement.
Les numéros relatifs d'article sont 1, 2, 3, etc. Le numéro le plus élevé est fonction de la
taille du fichier : ainsi, dans un fichier prévu pour 1240 articles, le numéro le plus élevé
est 1240.
A sa création, un fichier relatif est une succession de positions d'article vides. Toute
tentative de manipuler directement une position vide se traduit par un message d'erreur.
L'accès direct à l'article n est possible même si les positions d'article 1 à n-1 sont vides
(cas des positions 3 et n-1 à la figure 3-1).
Il est possible d'établir les numéros relatifs d'article soit en chargeant le fichier
séquentiellement, soit en convertissant les valeurs de clé. L'utilisateur trouvera à
l'annexe A quelques exemples d'algorithmes de randomisation.
En COBOL, l'organisation relative est déclarée par la clause ORGANIZATION IS
RELATIVE.
3-2
47 F2 04UF Rev04
Organisation relative
3.3
MODES D'OUVERTURE DES FICHIERS
A l'ouverture d'un fichier, l'utilisateur doit spécifier un mode d'ouverture. Pour un fichier
relatif, il existe quatre modes d'ouverture :
• INPUT,
• OUTPUT,
• I-O,
• EXTEND (équivalent GPL = APPEND).
Le choix du mode d'ouverture est fonction du mode d'accès déclaré pour le fichier. Les
différentes combinaisons possibles sont décrites dans la suite de ce chapitre.
3.4
MODES D'ACCES EN COBOL
En COBOL, il existe trois modes d'accès à un fichier relatif :
{SEQUENTIAL}
ACCESS MODE IS {RANDOM
}
}
{DYNAMIC
47 F2 04UF Rev04
3-3
UFAS-EXTENDED - Guide de l'utilisateur
3.4.1
Mode d'accès séquentiel
Ce mode d'accès permet au programme de traiter séquentiellement les articles du fichier.
Il autorise les quatre modes d'ouverture suivants :
INPUT
Le premier article lu est celui portant le numéro relatif 1, le second celui portant le numéro
relatif 2, etc., sauf si l'instruction START est utilisée. Les positions vides sont sautées
(elles ne sont pas présentées au programme). Par exemple, si la position 4 est vide, les
positions lues seront 1, 2, 3, 5, 6, etc.
Le nom de zone spécifié dans l'instruction START doit être le même que celui spécifié
dans la locution RELATIVE KEY de la clause SELECT correspondante.
OUTPUT
L'ouverture en mode OUTPUT détruit le contenu existant du fichier. Les articles sont
écrits aux positions 1, puis 2, puis 3, etc. Ce mode d'ouverture ne convient qu'au
chargement initial du fichier.
I-O
En accès séquentiel, une instruction REWRITE ou DELETE doit toujours être précédée
d'une instruction READ. La longueur réservée pour chaque position d'article étant la
longueur maximale, le nouvel article écrit avec REWRITE peut ne pas avoir la même
longueur que l'article recouvert.
EXTEND
VE RBE
CO BO L
MODE
D 'O U VER T U R E C O BO L
IN PU T
R EAD
EX TEN D *
R EW R ITE
D ELET E
X
START
(R R N )
X
X
O UT PU T
I-O
W R ITE
X
X
X
X
X
* L a locution E X TE N D n'e st dis po n ib le q u'en C O B O L 85 .
Figure 3-2. Accès séquentiel à un fichier relatif en COBOL
3-4
47 F2 04UF Rev04
Organisation relative
3.4.2
Mode d'accès direct
En accès direct, l'instruction doit citer le numéro relatif (RRN) de l'article. C'est la valeur
donnée dans la locution RELATIVE KEY IS qui indique l'article à traiter.
VE RBE
CO BO L
MODE
D 'O U VER T U R E C O BO L
READ
(R R N )
R EW R ITE
(R R N )
D ELET E
(R RN )
X
X
X
IN PU T
X
O U TP U T
I-O
W R ITE
(R R N )
X
X
Figure 3-3. Accès direct à un fichier relatif en COBOL
En mode I-O, WRITE écrit dans une position d'article vide, alors que REWRITE provoque
le recouvrement d'un article déjà existant par un nouvel article. La longueur réservée pour
chaque position d'article étant la longueur maximale, le nouvel article écrit avec
REWRITE peut ne pas avoir la même longueur que l'article recouvert.
47 F2 04UF Rev04
3-5
UFAS-EXTENDED - Guide de l'utilisateur
3.4.3
Mode d'accès dynamique
Ce mode permet de combiner les accès séquentiel et direct. Le programmeur COBOL
indique, à l'aide de l'instruction START, la position dans le fichier où l'accès séquentiel
doit commencer. Les instructions sans numéro relatif d'article sont exécutées en mode
séquentiel ; celles qui comportent un numéro relatif d'article peuvent être exécutées en
mode direct (voir plus haut dans ce chapitre).
VE RBE
CO BO L
M O DE
D 'O UV ER T U R E CO BO L
IN P U T
R EAD
[R R N ]
W R ITE
[R R N ]
D E LE TE
[R R N ]
X
START
(R R N )
X
O UTPUT
I-O
R EW R ITE
[R R N ]
X
X
X
X
X
X
Figure 3-4. Accès dynamique à un fichier relatif en COBOL
Pour qu'un fichier relatif soit accessible par l'instruction START, sa rubrique
FILE-CONTROL doit comporter la locution RELATIVE KEY.
3.5
PREMIERE UTILISATION D'UN FICHIER RELATIF
Lors de sa première utilisation, un fichier relatif doit être ouvert soit en mode OUTPUT,
soit en mode I-O. Le chargement peut s'effectuer par la commande GCL LOAD_FILE
(voir chapitre 8) ou l'ordre JCL CREATE.
3-6
47 F2 04UF Rev04
Organisation relative
3.6
FORMAT DES CI DE DONNEES DANS UN FICHIER RELATIF
Les indications qui suivent permettent de mieux appréhender le mode de calcul de
l'espace à réserver pour un fichier (voir chapitre 6). Aucune programmation n'est requise
de la part de l'utilisateur pour mettre à jour ou prendre en compte les zones de gestion
représentées. Tous les traitements nécessaires sont effectués par UFAS-EXTENDED.
E n-tête de C I
9 octe ts (F B O )
8 octe ts (V B O )
E n -tête d 'article
4 o ctets
A rticle
E n -tête d 'article
4 o ctets
P ositio n d'a rticle vid e
E n -tête d 'article
4 o ctets
A rticle
E n -tête d 'article
4 o ctets
P ositio n d'a rticle vid e
E n -tête d 'article
4 o ctets
A rticle
E n -tête d 'article
4 o ctets
A rticle
1 o ctet fin de C I
si F B O
E spa ce inu tilisé
Figure 3-5. Format des CI de données dans un fichier relatif
(articles de longueur fixe)
E n-tête de C I
E n-tête d'article
4 octets
9 octe ts (F B O )
8 octe ts (V B O )
A rticle
E sp ace
inu tilisé
E n-tête d'article
4 octets
P o sition d'article vide
E n-tête d'article
4 octets
A rticle
E n-tête d'article
4 octets
A rticle
E n-tête d'article
4 octets
P o sition d'article vide
E n-tête d'article
4 octets
A rticle
E sp ace in utilisé
E sp ace
inu tilisé
E sp ace
inu tilisé
1 o ctet fin de C I
si F B O
Figure 3-6. Format des CI de données dans un fichier relatif
(articles de longueur variable)
47 F2 04UF Rev04
3-7
UFAS-EXTENDED - Guide de l'utilisateur
Qu'il soit de longueur fixe ou variable, un article n'est jamais réparti sur deux CI. La taille
de CI est toujours un multiple de 512 octets. Il peut donc rester de la place inutilisée dans
un CI. UFAS-EXTENDED arrondit si nécessaire la taille de CI spécifiée par l'utilisateur
(paramètre CISIZE) au multiple de 512 immédiatement supérieur. Le tableau 6-1 fournit
les tailles de CI recommandées pour chaque classe d'appareils des unités de disques
non-FSA.
Toute position d'article présente un en-tête de quatre octets, indiquant si elle est vide ou
non.
Dans le cas des articles de format variable, la longueur réservée pour chaque position
d'article est la longueur maximale d'article. Le choix du format variable pour les articles
d'un fichier relatif doit donc être dicté par d'autres raisons que l'économie de place.
Pour les calculs d'espace, se reporter au chapitre 6.
3-8
47 F2 04UF Rev04
Organisation relative
3.7
EXEMPLE D'APPLICATION
Soit un fichier utilisateur, dont chaque article correspond à un type de pièce détachée. Il y
a 5000 types de pièces. Le fichier doit être exploité en ligne, dans une application de
gestion des stocks.
A la création du fichier, chaque type de pièce a reçu un numéro, de 1 à 5000. Ces
numéros figurent dans le catalogue utilisé par les clients pour commander.
C ata lo gue
d e s p iè ce s
d é taché es
L e clie nt p a sse u n e com m a nd e
télép h o niqu e en sp é cifia n t le
n u m éro de p iè ce fig uran t au
ca ta lo gu e .
GCOS 7
L 'o p é ra te u r intro du it
le n um é ro au te rm in al
A partir de ce nu m éro ,
le p ro gra m m e re che rche la p ièce d ans le
fich ie r re latif
F ich ier
P ièces
d é ta ché es
Figure 3-7. Exemple d'application utilisant un fichier relatif
Le format des articles enregistrés dans le fichier est le suivant :
D ESIG N A TIO N
PIE C E
ETAT
ST O CK
C O M M AN D E
M IN IM U M
PR IX
U N ITA IR E
S E U IL R E AP D AT E
P RO V IS IO N D ISPO N IB ILIT E
N EM E NT
Le programme utilisateur assure la mise à jour des articles à chaque commande. Il peut
en outre enregistrer les commandes en vue de la facturation et de l'expédition.
Chaque commande est traitée sur la base des informations actualisées concernant l'état
des stocks et les prix unitaires.
Dans ce cas, le programme travaille en accès direct (RANDOM) sur le fichier ouvert en
mode I-O (mise à jour).
Si, de par leur numérotation, les pièces sont regroupées par sous-ensembles dans des
positions d'articles consécutives, le programme pourra travailler en accès dynamique
(DYNAMIC) pour fournir, par exemple, un listage séquentiel d'une partie du fichier au
terminal.
En fin de journée ou une fois par semaine, hors du traitement en ligne, l'utilisateur pourra
également passer un programme pour lister les articles ayant atteint ou dépassé le seuil
47 F2 04UF Rev04
3-9
UFAS-EXTENDED - Guide de l'utilisateur
de réapprovisionnement. Chaque article devant être lu, ce traitement s'effectuera en
accès séquentiel.
Pour le traitement proprement dit, même par lots, l'accès direct peut être beaucoup plus
performant que l'accès séquentiel. Par exemple, dans le cas d'un travail quotidien de
mise à jour portant sur 2 % des articles du fichier considéré, l'accès direct limitera la
lecture à 100 articles, alors que l'accès séquentiel, dans le cas le plus défavorable,
conduira à lire 5000 articles. A noter que le choix n'est possible que si le programme peut
disposer des numéros relatifs (RRN) des articles à traiter.
3-10
47 F2 04UF Rev04
4. Organisation séquentielle indexée
4.1
PLAN DU CHAPITRE
• Généralités sur l'organisation séquentielle indexée.
• Modes d'ouverture des fichiers.
• Modes d'accès aux fichiers.
- Mode d'accès séquentiel.
- Mode d'accès direct.
- Mode d'accès dynamique.
•
•
•
•
•
•
•
Première utilisation d'un fichier séquentiel indexé.
Adjonction d'articles.
Suppression d'articles.
Clés secondaires.
Création des index secondaires.
Mise à jour des index secondaires.
Structure d'un fichier séquentiel indexé UFAS-EXTENDED.
- Espace adresses 1.
- Espace adresses 2.
- Espace adresses 3.
- Espace adresses 4.
- Espace adresses 5.
- Espace adresses 6.
- Espace adresses 7.
•
•
•
•
•
Recherche dans l'index primaire.
Recherche dans un index secondaire.
Structure des index primaires et secondaires.
Espace libre dans les CI.
Insertion d'articles.
- Insertion sans réorganisation de CI.
- Insertion avec compactage du CI.
- Insertion avec réorganisation incrémentale de CI.
- Insertion avec réorganisation de CI d'index.
• Format des CI de données dans un fichier séquentiel indexé.
• Exemple d'application.
47 F2 04UF Rev04
4-1
UFAS-EXTENDED - Guide de l'utilisateur
4.2
GENERALITES SUR L'ORGANISATION SEQUENTIELLE INDEXEE
Un fichier séquentiel indexé est obligatoirement sur disque. Chaque article est identifié
par une valeur de zone appelée "clé". Il existe deux sortes de clés : clé primaire et clés
secondaires.
La clé primaire est la clé principale. C'est une zone de données qui doit être présente
dans chaque article du fichier. Chaque article ne peut avoir qu'une seule clé primaire, et
deux articles ne peuvent avoir la même valeur de clé primaire.
Une clé secondaire peut être toute clé, autre que la clé primaire, permettant l'accès aux
articles. L'utilisateur peut spécifier jusqu'à 15 clés secondaires pour un même fichier. Les
clés secondaires sont également des zones de données constitutives des articles. La
présence d'articles ayant une même valeur de clé secondaire peut être autorisée dans le
fichier, mais les clés fractionnées sont interdites.
Pour lire un article, il est possible d'utiliser la clé primaire ou une clé secondaire. En
revanche, pour écrire un nouvel article ou mettre à jour un article existant, seule la clé
primaire peut être employée.
ZO NE 1
ZONE 2
C lé prim aire
ZON E 3
ZON E 4
ZONE 5
C lé seco nd a ire
Figure 4-1. Exemple de clés dans un article de fichier séquentiel indexé
La longueur et l'emplacement de chaque clé doivent être les mêmes pour tous les
articles. L'emplacement d'une clé (sa position par rapport au début d'un article) est défini
par l'utilisateur à la création du fichier. Chaque clé est identifiée par son emplacement et
sa longueur ; deux clés ne peuvent donc pas se trouver au même emplacement et avoir
la même longueur (voir chapitre 6 pour plus de détails). Néanmoins, deux clés peuvent
avoir la même valeur de KEYLOC (position du premier octet de la clé dans l'article).
N'importe quelle zone de données peut être choisie comme clé d'article. Dans les articles
de longueur variable, les zones clés définies par l'utilisateur doivent toujours être
présentes.
4-2
47 F2 04UF Rev04
Organisation séquentielle indexée
LA LONGUEUR DE CLÉ NE PEUT DÉPASSER
251 OCTETS, ET UNE CLÉ NE PEUT ÊTRE
FRACTIONNÉE.
En plus de l'espace réservé aux données, un fichier séquentiel indexé contient des
espaces réservés aux index (voir figure 1-4). Les index permettent de relier la valeur de
clé définie par l'utilisateur et l'adresse (position physique) de l'article recherché. En
d'autres termes, les index servent à localiser les articles. Ces index sont gérés par
UFAS-EXTENDED.
Soit un fichier Commandes avec :
• une clé primaire : le numéro de commande ;
• deux clés secondaires : le numéro de client et le numéro de produit.
N u m é ro
Com m ande
N u m é ro
P ro d u it
101
391
0 8 9 1 Q U A N T IT E
ADRESSE
C L IE N T
102
201
0371
Q U A N T IT E
ADRESSE
C L IE N T
179
391
0893
Q U A N T IT E
ADRESSE
C L IE N T
213
251
0891
Q U A N T IT E
ADRESSE
C L IE N T
V a le u rs d e clé
id e n tiq u e s
n o n a u to risé e s
47 F2 04UF Rev04
N u m é ro
C lie n t
V a le u rs d e c lé
id e n tiq u e s
a u to ris é e s
4-3
UFAS-EXTENDED - Guide de l'utilisateur
• Le client 391 a passé deux commandes (101 et 179) concernant deux produits
différents (891 et 893).
• Le produit 891 a été commandé par deux clients différents (391 et 251).
Les index sont utilisables :
• pour l'accès séquentiel aux articles, c'est-à-dire selon l'ordre des numéros de
commande dans l'exemple considéré ;
• pour l'accès dynamique aux articles, c'est-à-dire en fonction d'une valeur de clé donnée
par l'utilisateur (exemple : extraction de toutes les commandes passées par le
client 391).
En COBOL, l'organisation séquentielle
ORGANIZATION IS INDEXED.
4-4
indexée
est
déclarée
par
la
clause
47 F2 04UF Rev04
Organisation séquentielle indexée
4.3
MODES D'OUVERTURE DES FICHIERS
Lorsqu'il ouvre un fichier, l'utilisateur doit spécifier un mode d'ouverture. Pour un fichier
séquentiel indexé, il existe quatre modes d'ouverture :
• INPUT,
• OUTPUT,
• I-O,
• EXTEND (équivalent GPL = APPEND).
Le mode EXTEND, qui est une possibilité récente offerte par UFAS-EXTENDED, n'est
disponible qu'en COBOL-85.
Le choix du mode d'ouverture est fonction du mode d'accès déclaré pour le fichier. Les
différentes combinaisons possibles sont décrites dans la suite de ce chapitre.
47 F2 04UF Rev04
4-5
UFAS-EXTENDED - Guide de l'utilisateur
4.4
MODES D'ACCES EN COBOL-85
En COBOL, il existe trois modes d'accès à un fichier séquentiel indexé :
{SEQUENTIAL}
ACCESS MODE IS {RANDOM
}
{DYNAMIC
}
4.4.1
Mode d'accès séquentiel en COBOL-85
C'est le mode d'accès à utiliser lorsque tous les articles du fichier sont à traiter. Il permet
l'ouverture en mode INPUT, OUTPUT ou I-O.
Ouverture en mode INPUT et I-O :
• Le programme lit les articles dans l'ordre croissant des valeurs de clés primaires ou
secondaires. En cas d'accès sur clé secondaire, si plusieurs articles ont la même
valeur de clé, le programme lit les homonymes dans l'ordre où ils ont été écrits.
• L'instruction START permet d'indiquer la position dans le fichier où doit commencer le
traitement.
Ouverture en mode I-O seulement :
• Avec l'instruction REWRITE (obligatoirement précédée d'une instruction READ), la
valeur de la clé primaire doit être conservée.
Mode OUTPUT :
• L'ouverture en mode OUTPUT détruit le contenu déjà existant du fichier.
• Ce mode d'ouverture ne doit être utilisé que pour le chargement initial des données.
Pour ce faire, il est possible d'utiliser la commande LOAD_FILE (voir chapitre 8), l'ordre
JCL CREATE, ou un programme COBOL.
• Le programme doit écrire les articles dans l'ordre croissant des valeurs de clé primaire.
Mode EXTEND :
• Ce mode n'est disponible qu'en COBOL-85. Les articles doivent être écrits dans l'ordre
croissant des valeurs de clé primaire.
4-6
47 F2 04UF Rev04
Organisation séquentielle indexée
VERBE
COBOL
MODE
D 'O U V E R TURE COBOL
READ
IN P U T
X
OU TPUT
I-O
EXTEND
W R IT E
R E W R IT E
DELETE
START
(C lé )
X
X
X
X
X
X
X
Figure 4-2. Accès séquentiel à un fichier séquentiel indexé en COBOL
47 F2 04UF Rev04
4-7
UFAS-EXTENDED - Guide de l'utilisateur
4.4.2
Mode d'accès direct
L'accès direct aux articles d'un fichier séquentiel indexé s'effectue à l'aide d'une clé. En
lecture, le programme doit fournir la valeur de clé de l'article (clé primaire ou secondaire).
En écriture, c'est la valeur de la clé primaire qui est utilisée pour ranger l'article dans le
fichier.
Toutes les valeurs de clé primaire doivent être uniques dans le fichier.
VERBE
COBOL
MODE
D 'O U V E R TURE COBOL
IN P U T
READ
(c lé )
W R IT E
(clé )
DELETE
(c lé )
X
X
X
X
OUTPUT
I-O
R E W R IT E
(clé )
X
X
Figure 4-3. Accès direct à un fichier séquentiel indexé en COBOL
Lorsque le fichier a été ouvert en mode I-O :
• L'instruction WRITE ajoute un nouvel article au fichier (avec une nouvelle valeur de clé
primaire).
• L'instruction REWRITE provoque le recouvrement d'un article existant par un nouvel
article de même longueur et de même valeur de clé primaire.
4-8
47 F2 04UF Rev04
Organisation séquentielle indexée
4.4.3
Mode d'accès dynamique
L'accès dynamique permet de combiner les accès séquentiel et direct dans un même
programme. Le programmeur COBOL indique à l'aide de l'instruction START la position
dans le fichier où l'accès séquentiel doit commencer. Les instructions qui ne spécifient
pas de valeur de clé sont exécutées en mode séquentiel ; celles qui comportent une
valeur de clé peuvent être exécutées en mode direct (voir paragraphe 4.4.2).
VERBE
COBOL
MODE
D 'O U V E R TURE COBOL
IN P U T
READ
[c lé ]
R E W R IT E
[clé ]
DELETE
(c lé )
X
START
(c lé )
X
X
OUTPUT
X
I-O
W R IT E
[clé ]
X
X
X
X
Figure 4-4. Accès dynamique à un fichier séquentiel indexé en COBOL
En accès dynamique, les règles d'utilisation de l'instruction WRITE dépendent du mode
d'ouverture spécifié :
IMPORTANT
Avec un fichier ouvert en mode OUTPUT ou EXTEND :
les articles doivent être écrits dans l'ordre croissant des valeurs de clé
primaire. Cet ordre est particulièrement important en mode EXTEND.
Avec un fichier ouvert en mode I-0, cette contrainte n'existe pas.
47 F2 04UF Rev04
4-9
UFAS-EXTENDED - Guide de l'utilisateur
4.5
PREMIERE UTILISATION D'UN FICHIER SEQUENTIEL INDEXE
Lors de sa première utilisation, un fichier séquentiel indexé doit être ouvert soit en mode
OUTPUT, soit en mode I-O. Le chargement initial peut s'effectuer par la commande GCL
LOAD_FILE (voir chapitre 8) ou l'ordre JCL CREATE.
Il est préférable de choisir le mode OUTPUT. Si le fichier comporte des clés secondaires,
exécuter l'utilitaire SORT_INDEX ou l'ordre JCL SORTIDX une fois le fichier chargé.
Spécifier également la clause APPLY NO-SORTED-INDEX dans le programme COBOL.
4.6
ADJONCTION D'ARTICLES
L'adjonction d'articles n'est possible que s'il reste assez d'espace dans le fichier pour les
recevoir. Les valeurs de clé primaire (uniques) de ces nouveaux articles peuvent être
situées indifféremment à l'extérieur ou à l'intérieur de la plage déjà existante dans le
fichier.
Il convient de prévoir à la création du fichier suffisamment d'espace pour permettre des
extensions ultérieures (voir chapitre 6).
4.7
SUPPRESSION D'ARTICLES
La place occupée par les articles supprimés est réutilisable pour des insertions
ultérieures. Pour plus de détails, voir plus loin dans ce chapitre "Insertion avec
compactage du CI".
4-10
47 F2 04UF Rev04
Organisation séquentielle indexée
4.8
CLES SECONDAIRES
Dans un fichier séquentiel indexé, l'utilisateur peut définir jusqu'à 15 clés secondaires. Il
est possible d'autoriser dans le fichier des articles présentant une valeur identique pour la
même clé secondaire. Chaque clé secondaire nécessite la création d'un index.
Dans le cas d'une application TDS, limiter à 2 ou 3 le nombre de clés secondaires. Eviter
de choisir des clés secondaires ayant comme valeur SPACE ou ZERO.
4.8.1
Création des index secondaires
Il existe deux modes de création des index secondaires, mais il est préférable de choisir
le premier :
1.
Les articles sont déjà chargés et triés sur la clé primaire. Pour charger le fichier
(chargement initial), l'utilisateur a le choix entre :
-
la commande GCL LOAD_FILE (équivalent JCL = CREATE),
-
un programme COBOL (instructions WRITE) avec clause APPLY NOSORTED-INDEX ON et ALTERNATE RECORD KEY dans la clause SELECT.
Une fois les articles enregistrés dans le fichier, la commande SORT_INDEX
(SRTIDX) - équivalent JCL = SORTIDX - trie les clés secondaires et les place dans
les index secondaires qu'elle crée.
2.
UFAS-EXTENDED constitue automatiquement les index secondaires lorsque le
fichier a été :
-
ouvert en mode I-O (mise à jour) ;
-
créé au moyen de la commande GCL LOAD_FILE avec ORDER = 0
(équivalent JCL : CREATE avec FILELOAD = NORDER) ;
-
créé au moyen d'un programme COBOL sans la clause APPLY NO-SORTEDINDEX (fichier ouvert en mode OUTPUT).
Un article nouvellement inséré est donc immédiatement accessible au moyen de sa
clé primaire ou d'une clé secondaire.
Format simplifié de SRTIDX :
SRTIDX [ OUTFILE = ] (description-fichier-sortie)
47 F2 04UF Rev04
4-11
UFAS-EXTENDED - Guide de l'utilisateur
Exemple :
S:SRTIDX (SD3.IQS.CLIENTS)
Dans cet exemple, SD3.IQS.CLIENTS est le fichier dont les index secondaires sont à
créer. Les clés enregistrées dans l'index secondaire sont triées en ordre croissant.
Pour plus de détails sur l'utilitaire SRTIDX, se reporter au volume 2 du manuel de
référence de l'utilisateur IOF (22UJ/23UJ) ; l'équivalent JCL SORTIDX est décrit dans le
manuel traitant des utilitaires de gestion de données (26UF).
Les index secondaires sont donc créés automatiquement :
• lorsque le chargement initial est effectué par un programme COBOL ne contenant pas
la clause APPLY NO-SORTED-INDEX ON dans l'I-O-CONTROL SECTION de
l'ENVIRONMENT DIVISION ;
• lorsqu'un programme ouvre le fichier en mode I-O.
Dans ces deux cas, des articles ayant la même valeur de clé sont écrits dans leur ordre
d'arrivée (et non triés sur la clé primaire, comme avec SORTIDX).
Pour optimiser les performances lors d'un chargement initial du fichier par programme
COBOL en mode OUTPUT ou EXTEND, insérer la clause APPLY NO-SORTED-INDEX
ON. Cette clause n'est prise en compte que si le fichier est ouvert en mode sortie.
Pour plus de précisions sur la clause APPLY NO-SORTED-INDEX ON, consulter le
manuel de référence COBOL 85 (05UL).
4.8.2
Mise à jour des index secondaires
Conformément à la norme COBOL ANSI, la mise à jour des index secondaires s'effectue
en même temps que celle des articles, sans aucune intervention de l'utilisateur.
4-12
47 F2 04UF Rev04
Organisation séquentielle indexée
4.9
STRUCTURE D'UN FICHIER SEQUENTIEL INDEXE UFAS-EXTENDED
Il est nécessaire de connaître la structure d'un fichier séquentiel indexé pour pouvoir
interpréter les informations fournies par la commande LIST_FILE (équivalent
JCL = FILLIST). Si, par exemple, de nombreuses réorganisations incrémentales de CI ont
eu lieu, il faudra restructurer le fichier avec davantage d'espace libre dans les CI.
Un fichier séquentiel indexé peut comporter jusqu'à sept espaces adresses (voir
figure 4-5). Les espaces adresses 3, 4, 5, 6 et 7 sont propres aux fichiers séquentiels
indexés.
4.9.1
Espace adresses 1
L'espace adresses 1 regroupe les CI de gestion réservés à UFAS-EXTENDED. Il occupe
toujours au minimum les premiers blocs ou 16 Ko (FBO), ou la première piste (VBO) de
l'espace réservé au fichier.
4.9.2
Espace adresses 2
L'espace adresses 2 regroupe les CI de données contenant les articles utilisateur.
4.9.3
Espace adresses 3
L'espace adresses 3 regroupe les CI du niveau supérieur de l'index primaire (dans
l'organisation séquentielle indexée). Il peut être vide dans le cas d'un fichier de petite taille
à un seul niveau d'index.
4.9.4
Espace adresses 4
L'espace adresses 4 regroupe les CI du niveau inférieur de l'index primaire, renvoyant
aux CI de données.
47 F2 04UF Rev04
4-13
UFAS-EXTENDED - Guide de l'utilisateur
4.9.5
Espace adresses 5
L'espace adresses 5 regroupe les CI de l'"index dense", c'est-à-dire les CI d'index du
niveau le plus bas, lorsque l'accès aux données s'effectue par clé secondaire. Cet index
est dit "dense" parce qu'il contient une rubrique par article pour chaque index secondaire.
Ainsi, dans un fichier de 100 articles comportant chacun trois clés secondaires, l'espace
adresses 5 aura 100 x 3 = 300 rubriques.
L'espace adresses 5 n'existe que pour les fichiers séquentiels indexés avec clés
secondaires.
4.9.6
Espace adresses 6
A chaque clé secondaire spécifiée pour le fichier correspond un index dont la structure est
la même que celle de l'index primaire.
L'espace adresses 6 regroupe les CI d'index de niveau supérieur associés à chaque clé
secondaire. Il joue le même rôle pour les index secondaires que l'espace adresses 3 pour
l'index primaire.
L'espace adresses 6 n'existe que pour les fichiers séquentiels indexés avec clés
secondaires.
4-14
47 F2 04UF Rev04
Organisation séquentielle indexée
4.9.7
Espace adresses 7
L'espace adresses 7 regroupe les CI d'index de niveau inférieur associés à chaque clé
secondaire. Il joue pour les index secondaires le même rôle que l'espace adresses 4 pour
l'index primaire.
1
3
4
E spa ces ad re sses
2
6
7
5
CCCCCCCCCCCCCCCCCCC
I I I I I I I I I I I I I I I I I I I
C I d 'in d e x p rim a ire d u n iv e a u le p lu s b a s
C I d 'in d e x p rim a ire d e n iv e a u s u p é rie u r
In fo rm a tio n s d e g e s tio n (g é ré e s p a r
U F A S -E X T E N D E D )
C I d 'in d e x s e c o n d a ire s d e n ive a u s u p é rie u r
C I d 'in d e x s e c o n d a ire s d u n iv e a u le p lu s b a s
C I d 'in d e x s e co n d a ire s d u n ive a u d e n s e
L e s z o n e s e n g ris é re p ré s e n te n t d e l'e s p a c e lib re .
Figure 4-5. Structure logique d'un fichier séquentiel indexé
47 F2 04UF Rev04
4-15
UFAS-EXTENDED - Guide de l'utilisateur
4.9.8
Recherche dans l'index primaire
Un index primaire comporte généralement plusieurs niveaux. Dans un index à un seul
niveau et au niveau le plus bas d'un index à plusieurs niveaux, une rubrique renvoie
directement à un CI de données. Aux niveaux les plus élevés d'un index à plusieurs
niveaux, une rubrique renvoie à un CI d'index du niveau directement inférieur. Lorsque la
taille d'un fichier est importante, il est utile d'avoir plusieurs niveaux d'index, afin de
réduire le temps de recherche.
La figure 4-6 représente :
• l'espace adresses 3 qui regroupe les CI d'index primaire du niveau supérieur ;
• l'espace adresses 4 qui regroupe les CI d'index primaire du niveau inférieur ;
• l'espace adresses 2 qui regroupe les CI de données.
Chaque CI d'index contient des rubriques d'index.
La taille des CI est la même dans tous les espaces adresses (y compris dans l'espace
adresses 2).
L'index primaire prend en compte l'ordre des articles. Il comporte une seule rubrique par
CI de données ; cette rubrique contient la valeur de clé primaire la plus élevée du CI
auquel elle permet d'accéder. Le classement par ordre croissant des valeurs de clé
permet à UFAS-EXTENDED de repérer les valeurs qui ne figurent pas dans l'index.
• UFAS-EXTENDED génère autant de niveaux supérieurs d'index qu'il est nécessaire
pour qu'il suffise d'explorer un seul CI à chaque niveau afin d'accéder à l'article voulu.
• Chaque rubrique d'index contient la valeur de clé primaire la plus élevée du CI auquel
elle permet d'accéder. Ainsi, dans la figure 4-6 où les clés ont trois caractères, la valeur
de clé primaire la plus élevée du 17ème CI est EAP.
Supposons que nous voulions extraire l'article dont la valeur de clé est JFO. UFASEXTENDED commence au niveau d'index le plus haut (CI d'index RST). Dans ce CI,
UFAS-EXTENDED trouve la rubrique JKA, qui renvoie au CI d'index de niveau le plus
bas : CI JKA dans l'espace adresses 4. Dans ce CI, UFAS-EXTENDED trouve la rubrique
d'index JKA qui renvoie au 18ème CI de données. UFAS-EXTENDED conclut que la clé
JFO, si elle existe, se trouve dans le 18ème CI.
4.9.9
Recherche dans un index secondaire
Un fichier peut avoir jusqu'à 15 clés secondaires. En environnement transactionnel, il est
recommandé, pour optimiser les performances, de n'utiliser qu'un nombre réduit de clés
secondaires. Les index de ces clés sont rangés dans les espaces adresses 5, 6 et 7 (voir
figure 4-5).
4-16
47 F2 04UF Rev04
Organisation séquentielle indexée
C I d 'in d e x d u n ive a u le p lu s é le vé
EAP
Espace adresses 3
JKA
PNN
R ST
Espace adresses 4
ACC
EUL
KLM
RAA
AD E
F IB
KRR
PN Z
EAP
JKA
NOU
RST
B ID
HAA
PNN
REB
LLL
CI 17
...
CI
1 à 16
...
CI
18
C I 19
C I 20
BUD
HAB
NOP
R EA
Espace adresses 2
CCE
G IA
PNN
R FU
...
CI
21 à n
EAP
G LL
PLA
R ST
DEA
JKA
PAA
D IA
JFO
CI
de
données
...
Figure 4-6. Structure de l'index primaire dans un fichier séquentiel indexé sans clés
secondaires
47 F2 04UF Rev04
4-17
UFAS-EXTENDED - Guide de l'utilisateur
4.9.10
Structure de l'index primaire et secondaire
La figure 4-7 montre l'accès aux CI de données de l'espace adresses 2 par les différents
index (primaire et secondaires) pour un fichier à deux clés secondaires. Pour simplifier,
cet exemple ne comporte que 5 rubriques par CI d'index, mais ce nombre est beaucoup
plus important en réalité.
Index secondaire 1
Index secondaire 2
Espace adresses 6
C I d 'in d e x s e co n d a ire s
n o n d e n se s d e n iv e a u
s u p é rie u r
Espace adresses 7
C I d 'in d e x s e co n d a ire s
n o n d e n se s d u n iv e a u
le p lu s b a s
Espace adresses 5
In d e x d e n s e s
Espace adresses 2
CI de données
Espace adresses 4
C I d 'in d e x p rim a ire d u
n ive a u le p lu s b a s
Espace adresses 3
C I d 'in d e x p rim a ire d e
n ive a u su p é rie u r
Figure 4-7. Structure des index secondaires dans un fichier séquentiel indexé avec
clés secondaires
4-18
47 F2 04UF Rev04
Organisation séquentielle indexée
4.10
ESPACE LIBRE DANS LES CI
A la création du fichier (voir chapitre 6), l'utilisateur peut spécifier, au moyen du paramètre
CIFSP de la commande BUILD_FILE (équivalent JCL = PREALLOC), le pourcentage
d'espace libre à laisser dans chaque CI lors du chargement initial en mode OUTPUT (afin
de permettre des insertions ultérieures d'articles).
CI 0
CI 1
CI 2
CI 3
CI 4
CI 5
Figure 4-8. Espace libre dans un fichier séquentiel indexé
Les zones en grisé représentent l'espace libre.
47 F2 04UF Rev04
4-19
UFAS-EXTENDED - Guide de l'utilisateur
4.11
INSERTION D'ARTICLES
UFAS-EXTENDED fournit automatiquement de nouveaux CI dans l'espace alloué en
fonction des besoins. Lorsqu'un nouvel article doit être inséré dans le fichier, il commence
par lire le CI auquel l'article devrait logiquement appartenir (d'après la valeur de sa clé
primaire), puis, suivant le cas, applique l'un des mécanismes d'insertion décrits ci-après.
4.11.1
Insertion sans réorganisation de CI
Dans ce cas, il reste suffisamment d'espace dans le CI considéré pour intégrer l'article,
sans nécessité d'une réorganisation.
C lé
FLX
A rtic le à in sé re r
C I (F X X )
C I (F X X )
E n -tê te d e C I
E n -tê te d e C I
FAB
FAB
FBB
FBB
FDM
FDM
FN Q
FN Q
FNA
FNA
FXX
FXX
FLX
D e s c rip te u rs d 'a rticle
D e s c rip te u rs d 'a rticle
Figure 4-9. Insertion sans réorganisation de CI
Chaque article du CI contient un pointeur renvoyant à l'article suivant (valeur de clé
immédiatement supérieure). L'ordre physique des articles dans le CI ne correspond pas à
l'ordre logique, établi en fonction des valeurs de clé. Ces pointeurs assurent le chaînage
des articles dans le CI.
Les descripteurs d'article sont traités plus loin dans ce chapitre (voir paragraphe 4.12).
4-20
47 F2 04UF Rev04
Organisation séquentielle indexée
4.11.2
Insertion avec compactage du CI
Dans ce cas, il reste suffisamment d'espace pour l'insertion dans le CI considéré (suite à
des suppressions d'articles), mais UFAS-EXTENDED doit le compacter. Ce compactage
est illustré par la figure 4-10 (le chaînage des articles n'est pas représenté) ; à noter que
l'ordre des articles n'est pas modifié.
C lé
FPX
A rticle à in sé re r
C I (F X X )
C I (F X X )
E n -tê te d e C I
E n -tê te d e C I
FAB
FAB
E sp a c e lib re
FBB
FDM
FDM
E sp a ce libre
E s pa c e
lib re
FXX
FNA
FNQ
FBB
FXX
FNA
FNQ
FPX
E sp a c e lib re
D escrip teu rs d 'article
E sp a c e lib re
D e scrip te u rs d'a rticle
Figure 4-10. Insertion avec compactage du CI
Les CI contenant des articles de longueur variable nécessitent un compactage fréquent.
UFAS-EXTENDED compacte les articles du CI en regroupant la totalité de l'espace libre à
la fin. L'insertion du nouvel article est effectuée au cours de cette opération. Le
compactage des CI sans réorganisation (à la différence des versions précédentes
d'UFAS) économise la mise à jour de l'espace adresses 5.
47 F2 04UF Rev04
4-21
UFAS-EXTENDED - Guide de l'utilisateur
4.11.3
Insertion avec réorganisation incrémentale de CI
Dans ce cas, il ne reste pas assez d'espace dans le CI considéré pour insérer un article.
UFAS-EXTENDED doit donc trouver un autre CI, comme l'illustre la figure 4-11
ci-dessous.
C I d 'in d e x (S M X )
DBX
GHH
SMX
Espace
adresses 4
Index du
niveau le plus
bas
R u b riq u e s d 'in d e x
vid e s
C I (D B X )
BLB
DBX
DBA
C I (G H H )
DBZ
ELG
DCZ
GHH
GHA
DCC
EFF
FAB
C I (S M X )
PLX
PRA
PVB
SMX
NER
GHI
C I (lib re )
Espace
adresses 2
A rtic le à in sé re r
FPA
A v a n t ré o rg a n isa tio n d e C I
A p rè s ré o rg a n is a tio n d e C I
C I d 'in d e x (S M X )
C I (D B X )
BLB
DBX
DBA
C I (E L G )
DBZ
DCC
DCZ
EFF
ELG
C I (S M X )
PLX
PRA
PVB
SMX
NER
GHI
C I (G H H )
FAB
FPA
GHA
GHH
DBX
ELG
GHH
SMX
Espace
adresses 4
Index du niveau
le plus b as
Espace
adresses 2
Figure 4-11. Insertion avec réorganisation incrémentale de CI
4-22
47 F2 04UF Rev04
Organisation séquentielle indexée
UFAS-EXTENDED éclate le CI GHH : les articles DBZ, DCC, DCZ, EFF et ELG restent
dans l'ancien CI GHH, qui devient le CI ELG, et l'article FPA est placé avec les articles
GHH, GHA et FAB dans le nouveau CI GHH.
Noter le chaînage entre les CI, qui rend possible l'accès séquentiel.
Les rubriques vides des CI d'index sont gérées automatiquement par UFAS-EXTENDED ;
à noter que les CI d'index comportent généralement beaucoup plus de rubriques que
dans l'exemple.
IMPORTANT
Si un fichier avec index secondaires utilisant le mécanisme de mise à
jour différée fait l'objet d'une réorganisation interne de CI, ce
mécanisme n'est plus pris en compte, et le système émet le code
retour WDNAV. En revanche, la mise en oeuvre du journal Avant est
automatique.
4.11.4
Insertion avec réorganisation de CI d'index
Dans le cas précédent, où l'insertion nécessitait une réorganisation incrémentale de CI, il
existait au moins une rubrique d'index vide. Lorsqu'il n'existe aucune rubrique d'index
vide, UFAS-EXTENDED utilise des mécanismes plus complexes.
Le contenu d'un CI d'index de niveau inférieur est éclaté en deux CI d'index. Cette
opération ne provoque aucun déplacement d'articles de données ; seuls les CI d'index
sont touchés. Par ailleurs, une rubrique est créée dans l'index de niveau supérieur
(espace adresses 3 ou 6), ce qui peut entraîner la réorganisation des index de niveau
supérieur.
A la figure 4-12, l'article ayant la valeur de clé 1210 doit être inséré dans le CI de
données 13. Celui-ci étant saturé, il faut l'éclater ; mais il n'y a aucune rubrique vide dans
l'espace adresses 4.
Dans la partie droite de la figure, le CI d'index 1786 est éclaté, ce qui libère de la place
pour la rubrique d'index 1100. Puis il y a éclatement du CI de données 13. Les articles
ayant les clés 1000, 1020 et 1100 sont insérés dans le nouveau CI de données (nn) ;
l'article 1214 reste dans le CI de données 13, où vient également s'insérer le nouvel
article 1210.
47 F2 04UF Rev04
4-23
UFAS-EXTENDED - Guide de l'utilisateur
1210
A rtic le à in sé re r
A VAN T
Espace
adresses 3
APRES
C I d 'in d e x (4 3 1 2 )
C I d 'in d e x (4 3 1 2 )
E n -tê te d e C I
c lé = 0 4 1 9
c lé = 1 7 8 6
c lé = 4 3 1 2
L ib re
E n -tê te d e C I
clé = 0 4 1 9
clé = 1 2 1 4
clé = 1 7 8 6
clé = 4 3 1 2
Espace
adresses 3
C l d 'in d e x (1 2 1 4 )
E n -tê te d e C I
C l d 'in d e x (1 7 8 6 )
Espace
adresses 4
E n -tê te d e C I
C I 1 2 c lé = 0 6 1 3
C I 1 3 c lé = 1 2 1 4
C I 1 4 c lé = 1 3 1 6
C I 1 5 c lé = 1 7 8 6
C I 1 2 clé = 0 6 1 3
C I 1 3 clé = 1 2 1 4
clé = 1 1 0 0
L ib re
Espace
adresses 4
C l d 'in d e x (1 7 8 6 )
E n -tê te d e C I
C I 1 4 clé = 1 3 1 6
C I 1 5 clé = 1 7 8 6
L ib re
L ib re
C I d e d o n n é e s (n n )
C I d e d o n n é e s (1 3 )
E n -tê te d e C I
Espace
adresses 2
1000
1100
1214
1020
E n -tê te d e C I
1000
1020
1100
Espace
adresses 2
C I d e d o n n é e s (1 3 )
E n -tê te d e C I
1210
1214
Figure 4-12. Insertion avec réorganisation de CI d'index
4-24
47 F2 04UF Rev04
Organisation séquentielle indexée
4.12
FORMAT DES CI DE DONNEES DANS UN FICHIER SEQUENTIEL
INDEXÉ
Les informations qui suivent sont destinées à aider l'utilisateur pour le calcul d'espace.
A noter que les en-têtes et les descripteurs d'article représentés à la figure 4-13
ci-dessous sont créés, gérés et utilisés par UFAS-EXTENDED et ne nécessitent aucune
programmation utilisateur.
2 1 o cte ts (F B O )
E n -tê te d e C I
2 0 o cte ts (V B O )
E n -tê te d 'a rtic le
5 o cte ts
A rtic le A
E n -tê te d 'a rtic le
5 o cte ts
A rtic le B
E n -tê te d 'a rtic le
5 o cte ts
E n -tê te d 'a rtic le
5 o cte ts
E n -tê te d 'a rtic le
5 o cte ts
E n -tê te d 'a rtic le
5 o cte ts
E n -tê te d 'a rtic le
5 o cte ts
R D (E )
E n -tê te d 'a rtic le
5 o cte ts
E n -tê te d 'a rtic le
5 o cte ts
A rtic le E
A rtic le I
A rtic le D
A rtic le C
A rtic le G
A rtic le H
A rtic le F
R D (D )
RD (F)
R D (H )
R D (G )
R D (C )
R D (I)
R D (B )
R D (A )
1 octet fin de
CI si FBO
Figure 4-13. Format des CI de données dans un fichier séquentiel indexé (articles
de longueur fixe ou variable)
Chaque descripteur d'article (RD) a une longueur de deux octets, et chaque en-tête
d'article une longueur de cinq octets.
Les zones en grisé représentent l'espace libre ; à noter qu'il peut s'agir d'articles
supprimés logiquement, mais pas encore physiquement.
47 F2 04UF Rev04
4-25
UFAS-EXTENDED - Guide de l'utilisateur
Commentaires relatifs à la figure 4-13 :
• Le nombre maximal d'articles autorisé dans un CI est de 255.
• Dans un fichier séquentiel indexé, un CI doit pouvoir contenir au moins deux articles.
• Chaque CI contient un descripteur d'article (RD) par article valide. Dans la figure 4-13,
les articles D et G sont signalés comme étant supprimés. Or des articles supprimés
logiquement ne le sont pas immédiatement physiquement ; leurs descripteurs peuvent
par conséquent être vides ou non (voir "Insertion avec compactage du CI" plus haut).
• Les descripteurs d'article servent de pointeurs d'articles (ils indiquent la position de
l'article par rapport à l'en-tête de CI).
• La taille de CI doit être un multiple de 512 octets. L'utilisateur peut spécifier un nombre
de cinq chiffres maximum : UFAS-EXTENDED l'arrondit si nécessaire au multiple
de 512 immédiatement supérieur. Les tableaux 6-1 et 6-2 donnent les tailles de CI
recommandées pour les différentes unités de disques en fonction de leur architecture
matérielle (non-FSA ou FSA).
• Pour plus de détails sur les calculs d'espace, se reporter au chapitre 6.
4-26
47 F2 04UF Rev04
Organisation séquentielle indexée
4.13
EXEMPLE D'APPLICATION
Soit le fichier Personnel d'une grande entreprise. Ce fichier comporte un article par
employé. Le format de chaque article est le suivant :
N om de
l'e m p lo y é
A d resse s
N° de
S é c u rité
S o c ia le
Nom et
D a te d e
D a te
N ive a u d e
a d re s se d u
n a is s a n c e d 'e m b a u c h e q u a lifica tio n
p a re n t le
p lu s p ro ch e
L'accès doit s'effectuer en mode non séquentiel. L'utilisateur a donc le choix entre une
organisation relative et une organisation séquentielle indexée.
• S'il choisit l'organisation relative, il devra attribuer un numéro relatif d'article (RRN) à
chaque employé. Cette solution manque de souplesse car, pour des raisons de
sécurité, les RRN des employés quittant l'entreprise ne pourront être réattribués aux
nouveaux embauchés, et le fichier sera plus ou moins rapidement encombré de RRN
(donc de positions d'articles) inutilisables.
• Par contre, s'il choisit l'organisation séquentielle indexée avec le numéro de sécurité
sociale (unique) comme clé primaire, la place occupée par les articles supprimés
pourra être réutilisée par de nouveaux articles présentant de nouvelles valeurs de clé.
47 F2 04UF Rev04
4-27
UFAS-EXTENDED - Guide de l'utilisateur
4-28
47 F2 04UF Rev04
5. Fichiers disque et bande - Affectation,
gestion des tampons et intégrité
5.1
PLAN DU CHAPITRE
• Paramétrage des fichiers en GCL/JCL.
• Paramétrage des fichiers dans les programmes utilisateur.
• Groupe de paramètres ASGn (affectation de fichiers).
• Types de volumes.
-
Volumes résidants.
Volumes de manoeuvre.
Volumes nommément désignés.
• Fichiers multivolumes.
-
Traitement partiel/extension du nombre de volumes.
Gestion du nombre d'appareils mobilisés (paramètre MOUNT).
• Pools d'appareils (paramètre POOL).
• Partage de fichier (paramètre SHARE).
• Règles de recouvrement des valeurs de paramètres.
• Groupe de paramètres DEFn (définition de fichiers).
• Gestion des tampons en traitement par lots/IOF.
-
47 F2 04UF Rev04
Paramètre POOLSIZE.
Paramètre BUFPOOL.
Paramètre NBBUF.
Optimisation des paramètres de gestion des tampons.
Statistiques UFAS-EXTENDED figurant dans le JOR.
5-1
UFAS-EXTENDED - Guide de l'utilisateur
• Journalisation.
-
Journal Avant (Before).
Journal Après (After).
• Maintien de l'intégrité des fichiers.
-
5-2
Phase de création.
Phase de traitement.
Phase d'extension.
Erreurs E/S persistantes.
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
5.2
PARAMETRAGE DES FICHIERS EN GCL
En environnement IOF, la réservation d'espace pour les fichiers et leur affectation au
traitement s'effectuent au moyen du langage GCL (langage de commande GCOS 7).
Le paramétrage des fichiers dans la commande GCL EXEC_PG est réalisable à l'aide
des groupes suivants :
ASGn
Groupe de paramètres d'affectation d'un fichier
programme à exécuter (voir plus loin dans ce chapitre).
au
ALCn
Groupe de paramètres de réservation d'espace pour un
fichier disque permanent ou temporaire (voir chapitre 6).
A noter par ailleurs que les paramètres DYNALC et
ALLOCATE
des
commandes
COPY_FILE
et
COMPARE_FILE permettent de demander la réservation
dynamique d'espace pour un fichier.
DEFn
Groupe de paramètres de définition d'un fichier (attributs et
options de traitement) (voir chapitre 6). Ces attributs et
options peuvent aussi être spécifiés au moyen des
paramètres INDEF et OUTDEF d'un utilitaire de gestion de
fichiers.
En ce qui concerne les pools d'appareils et de tampons, les paramètres utilisables sont
les suivants :
POOL
Paramètre de définition du pool d'appareils réservé à l'usage
du programme (voir plus loin dans ce chapitre).
POOLSIZE
Paramètre de définition du pool de tampons (taille maximale
de la mémoire tampon) (voir plus loin dans ce chapitre).
Ces éléments du langage GCL ne sont traités ici que du point de vue des fichiers UFASEXTENDED. Leur description complète est fournie dans le volume 2 du manuel de
référence de l'utilisateur IOF.
47 F2 04UF Rev04
5-3
UFAS-EXTENDED - Guide de l'utilisateur
5.3
PARAMETRAGE DES FICHIERS EN JCL
En environnement Traitement par lots ou TDS, la réservation d'espace pour les fichiers et
leur affectation au traitement s'effectuent en langage JCL (langage de gestion des
travaux).
Le paramétrage des fichiers dans la description du travail est réalisable au moyen des
ordres JCL suivants :
ASSIGN
Affectation d'un fichier au programme à exécuter.
ALLOCATE
Réservation d'espace pour un fichier disque permanent ou
temporaire.
DEFINE
Définition d'un fichier (attributs et options de traitement) ;
détermine notamment le nombre de tampons affectés à un
fichier (paramètre NBBUF).
En ce qui concerne les pools d'appareils et de tampons, les ordres JCL utilisables sont
les suivants :
POOL
Introduction d'un ou de plusieurs appareils dans le pool
réservé à l'usage du programme.
SIZE
Spécification de la taille de l'espace d'exécution (DWS) et de
celle de la mémoire tampon (paramètre POOLSIZE).
Ces éléments du langage JCL ne sont traités ici que du point de vue des fichiers UFASEXTENDED. Leur description complète est fournie dans le manuel de référence du
langage JCL.
Par ailleurs, la réservation dynamique d'espace pour un fichier peut se faire au moyen du
paramètre OUTALC de l'utilitaire CREATE. Les paramètres INDEF et OUTDEF des
utilitaires de gestion de données fournissent les attributs de fichier à utiliser par UFASEXTENDED. Voir le guide utilisateur consacré aux utilitaires de gestion de données.
5-4
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
5.4
PARAMETRAGE DES FICHIERS DANS LES PROGRAMMES
UTILISATEUR
Les programmes COBOL sont indépendants des attributs physiques des fichiers à traiter.
Dans un programme utilisateur, chaque fichier est désigné par un nom symbolique
n'ayant pas nécessairement de rapport avec son nom véritable. Ce nom symbolique est
appelé "nom de fichier interne", par opposition au nom véritable du fichier (c'est-à-dire son
nom d'accès), appelé "nom de fichier externe". L'association du nom de fichier interne au
nom de fichier externe doit être effectuée lors de la demande d'exécution du programme.
Cette opération s'appelle affectation de fichier (voir paragraphe "Groupe de paramètres
ASGn" plus loin dans ce chapitre).
Le programme utilisateur ne décrit donc que les caractéristiques logiques du fichier, par
exemple :
•
•
•
•
•
longueur d'article,
format d'article (fixe ou variable),
organisation (séquentielle, relative ou séquentielle indexée),
mode d'accès,
mode d'ouverture.
Certains langages de programmation permettent de déclarer le nombre de tampons, la
longueur de bloc, etc. Sous GCOS 7, il est préférable de fournir ces informations dans le
GCL ou dans le JCL, ce qui permet de changer les caractéristiques des fichiers sans
avoir à modifier - et donc à recompiler - les programmes. Les valeurs spécifiées dans le
label priment sur celles spécifiées au moyen du GCL et du JCL, lesquelles priment sur
celles spécifiées dans le programme (voir paragraphe 5.10).
47 F2 04UF Rev04
5-5
UFAS-EXTENDED - Guide de l'utilisateur
5.5
GROUPE DE PARAMETRES ASGn (AFFECTATION DE FICHIERS)
Dans la commande GCL EXEC_PG, l'utilisateur demande l'affectation au programme de
chaque fichier à traiter. Pour chaque fichier, il associe un groupe de paramètres ASGn
(spécifiant son nom externe et éventuellement certaines options de traitement) au
paramètre FILEn (désignant son nom interne).
V o lu m e d is q u e
PLM
P ro g ra m m e u tilis a te u r
V o lu m e d is q u e
PDVA
MUPPRG
F ic h ie r
F A .X
F ich ie r
E ta t
im p rim é
F A .Y
EXEC_PG MUPPRG
LIB = MY.LMLIB
FILE1 = IFB
ASG1 = FA.X:PLM:MS/D500
FILE2 = IFA
ASG2 = FA.Y
FILE3 = FX2
ASG3 = SYS.OUT;
Figure 5-1. Affectation de fichiers à un programme
Le programme MUPPRG accède à deux fichiers disque : FA.X dans le volume PLM, et
FA.Y dans le volume PDVA. Un état imprimé est généré par l'intermédiaire du mécanisme
SYSOUT standard.
Le fichier FA.X est permanent et non catalogué ; la réservation d'espace pour ce fichier et
le chargement des articles ont donc probablement eu lieu au cours d'un travail précédent.
Le fichier FA.Y est soit catalogué, soit temporaire, soit résidant : son nom de volume et sa
classe d'appareils n'ont donc pas à être spécifiés. Si ce fichier est catalogué, il l'a été par
la commande BUILD_FILE, CREATE_FILE ou MODIFY_FILE_STATUS, à l'exécution
d'un programme ou d'un travail précédent. GCOS 7 trouvera dans le catalogue les
informations concernant son implantation.
La figure 5-1 ne fournit qu'un exemple très simple d'utilisation des paramètres ASGn. La
syntaxe complète de ce groupe de paramètres est donnée dans la figure 5-2.
5-6
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
EXEC_PG
nom-programme
FILEn = nom-fichier-interne
ASGn = (nom-fichier-externe
WRITE
READ
SPREAD
SPWRITE
RECOVERY
ALLREAD
ACCESS =
NORMAL
ONEWRITE
SHARE =
MONITOR
déc-3
NBEFN =
ALL
déc-3
FIRSTVOL =
EOF
déc-3
LASTVOL =
EOF
END =
DEASSIGN
PASS
LEAVE
UNLOAD
ABEND =
DEASSIGN
PASS
LEAVE
UNLOAD
MOUNT = déc-3
POOL =
NO
FIRST
NEXT
0
DEFER =
1
0
OPTIONAL =
1
Figure 5-2. Affectation de fichiers dans la commande EXEC_PG (1/2)
47 F2 04UF Rev04
5-7
UFAS-EXTENDED - Guide de l'utilisateur
0
CATNOW =
1
EXPDATE =
jjj
aa/jjj
aa/mm/jj
DENSITY =
6250
1600
0
VOLWR =
);
1
Figure 5-2. Affectation de fichiers dans la commande EXEC_PG (2/2)
Pour une description complète de ces paramètres, se reporter au manuel de référence de
l'utilisateur IOF.
Dans le cas des fichiers catalogués, les informations minimum sont le nom de fichier
interne, désigné par le paramètre FILEn dans la commande EXEC_PG, et le nom de
fichier externe, désigné par le paramètre ASGn.
Pour les fichiers non catalogués, les informations minimum à fournir sont les suivantes :
•
•
•
•
nom de fichier interne,
nom de fichier externe,
volume disque ou bande (classique ou en cartouche) contenant le fichier,
classe d'appareils.
Les deux dernières indications sont inutiles lorsque le volume est de type résidant.
5-8
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
5.6
TYPES DE VOLUMES
Il existe trois types de volumes :
• les volumes résidants,
• les volumes de manoeuvre,
• les volumes nommément désignés.
5.6.1
Volumes résidants
Au début d'une session GCOS 7, l'opérateur peut déclarer certains volumes disque
"résidants" (RESIDENT). Ces volumes restent "en ligne" pendant toute la durée de la
session. Les fichiers à implanter ou à exploiter dans ces volumes peuvent être spécifiés
sans indication de nom de volume et de classe d'appareils (s'ils sont catalogués, par
exemple).
COMM
'LA COMMANDE GCL SUIVANTE DEMANDE L'AFFECTATION
D'UN FICHIER PRECEDEMMENT IMPLANTE DANS UN VOLUME
DISQUE RESIDANT OU D''UN FICHIER CATALOGUE';
EXEC_PG MONPROGRAMME
FILE1 = IFLQ
ASG1 = PY.RMSX;
COMM
'LA COMMANDE GCL SUIVANTE DEMANDE L'AFFECTATION
D'UN FICHIER TEMPORAIRE IMPLANTE DANS UN VOLUME
DISQUE RESIDANT';
EXEC_PG MONPG
FILE1 = INLBNB
ASG1 = TFX.P$TEMPRY;
Figure 5-3. Utilisation de volumes résidants
47 F2 04UF Rev04
5-9
UFAS-EXTENDED - Guide de l'utilisateur
5.6.2
Volumes de manoeuvre
A la différence des volumes résidants, qui sont toujours sur disque, les volumes de
manoeuvre (WORK) sont toujours sur bande (classique ou en cartouche). Leur
préparation s'effectue au moyen d'un utilitaire, par exemple, PREPARE_TAPE (PRPTP)
en GCL (équivalent JCL = VOLPREP).
Lorsqu'un volume WORK est spécifié, le système, à l'exécution du travail, demande à
l'opérateur de monter un volume de manoeuvre.
Pour pouvoir écrire sur une bande de manoeuvre, un programme doit savoir si le fichier
est permanent (valeur implicite) ou temporaire ($TEMPRY). S'il est temporaire, la bande
reste un volume de manoeuvre. S'il est permanent, elle cesse d'être un volume de
manoeuvre pour devenir un volume normal, nommément désigné.
COMM
'LE PARAMETRE ASGn CI-DESSOUS SPECIFIE UN FICHIER
TEMPORAIRE SUR BANDE DE MANOEUVRE. APRES EXECUTION
DU PROGRAMME, LA BANDE GARDERA L'ATTRIBUT WORK';
EXEC_PG MONPROGRAMME
FILE1 = INITX
ASG1 =(FIT.PM:WORK:MT/T9$TEMPRY);
COMM 'LA COMMANDE SUIVANTE SPECIFIE UN NOUVEAU FICHIER
PERMANENT A IMPLANTER SUR BANDE DE MANOEUVRE';
EXEC_PG MONPG
FILE1 = INQLP
ASG1 = (FIT.PM:WORK:MT/T9 EXPDATE=240);
COMM 'A NOTER QUE DANS CES DEUX COMMANDES, LES PARAMETRES
ASGn SPECIFIENT LE MEME NOM DE FICHIER FIT.PM.
GCOS 7 L'ACCEPTE, CAR LES DEUX FICHIERS ONT UN
STATUT DIFFERENT (TEMPORAIRE NON CATALOGUE ET
PERMANENT NON CATALOGUE). LA PROCHAINE FOIS QUE LE
FICHIER PERMANENT FIT.PM SERA UTILISE, UN NOM DE
VOLUME (CELUI DE LA BANDE DE MANOEUVRE, FIGURANT
DANS LE JOR) DEVRA ETRE SPECIFIE';
Figure 5-4. Utilisation de volumes de manoeuvre
Il est également possible d'utiliser des bandes de manoeuvre pour poursuivre le
traitement lorsqu'un fichier bande dépasse le nombre de volumes prévu (voir plus loin
"Fichiers multivolumes").
5-10
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
5.6.3
Volumes nommément désignés
C'est le type de volume le plus couramment utilisé. Chaque volume disque ou bande
standard a un nom, figurant dans son label. Ce nom est défini au moyen des commandes
suivantes :
PREPARE_DISK (PRPD) pour les disques,
PREPARE_TAPE (PRPTP) pour les bandes.
Une description détaillée de ces commandes est fournie dans le manuel de référence de
l'utilisateur IOF.
En JCL, la préparation des volumes disque et bande s'effectue au moyen de l'utilitaire
VOLPREP.
COMM
'LES TROIS GROUPES DE PARAMETRES ASGn CI-DESSOUS SPECIFIENT
DES FICHIERS NON CATALOGUES IMPLANTES DANS DES VOLUMES
NOMMEMENT DESIGNES';
EXEC_PG MONPROG
FILE1 = BINB
ASG1 = LM.PL:BD41:MS/D500
FILE2 = BINC
ASG2 = GHAC:1487D:MT/T9$TEMPRY
FILE3 = FRED
ASG3 = XA.BPLQ:TXAMB:MT/T9;
COMM
'A NOTER QUE LES VOLUMES NOMMEMENT DESIGNES PEUVENT CONTENIR
DES FICHIERS TEMPORAIRES OU PERMANENTS. MAIS EN GENERAL, LES
FICHIERS BANDE TEMPORAIRES SONT IMPLANTES DANS DES VOLUMES DE
MANOEUVRE';
Figure 5-5. Utilisation de volumes nommément désignés
47 F2 04UF Rev04
5-11
UFAS-EXTENDED - Guide de l'utilisateur
5.7
FICHIERS MULTIVOLUMES
Un fichier peut s'étendre sur plusieurs volumes. Dans ce cas, ceux-ci doivent être du
même type (c'est-à-dire soit tous des disques de même classe, soit tous des bandes de
même nombre de pistes). Pour plus de précisions sur les fichiers multivolumes et leur
utilisation suivant le type d'ouverture, voir chapitre 2.
L'utilisateur doit déclarer les noms de volumes (paramètres ASGn) dans le même ordre
que lors de la réservation d'espace (fichiers disque) ou de l'enregistrement initial (fichiers
bande).
Le nombre maximal de volumes autorisé pour un fichier non catalogué est de 10.
COMM
'LA COMMANDE SUIVANTE SPECIFIE UN FICHIER DISQUE MULTIVOLUME
NOMME MST.PLN';
EXEC_PG MONPG
FILE1 = FILA
ASG1 = (MST.PLN:11451/11452/11453:MS/D500);
COMM
'LA COMMANDE SUIVANTE SPECIFIE UN FICHIER BANDE MULTIVOLUME
A IMPLANTER SUR BANDES DE MANOEUVRE';
EXEC_PG MONPROG
FILE1 = FILB
ASG1 = (N.MSTPLN:WORK:MT/T9 EXPDATE = 340);
COMM
'EXPDATE GARANTIT AU FICHIER UNE DUREE DE VIE DE 340 JOURS';
Figure 5-6. Utilisation d'un fichier disque ou bande multivolume non catalogué
La figure suivante reprend l'exemple précédent, mais avec un fichier disque catalogué.
EXEC_PG MONPROGRAMME
FILE1 = FILA
ASG1 = MST.PLN;
Figure 5-7. Utilisation d'un fichier multivolume catalogué
Un fichier multivolume peut être temporaire ou permanent.
Lorsque le fichier est spécifié sur support de manoeuvre (WORK), le système utilise
automatiquement autant de volumes de manoeuvre que nécessaire. L'ordre de leur
utilisation apparaîtra dans l'historique du travail (JOR) et les noms de ces volumes
devront être réemployés dans toute référence ultérieure au fichier (si celui-ci n'est pas
temporaire).
Avec les fichiers multibandes ouverts en mode OUTPUT ou EXTEND, si l'utilisateur a
prévu un nombre insuffisant de volumes, il est possible d'employer des bandes de
manoeuvre supplémentaires. Dans ce cas, lorsque le système a atteint la fin de bande du
dernier volume spécifié, il demande à l'opérateur de monter un volume de manoeuvre.
L'opérateur peut refuser, auquel cas le travail est arrêté prématurément.
5-12
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
5.7.1
Traitement partiel et extension du nombre de volumes
Ces possibilités ne sont applicables qu'aux fichiers multivolumes bande (classique ou en
cartouche) et disque à organisation séquentielle.
Pour effectuer un traitement partiel (ne portant que sur certains volumes du fichier),
l'utilisateur peut sélectionner les volumes utiles lors de l'affectation au traitement, ce qui
permet une économie importante au niveau des lectures.
De même, pour ménager une extension éventuelle sur d'autres volumes (cas d'une
ouverture en mode EXTEND), il peut spécifier une liste de volumes commençant à celui
qui contient la fin de fichier. Dans le cas des disques, le premier volume de la liste doit
être le premier du fichier pour pouvoir disposer du label étendu.
Dans le cas d'un fichier UFAS-EXTENDED sur disque, le premier volume doit toujours
être monté, car il contient l'espace adresses 1.
Fichier FN AL.A
LBA
LBB
LBC
LBD
LBE
L e p ro g ra m m e lit u n iq u e m e n t le s a rtic le s e n re g is tré s d a n s le s vo lu m e s L B C e t L B D .
L e s vo lu m e s L B A , L B B e t L B E n e s o n t p a s u tilis é s .
Fichier H M Q C .41
PM1
PM2
PM3
PM 4
PM5
PM6
P M 4 e s t le v o lu m e c o n te n a n t a ctu e lle m e n t la fin d e fich ie r. S i l'o u ve rtu re s 'e ffe c tu e e n
m o d e E X T E N D , le s a d jo n ctio n s c o m m e n c e ro n t d a n s ce v o lu m e e t se p o u rs u ivro n t
é v e n tu e lle m e n t d a n s le s v o lu m e s ré se rv é s P M 5 , p u is P M 6 .
Fichier N CU .B X
148
?
L e fic h ie r tie n t a c tu e lle m e n t d a n s le s e u l vo lu m e 1 4 8 . S 'il e st o u v e rt e n m o d e E X T E N D ,
le s a d jo n ctio n s p o u rro n t é ve n tu e lle m e n t s e p o u rs u iv re d a n s u n o u p lu sie u rs vo lu m e s
d e m a n o e u vre .
S i le s fic h ie rs F N A L .A , H M Q C .4 1 e t N C U .B X s o n t ca ta lo g u é s , la p ro g ra m m a tio n d e s
e x e m p le s d o n n é s ici se ra la su iv a n te :
EXEC_PG MONPROG
LIB = MY.LIB:MSD:MS/D500
FILE1 = FLA
ASG1 = (FNAL.A FIRSTVOL = 3 LASTVOL = 4)
FILE2 = FLB
ASG2 = (HMQC.41 FIRSTVOL = 4)
FILE3 = FLC
ASG3 = NCU.BX;
Figure 5-8. Traitement partiel/extension de fichiers bande multivolumes
47 F2 04UF Rev04
5-13
UFAS-EXTENDED - Guide de l'utilisateur
5.7.2
Gestion du nombre d'appareils mobilisés (paramètre MOUNT)
Cette possibilité n'est applicable qu'aux fichiers multivolumes bande (classique ou en
cartouche) et disque à organisation séquentielle.
Fichiers disque :
Dans les exemples fournis jusqu'ici, pour chaque fichier considéré, tous les volumes
devaient être "en ligne" simultanément et un groupe de paramètres ASGn spécifiant cinq
volumes nécessitait donc cinq unités de disques.
Il est possible de réduire le nombre de disques mobilisés en utilisant le paramètre
MOUNT du groupe ASGn. Pour les disques "non fixes", ce paramètre permet de spécifier
le nombre maximal de volumes montables simultanément pour un fichier (séquentiel
uniquement). Sa valeur implicite pour les disques étant le nombre total de volumes du
fichier, sa logique d'utilisation est la réduction du nombre d'appareils.
Fichiers bande :
Inversement, pour les bandes, la logique d'utilisation du paramètre MOUNT est
l'augmentation du nombre d'appareils. Sa valeur implicite est 1 (un seul volume montable
simultanément, donc un seul dérouleur mobilisé). Cette option a l'inconvénient
d'interrompre le déroulement du programme chaque fois que le traitement doit passer au
volume suivant (sauf si celui-ci a été monté à l'avance sur un autre appareil). Si
l'utilisateur spécifie MOUNT = 2 (valeur la plus couramment employée avec la valeur
implicite), deux dérouleurs sont mobilisés. L'opérateur peut ainsi monter les deux volumes
à l'avance et le passage de l'un à l'autre s'effectue sans son intervention (voir figure 5-9).
5-14
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
COMM
'UTILISATION DU MAXIMUM DE PERIPHERIQUES';
EXEC_PG MONPROGRAMME
FILE1 = GLBE
ASG1 = (REL.X MOUNT = 4);
M T01
M T02
M T03
M T 04
MA1
MA2
MA3
MA4
COMM
U tilisa tio n d e
q u a tre d é ro u le u rs
'UTILISATION DU MINIMUM DE PERIPHERIQUES';
EXEC_PG MONPG
FILE1 = GLBE
ASG1 = (REL.X MOUNT = 1);
M T01
M T01
M T01
MA1
MA2
MA3
COMM
M T 01
MA4
U tilis a tio n d 'u n
se u l d é ro u le u r
'MONTAGE A L'AVANCE PAR L'OPERATEUR';
EXEC_PG PROGRAMME
FILE1 = GLBE
ASG1 = (REL.X MOUNT = 2);
M T01
M T02
M T01
M T 02
MA1
MA2
MA3
MA4
U tilis a tio n d e
d e u x d é ro u le u rs
Figure 5-9. Gestion des périphériques pour le traitement des fichiers multivolumes
Le paramètre MOUNT peut s'appliquer aux fichiers bande permanents (catalogués ou
non) et temporaires (voir chapitre 7, paragraphe 7.2).
Si l'utilisateur spécifie WORK pour un fichier multivolume, le système considère que
MOUNT = 1.
La valeur de MOUNT reste effective lorsque le traitement d'un fichier se poursuit avec des
volumes de manoeuvre.
47 F2 04UF Rev04
5-15
UFAS-EXTENDED - Guide de l'utilisateur
5.8
POOLS D'APPAREILS (PARAMETRES POOL)
Nous venons de voir que le paramètre MOUNT permet de moduler le nombre d'appareils
mobilisables pour un fichier multivolume. Une autre forme de gestion des périphériques
consiste à partager des appareils entre plusieurs fichiers.
Dans les exemples présentés jusqu'ici, tous les fichiers cités par les paramètres ASGn
devaient être "en ligne" en début d'exécution du programme. Ainsi, dans l'exemple de la
figure 5-8, six dérouleurs devaient être disponibles en même temps. Pourtant, si le
traitement du fichier FNAL.A est complètement terminé au moment où commence celui
du fichier HMQC.41, il devient possible d'utiliser les mêmes dérouleurs pour les deux
fichiers.
Pour ce faire, il suffit de définir un pool d'appareils au moyen du paramètre POOL de la
commande EXEC_G et du paramètre POOL du groupe ASGn. Ces paramètres sont
décrits dans le volume 2 du manuel de référence de l'utilisateur IOF (22UJ/23UJ).
Le fonctionnement du pool dépend de la logique du programme. Lorsqu'il a terminé le
traitement d'un fichier, celui-ci doit signaler à GCOS 7 que le fichier peut être libéré, les
appareils utilisés redevenant disponibles. (En COBOL, option WITH LOCK dans
l'instruction CLOSE).
Dans la figure ci-dessous, le programme SLICK utilise trois fichiers disque : DF.A, DF.B
et DF.C. Le traitement de DF.A doit être entièrement terminé avant que celui de DF.C
puisse commencer.
S L IC K
BD14
D F .A
EX58
OPEN
.
.
.
CLOSE
OPEN
.
.
.
CLOSE
BD 18
FDFA, FDFB
D F .B
FDFA WITH LOCK
FDFC
FDFB, FDFC
D F .C
EXEC_PG SLICK
LIB = AX.LIB
POOL = 1*MS/D500
FILE1 = FDFA
ASG1 = (DF.A POOL = FIRST)
FILE2 = FDFA
ASG2 = DF.B
FILE3 = FDFC
ASG3 = (DF.C POOL = NEXT);
Figure 5-10. Mise en oeuvre d'un pool d'appareils
5-16
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
La figure 5-10 illustre la mise en oeuvre d'un pool constitué d'une seule unité de disques
MS/D500. Deux fichiers, DF.A et DF.C, utiliseront successivement cette unité (présence
du paramètre POOL dans ASG1 et ASG3). Au lancement du programme, seul DF.A
(désigné comme étant le premier par le paramètre FIRST) sera monté. DF.C ne sera
monté qu'au moment de son ouverture par le programme, lorsque l'unité de disques
deviendra disponible. Ainsi, le programme SLICK utilise seulement deux unités de
disques pour traiter trois fichiers.
A noter que l'unité de disques utilisée pour le fichier DF.B ne fait pas partie du pool
(absence du paramètre POOL dans ASG2).
Un programme n'admet qu'un seul pool par type d'appareils.
Dans cet exemple, le pool est constitué d'une seule unité de disques, mais un pool
comporte généralement plusieurs appareils. Si l'un au moins des deux fichiers DF.A et
DF.C occupait deux volumes, le paramètre POOL de la commande EXEC_PG devrait
être spécifié comme suit :
POOL 2*MS/D500
Les disques ou les bandes constituant le pool sont nécessairement du même type. Les
fichiers peuvent être temporaires ou permanents. Le paramètre MOUNT est utilisable
sans restrictions.
47 F2 04UF Rev04
5-17
UFAS-EXTENDED - Guide de l'utilisateur
5.9
PARTAGE DE FICHIER (PARAMETRE SHARE)
Le partage de fichier permet à plusieurs programmes d'accéder concurremment au
même fichier. Cette possibilité s'applique uniquement aux fichiers disque.
C'est le paramètre SHARE qui spécifie le mode de partage d'un fichier. Il définit le niveau
maximal autorisé pour la concurrence d'accès.
Pour les fichiers catalogués, il suffit de spécifier le mode d'accès (ACCESS), car le mode
de partage (SHARE) fait partie des attributs du fichier enregistrés dans le catalogue.
La figure 5-11 illustre le cas de partage d'un même fichier par deux activités différentes :
EXEC_PG
MONPG1
EXEC_PG
FILE1 = IFA
ASG1 = (XP.ML
SHARE = NORMAL
ACCESS = READ)...;
MONPG2
FILE1 = MX
ASG1 = (XP.ML
SHARE = NORMAL
ACCESS = READ)...;
Figure 5-11. Partage d'un fichier par deux activités
Les deux noms de fichier internes (IFA et MX) sont associés au même nom de fichier
externe (XP.ML).
Le fichier XP.ML sera accessible par le programme MONPG1 sous le nom IFA et par le
programme MONPG2 sous le nom MX.
Les différents modes de partage sont les suivants :
SHARE = NORMAL
SHARE = ONEWRITE
(valeur implicite) Plusieurs utilisateurs en lecture ou un
seul utilisateur en écriture par fichier. Le verrouillage
s'effectue au niveau fichier.
Plusieurs utilisateurs en lecture et un seul utilisateur en
écriture par fichier. Le verrouillage s'effectue au niveau
fichier.
ATTENTION :
Ne pas utiliser SHARE = FREE (plusieurs utilisateurs en lecture et en
écriture sans aucun contrôle).
A noter qu'à l'affectation d'un fichier catalogué, si l'utilisateur spécifie SHARE avec une
valeur différente de celle figurant dans le catalogue, c'est la valeur du catalogue qui
prévaut et le programme aura l'accès exclusif au fichier (ACCESS = READ devient
ACCESS = SPREAD, et ACCESS = WRITE devient ACCESS = SPWRITE).
Pour assurer l'accès exclusif à un fichier, il est cependant préférable de spécifier
ACCESS = SPREAD ou ACCESS = SPWRITE, selon le cas, quelle que soit la valeur de
SHARE.
La figure 5-12 indique les types de partage possibles avec SHARE = NORMAL et
SHARE = ONEWRITE.
5-18
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
V a le u rs d e s p a ra m è tre s
ACCESS
T y pe d e p a rta g e d e m an d é
SHARE
W R IT E
NO RM AL
Usage exclusif (valeur implicite).
S P W R IT E
NO RM AL
Usage exclusif.
READ
NO RM AL
Lecture en concurrence avec d'autres utilisateurs en lecture.
SPREAD
NO RM AL
Lecture exclusive.
READ
O N E W R IT E
Lecture en concurrence avec d'autres utilisateurs en lecture
et un seul utilisateur en écriture.
SPREAD
O N E W R IT E
Lecture exclusive.
W R IT E
O N E W R IT E
Ecriture en concurrence avec d'autres utilisateurs en lecture.
S P W R IT E
O N E W R IT E
Usage exclusif.
Figure 5-12. Combinaisons SHARE/ACCESS
La figure 5-13 ci-après récapitule les différents types de partage pouvant être demandés
par l'utilisateur. La demande peut être acceptée ou refusée, selon le type de partage
actuel du fichier. Par exemple :
un fichier affecté avec les valeurs
ACCESS = READ
et
SHARE = ONEWRITE
peut être partagé avec un autre travail spécifiant les valeurs
ACCESS = WRITE
et
SHARE = ONEWRITE
Le type de partage (SHARE + ACCESS) est indépendant de l'organisation de fichier.
L'utilisateur doit observer les règles suivantes :
• Un fichier ouvert en mode OUTPUT ne peut pas être partagé (puisque ce mode
correspond à la phase de chargement initial).
• Les fichiers séquentiels indexés peuvent être partagés en mode ONEWRITE.
Remarque importante :
Pendant les réorganisations incrémentales de CI, il n'y a plus verrouillage de la totalité
du fichier comme c'était le cas sous UFAS, ce qui tend à réduire le nombre des conflits
d'accès. Le fichier reste accessible en lecture par plusieurs utilisateurs.
47 F2 04UF Rev04
5-19
UFAS-EXTENDED - Guide de l'utilisateur
Affectation/partage d'un fichier avec END = PASS
Lorsqu'un fichier a été affecté à un premier travail avec l'option END = PASS, il n'est pas
possible de l'affecter à un second travail avec END = PASS tant qu'il n'a pas été libéré par
le premier travail. Cette restriction évite les blocages de traitement (deadlocks).
Type
d'accès/de
partage actuel
T yp e d 'a c c è s /d e p a rta ge d e m a n d é
W R IT E / S P W R IT E / R E A D /
NORM AL NORM AL NORM AL
SPR EAD /
N OR M AL
READ/
SPREAD/
W R IT E /
S P W R IT E /
O N E W R IT E O N E W R IT E O N E W R IT E O N E W R IT E
WRITE/NORMAL
S P W R IT E /N O R M A L
R E A D /N O R M A L
READ
NORM AL
S P R E A D /N O R M A L
SPR EAD * SPR EAD * SPR EAD *
NORMAL NORMAL NORMAL
R E A D /O N E W R IT E
READ
NORM AL
SPREAD/
O N E W R IT E
S P W R IT E * S P W R IT E *
SPR EAD * SPR EAD * SPREAD * SPREAD*
N O R M A L N O R M A L O N E W R IT E O N E W R IT E O N E W R IT E O N E W R IT E
S P W R IT E *
W R IT E
O N E W R IT E O N E W R IT E
W R IT E /O N E W R IT E
S P W R IT E /
O N E W R IT E
SPR EAD * READ
NO RM AL NORM AL
SPR EAD *
NO RM AL
SPR EAD *
NORMAL
SPR EAD *
SPR EAD * READ
N O R M A L O N E W R IT E N O R M A L
S P W R IT E *
O N E W R IT E
W R IT E
S P W R IT E *
O N E W R IT E O N E W R IT E
S P W R IT E *
O N E W R IT E
Figure 5-13. Règles de partage d'un fichier
Les cases vides indiquent que le partage est refusé. Les astérisques signifient qu'il n'est
autorisé qu'à l'intérieur de la même activité.
5-20
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
5.10
REGLES DE RECOUVREMENT DES VALEURS DE PARAMETRES
AVERTISSEMENT
L'utilisateur doit, dans la mesure du possible, veiller à la cohérence
des valeurs qu'il spécifie. Certains contrôles sont cependant assurés :
par exemple, un contrôle est prévu à l'ouverture du fichier pour vérifier
que la longueur d'article est identique à celle déclarée dans le
programme. En COBOL 85, d'autres contrôles ont lieu, et toute
incohérence entre programme et fichier provoque un arrêt prématuré
avec envoi du code retour OVRVIOL.
Lorsqu'un programme ouvre un fichier, UFAS-EXTENDED doit disposer d'un minimum
d'informations pour le traitement. Des attributs tels que taille de CI (taille de bloc pour les
fichiers bande), longueur et format des articles, nombre de tampons, par exemple,
doivent donc être déclarés explicitement, ou fournis implicitement.
Les informations nécessaires peuvent provenir de plusieurs sources :
• Le label du fichier, s'il est déjà créé.
Pour un fichier disque existant ou un fichier bande d'entrée, les valeurs spécifiées dans
le label priment sur celles spécifiées dans le programme et sur celles spécifiées au
moyen du GCL ou du JCL.
Il n'y a pas d'informations label dans les cas suivants :
-
fichier bande de sortie (voir chapitre 7, paragraphe 7.7) ;
-
fichier disque à créer dynamiquement au moyen du groupe de paramètres ALCn
(voir chapitre 6).
• Le groupe de paramètres d'affectation de place ALCn (équivalent JCL = ALLOCATE)
et le groupe de paramètres de définition de fichiers DEFn (équivalent JCL = DEFINE),
qui peuvent être associés à un groupe de paramètres ASGn (équivalent JCL =
ASSIGN).
Les valeurs déclarées dans le GCL ou le JCL (par exemple, nombre de tampons ou
CISIZE) priment sur celles du programme. Le groupe de paramètres DEFn est décrit
plus loin dans ce chapitre et au chapitre 6 (paragraphe 6.8.4).
• Les attributs fournis par le programme utilisateur (généralement implicites).
47 F2 04UF Rev04
5-21
UFAS-EXTENDED - Guide de l'utilisateur
Les règles générales de recouvrement des valeurs de paramètres de définition de fichiers
sont les suivantes :
Règles 1 :
Ces règles s'appliquent si le fichier existe déjà. Voir avertissement plus haut.
1.
Label du fichier (et VTOC pour les fichiers disque).
2.
Catalogue (pour les fichiers catalogués).
3.
Paramètres de définition de fichier (GCL ou JCL).
4.
Valeur déterminée par une commande (par exemple, valeur figurant dans la FD d'un
programme COBOL si la commande EXEC_PG est utilisée ou valeur implicite pour
un utilitaire).
1. prévaut sur 2., qui prévaut sur 3., qui prévaut sur 4. Voir avertissement plus haut.
Règles 2 :
Ces règles s'appliquent si le fichier n'existe pas encore (fichier à créer dynamiquement au
moyen du groupe de paramètres ALCn en GCL ou de l'ordre ALLOCATE en JCL).
1.
Paramètres de définition de fichier (GCL ou JCL).
2.
Attribut implicite du fichier (fourni automatiquement par le programme COBOL ou
par un utilitaire).
3.
Valeur déterminée par une commande (voir règles n°1).
1. prévaut sur 2., qui prévaut sur 3. Voir avertissement plus haut.
Les paramètres du groupe DEFn (équivalent JCL = DEFINE) n'ont pas de valeur implicite.
Si l'utilisateur ne fournit pas de valeur pour l'un de ces paramètres, elle lui sera
automatiquement attribuée en fonction des deux règles énoncées ci-dessus ; par
exemple :
• CISIZE sera forcé à 2048 octets (3584 pour les unités de disques MS/D500 et MS/B10
si les commandes CREATE_FILE ou CREATE_FILESET sont utilisées).
• CIFSP sera forcé à 0.
Le paramètre FPARAM permet d'indiquer si les valeurs de paramètres de définition
fournies par l'utilisateur doivent primer sur celles figurant dans le label du fichier.
• Si FPARAM = 0 (valeur implicite), ce sont les valeurs du label de fichier qui priment
(dans le cas d'un fichier existant).
• Si FPARAM = 1, ce sont les valeurs des paramètres de définition qui priment (dans le
cas d'un fichier existant). Cette option n'est à utiliser que dans certains cas particuliers :
par exemple, lorsque le fichier n'est pas standard, et/ou lorsqu'il est à recharger
conformément aux paramètres de définition spécifiés.
• Dans le cas de fichiers catalogués, FPARAM ne peut pas être utilisé pour imposer des
valeurs différentes de celles figurant dans le catalogue.
5-22
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
5.11
GROUPE DE PARAMETRES DEFn (DEFINITION DE FICHIERS)
Comme indiqué plus haut, les attributs de fichier définis dans le catalogue priment sur
ceux définis au moyen du groupe de paramètres DEFn. Il est donc préférable - dans la
mesure du possible - de définir ces attributs dans le catalogue.
Si le groupe de paramètres de définition de fichiers DEFn (équivalent JCL = DEFINE) est
présent dans la commande EXEC_PG, il est associé à un paramètre FILEn (nom de
fichier interne) et à un groupe de paramètres d'affectation de fichiers ASGn (équivalent
JCL = ASSIGN).
EXEC_PG MONPROGRAMME
FILE1 = TFX
ASG1 = JC.JHB ...
DEF1 = (paramètres-définition-fichier);
Le groupe de paramètres DEFn permet de :
• spécifier certains paramètres d'exécution valables uniquement pour la durée du
programme consideré (par exemple, nombre de tampons) ;
• décrire les attributs du fichier dans les trois cas suivants :
-
fichier disque à créer dynamiquement (présence du groupe de paramètres
d'affectation de place ALCn),
fichier bande de sortie,
fichier bande d'entrée sans label ;
• traiter les fichiers bande non standard.
Voir ci-après le groupe de paramètres DEFn applicable aux tampons (syntaxe complète
au paragraphe 6.8.4). A noter qu'il est fortement recommandé de spécifier le type de
journalisation dans le catalogue, au lieu d'utiliser DEFn.
EXEC_PG MONPG
FILEn = nom-de-fichier-interne
ASGn = nom-de-fichier-externe
DEFn = ( [BUFPOOL = nom-4]
[NBBUF = déc-3] )
Les paramètres du groupe DEFn n'ont pas de valeur implicite. Les valeurs spécifiées pour
ces paramètres s'ajoutent à celles déclarées dans le programme ou s'y substituent (voir
paragraphe 5.10).
Pour une description complète de ce groupe de paramètres, se reporter au manuel de
référence de l'utilisateur IOF et au manuel de référence JCL.
47 F2 04UF Rev04
5-23
UFAS-EXTENDED - Guide de l'utilisateur
5.12
GESTION DES TAMPONS
Ce paragraphe doit permettre à l'utilisateur de mieux comprendre la mise en oeuvre des
tampons lors de l'exécution d'un programme. Le mécanisme d'accès aux tampons est
transparent pour l'utilisateur : tout se passe au niveau d'UFAS-EXTENDED et d'autres
modules logiciels avec lesquels ce système coopère, comme le gestionnaire de mémoire
virtuelle (VMM).
L'utilisation de tampons, qui permet de travailler avec d'importantes quantités de données
en mémoire principale, a pour but de minimiser le nombre d'accès disque.
Les tampons sont des zones de mémoire où sont chargés les CI (disque) ou les blocs
(bande) contenant les articles à traiter (en lecture ou en écriture). Tant que les articles à
traiter sont dans un tampon, les instructions READ et WRITE du programme COBOL
n'impliquent pas d'opérations d'E/S sur le fichier, d'où un gain de temps important.
En GCL, les paramètres de gestion des tampons pour l'exécution d'un programme sont
les suivants :
POOLSIZE
BUFPOOL
NBBUF
dans la commande EXEC_PG demandant l'exécution du
programme (en JCL, ce paramètre figure dans l'ordre
SIZE).
dans le groupe de paramètres de définition de fichiers
DEFn (équivalent JCL = DEFINE).
dans le groupe de paramètres de définition de fichiers
DEFn (équivalent JCL = DEFINE).
EXEC_PG MONPROG
[SIZE = déc8]
[POOLSIZE = déc8]...
}
} au niveau programme
}
FILE1 = NFI1
}
au
ASG1 = NFE1
} niveau
DEF1 = ([BUFPOOL = nom-4 NBBUF = déc3])
} fichier
FILE2 = NFI2
}
ASG2 = NFE2
}
DEF2 = ([BUFPOOL = nom4 NBBUF = déc3]...); }
Désormais, de même que les applications TDS, les applications traitement par lots
importantes peuvent utiliser des pools de tampons de grande taille (voir exemples au
paragraphe 5.12.4 pour plus de détails).
Les paragraphes suivants décrivent l'utilisation des tampons dans les applications
transactionnelles, traitement par lots et IOF.
5-24
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
P O O L S IZ E (m a x. 2 0.0 0 0 ta m p o ns )
S e g m e n ts
de code
P o o l d e ta m p o n s P s e u d o -p o o l
(n o m T D S )
(D E F T )
P o ol d e ta m po n s
B U F P O O L = no m
S e g m e n ts
de données
S tru ctu re
in te rn e
e tc .
.
.
.
.
.
.
.
.
.
.
.
4000
Figure 5-14. Structure de la mémoire tampon
A noter que c'est l'attribut ICA (isolation des activités) qui permet de garantir à l'activité
une quantité de mémoire suffisante pour s'exécuter dans la dimension. L'option MINMEM
de l'ordre JCL SIZE ne doit plus être utilisée.
Le paramètre POOLSIZE de l'ordre JCL SIZE spécifie la taille maximale de l'espace
mémoire à réserver aux pools de tampons, à savoir :
• un pseudo-pool nommé DEFT (dont les tampons ne sont pas partageables par les
fichiers) ;
• un pool "réel", portant le nom de l'application TDS ;
• le cas échéant, un pool de tampons non-TDS, portant le nom défini par le paramètre
BUFPOOL de l'ordre JCL DEFINE.
A noter que le nombre de tampons est limité à 20.000 par travail. Pour une application
TDS, la clause RESERVE AREAS spécifie ces tampons dans le pool principal ; pour une
application IOF ou traitement par lots, le paramètre NBBUF de l'ordre JCL DEFINE
permet de les spécifier dans d'autres pools. Le nombre de tampons par pool doit
correspondre au total des valeurs de NBBUF pour tous les fichiers du pool.
Le pseudo-pool représenté en pointillé à la figure 5-15 comporte cinq tampons.
47 F2 04UF Rev04
5-25
UFAS-EXTENDED - Guide de l'utilisateur
5.12.1
Paramètre POOLSIZE
Ce paramètre spécifie (en Koctets) la taille maximale de l'espace mémoire à réserver aux
tampons. C'est cet espace qu'UFAS-EXTENDED utilisera pour créer et manipuler des
tampons. Il est recommandé de spécifier pour POOLSIZE une valeur bien supérieure à
sa valeur implicite (27 Ko).
La valeur de POOLSIZE doit être de préférence un multiple de 4 Ko.
Si l'application utilise plusieurs pools de tampons (voir plus loin), POOLSIZE indique la
taille mémoire à réserver pour tous les pools.
APPLICATIONS TDS :
Pour les applications TDS, il faut prévoir de réserver de l'espace mémoire pour tous les
pools de tampons, y compris le pseudo-pool DEFT, en procédant comme suit :
1.
Selon le modèle de DPS 7000, la quantité de mémoire à réserver aux tampons
représente 20 à 50 % (parfois plus) de l'espace mémoire total.2. Répartir la mémoire
tampon entre les différentes applications TDS, en tenant compte de facteurs tels que
la taille de l'application, le nombre de fichiers pouvant être ouverts concurremment,
etc.
3.
Evaluer le nombre maximal de tampons par pool (voir paragraphe 5.12.3).
4.
Adapter la taille de l'espace d'exécution déclaré (DWS).
Chaque fois que l'utilisateur augmente la taille de la mémoire tampon (POOLSIZE), il
doit veiller à accroître en conséquence la taille de l'espace d'exécution DWS. Ces
deux paramètres font partie de l'ordre JCL SIZE.
5.
5-26
Adapter le nombre de tampons à la valeur de POOLSIZE (voir paragraphe 5.12.3).
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
APPLICATIONS TRAITEMENT PAR LOTS ET IOF :
La formule suivante permet de calculer approximativement la valeur de POOLSIZE :
POOLSIZE = (nbpg moyen * 4 Ko) * NBBUF
nbpg étant le nombre de pages nécessaires pour un CI, c'est-à-dire :
nbpg = CISIZE
4096
arrondi au multiple supérieur de 4 Ko
Si la valeur obtenue pour POOLSIZE est, par exemple, de 400 Ko, l'utilisateur peut
spécifier :
EXEC_PG MONPROG
SIZE = 500
POOLSIZE = 400;
47 F2 04UF Rev04
5-27
UFAS-EXTENDED - Guide de l'utilisateur
5.12.2
Paramètre BUFPOOL
Ce paramètre, lorsqu'il est présent, spécifie le nom du pool de tampons à utiliser pour un
fichier.
Les fichiers associés à un même pool en partagent les tampons.
La constitution de pools permet donc de réduire l'espace mémoire global alloué aux
tampons en partageant une certaine partie de cet espace entre plusieurs fichiers.
Lorsqu'UFAS-EXTENDED reçoit une demande de lecture de CI, il vérifie si ce CI est
présent dans l'un des tampons existants. Dans le cas contraire, UFAS-EXTENDED
cherche un tampon inutilisé pour y charger le contenu du CI.
L'utilisation du paramètre BUFPOOL est recommandée pour les applications utilisant de
nombreux fichiers en accès direct.
BUFPOOL fait partie du groupe de paramètres de définition de fichiers DEFn (équivalent
JCL = DEFINE).
APPLICATIONS TDS :
Avec UFAS-EXTENDED, l'utilisation d'un pool de grande taille peut permettre une
importante amélioration des performances du système :
• réduction du nombre d'opérations d'E/S pouvant atteindre 50 %,
• amélioration des temps de réponse.
5-28
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
Chaque application TDS dispose implicitement :
• d'un pool de tampons pour tous les fichiers contrôlés par TDS (ce pool porte le nom de
l'application TDS) ;
• d'un pseudo-pool (DEFT) automatiquement fourni pour les fichiers non contrôlés par
TDS.
Les tampons du pool DEFT présentent l'inconvénient de ne pas être partageables par les
fichiers non contrôlés par TDS (H_CTLN par exemple).
Il est généralement recommandé de se limiter à un seul pool de tampons (nom-tds) pour
les applications TDS, mais de ne pas spécifier de pool pour les fichiers :
• à accès séquentiel. En effet, ces fichiers ne nécessitent que quelques tampons à la fois
(2 pour les fichiers séquentiels, une dizaine pour les autres).
• à accès direct avec un petit nombre de CI. Ces fichiers doivent être regroupés dans un
pool spécifique, avec un nombre de tampons égal au nombre total de CI.
Le pool principal peut être complété d'un deuxième pool, utilisable pour des fichiers
d'entrée comportant des tables (exemple : nom et adresse des clients) ou les
caractéristiques des produits dans une application de gestion de stocks. Autre possibilité
d'emploi : pour les fichiers séquentiels indexés à accès séquentiel (afin d'éviter une
saturation du pool principal).
Pour chaque fichier associé à un pool, il est nécessaire de spécifier :
• le nom du pool (BUFPOOL),
• le nombre de tampons (NBBUF).
47 F2 04UF Rev04
5-29
UFAS-EXTENDED - Guide de l'utilisateur
Ces deux paramètres font partie du groupe de paramètres DEFn (équivalent JCL =
DEFINE).
En cas d'omission, les valeurs implicites suivantes s'appliquent :
• BUFPOOL = nom de l'application TDS (nom-tds),
• NBBUF = nombre de tampons déclaré dans la clause "RESERVE n AREAS".
A noter que la valeur définie par "RESERVE n AREAS" correspond à l'ensemble des
tampons d'une application TDS.
APPLICATIONS TRAITEMENT PAR LOTS ET IOF :
Il est possible de définir un ou plusieurs pools, ou de n'en définir aucun, mais l'utilisation
d'un pool est conseillée dès que l'on accède non séquentiellement à des activités
impliquant cinq fichiers minimum. Ne pas spécifier de pool pour des fichiers auxquels on
accède séquentiellement, mais utiliser de préférence le mécanisme d'antémémoire LMC.
A noter que l'utilisation de pools de tampons multiples est réservée à des cas spécifiques.
5-30
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
5.12.3
Clause RESERVE AREAS/Paramètre NBBUF
Le paramètre NBBUF permet de définir le nombre de tampons à associer à un fichier.
NBBUF fait partie du groupe de paramètres de définition de fichiers DEFn (voir plus haut),
et de l'ordre JCL équivalent DEFINE.
Le nombre minimal de tampons par fichier est 1, indépendamment de l'organisation et du
type d'accès.
Les valeurs implicites de NBBUF sont les suivantes :
• NBBUF = 2 pour les fichiers en accès séquentiel.
• NBBUF = 1 pour les fichiers en accès non séquentiel.
• NBBUF = 1 pour les fichiers séquentiels indexés en accès direct. Le système réserve
aussi des tampons supplémentaires pour la réorganisation incrémentale de CI.
• NBBUF = 4 pour les aires IDS/II.
Le nombre de tampons peut être défini :
• soit pour chaque fichier,
• soit au niveau du pool (les tampons étant partagés par plusieurs fichiers).
Dans la mesure du possible, il est préférable d'utiliser un pool et de spécifier le même
nombre de tampons (NBBUF) pour chacun des fichiers associés à ce pool.
47 F2 04UF Rev04
5-31
UFAS-EXTENDED - Guide de l'utilisateur
APPLICATIONS TDS :
Le nombre de tampons spécifié dans la clause RESERVE AREAS doit être choisi de
manière à optimiser l'utilisation de la mémoire tampon (POOLSIZE). Le nombre maximal
de tampons est de 20.000 pour une application TDS, et de 32.000 au niveau système.
Spécifier une valeur approximative, en utilisant la formule :
nombre de tampons = POOLSIZE divisé par (nb de pages * 4 Ko)
Par exemple, pour une taille de CI (CISIZE) de 6 Ko, il faut 2 pages de mémoire, car
chaque page occupe 4 Ko. A noter que :
nombre de pages = CISIZE divisé par 4096 et arrondi
au multiple supérieur de 4 Ko.
Il est possible d'affiner cette évaluation en se référant aux valeurs de USED SIZE et
POOLSIZE figurant dans le JOR. Si USED SIZE est inférieur à POOLSIZE, porter le
nombre de tampons à la valeur maximale spécifiée dans la clause RESERVE AREAS ;
sinon, diminuer la valeur de POOLSIZE et la taille de l'espace d'exécution déclaré (DWS).
Si le nombre de pools de tampons est supérieur ou égal à deux, spécifier le même
nombre de tampons (paramètre NBBUF de l'ordre DEFINE) pour chaque fichier associé à
un même pool (voir deuxième exemple TDS plus loin dans ce chapitre).
APPLICATIONS TRAITEMENT PAR LOTS ET IOF :
Chaque fichier dispose implicitement d'un ou de deux tampons, de manière à respecter la
condition suivante :
POOLSIZE => (nb. de pages * nb. de tampons)
Si les valeurs implicites ne conviennent pas, utiliser le paramètre NBBUF du groupe de
paramètres DEFn (équivalent JCL = DEFINE) pour les remplacer.
En règle générale, le nombre de tampons par fichier (NBBUF) ne doit pas être inférieur
à 6 auquel on ajoute le nombre d'index secondaires. L'application de cette règle - au lieu
d'utiliser le nombre habituel de 100 tampons pour 3 fichiers à accès séquentiel et à
plusieurs index secondaires - permet d'accroître sensiblement les performances du
système.
Dans les premiers exemples IOF et traitement par lots (voir ci-après), le nombre de
tampons est spécifié pour chaque fichier au moyen du paramètre NBBUF.
5-32
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
5.12.4
Exemples d'utilisation des tampons
Premier exemple TDS
Cet exemple comporte un seul pool, portant le nom de l'application TDS (à savoir TSIC).
Soit un nombre de tampons égal à 1000 (défini dans la clause "RESERVE n AREAS").
$JOB TDS-EX USER=BULL1;
$JOBLIB SM,TSIC.SMLIB;
STEP TSIC,FILE=(TSIC.LMLIB),REPEAT
DUMP=NO;
SIZE 4500 POOLSIZE=4000;
ASSIGN IFN1 EFN1;
ASSIGN IFN2 EFN2;
ASSIGN IFN3 EFN3;
ASSIGN IFN4 EFN4;
ASSIGN IFN5 EFN5;
ASSIGN IFN6 EFN6;
ASSIGN IFN7 EFN7;
ASSIGN IFN8 EFN8;
ASSIGN IFN9 EFN9;
ASSIGN IFN10 EFN10;
.......................................................
.......................................................
ASSIGN IFN50 EFN50;
ASSIGN IFN51 EFN51;
.......................................................
.......................................................
ASSIGN IFN70 EFN70;
ASG DBUGFILE,TSIC.DEBUG,FILESTAT=CAT,SHARE=DIR;
ASG BLIB,.FORM.BIN,SHARE=DIR,ACCESS=READ;
$ASG H_BJRNL DVC=MS/D500 MD=FSD99 FILESTAT=TEMPRY;
ASG H_FORM,.FORM.OBJET,FILESTAT=CAT
SHARE=MONITOR,ACCESS=READ;
$DEFINE H_CTLM ,JOURNAL=BEFORE;
ENDSTEP;
$ENDJOB;
La taille de tampon moyenne est estimée à 3584 octets. Si POOLSIZE = 4000 Ko, le
nombre de tampons nécessaire est de :
4000 Ko divisé par 4 Ko = 1000 tampons
Remarque :
47 F2 04UF Rev04
La valeur de POOLSIZE comprend l'espace tampon réservé aux
fichiers non contrôlés par TDS.
5-33
UFAS-EXTENDED - Guide de l'utilisateur
Deuxième exemple TDS
Cet exemple comporte, en plus du pool principal TSIC, un deuxième pool - PARA partagé par deux fichiers.
Soit un nombre de tampons égal à 1000 (défini dans la clause "RESERVE n AREAS").
$JOB TDS-EX USER=BULL2;
$JOBLIB SM,TSIC.SMLIB,TSIC.TEST;
STEP TSIC,FILE=(TSIC.LMLIB),REPEAT
DUMP=NO;
SIZE 5000 POOLSIZE=4400;
ASSIGN IFN1 PARAM1;
ASSIGN IFN1 NBBUF=100 BUFPOOL=PARA;
ASSIGN IFN2 PARAM2;
ASSIGN IFN2 NBBUF=100 BUFPOOL=PARA;
ASSIGN IFN4 EFN4;
ASSIGN IFN5 EFN5;
ASSIGN IFN6 EFN6;
ASSIGN IFN7 EFN7;
ASSIGN IFN8 EFN8;
ASSIGN IFN9 EFN9;
ASSIGN IFN10 EFN10;
.......................................................
.......................................................
ASSIGN IFN50 EFN50;
ASSIGN IFN51 EFN51;
.......................................................
.......................................................
ASSIGN IFN70 EFN70;
ASG DBUGFILE,TSIC.DEBUG,FILESTAT=CAT,SHARE=DIR;
ASG BLIB,.FORM.BIN,SHARE=DIR,ACCESS=READ;
$ASG H_BJRNL DVC=MS/D500 MD=FSD99 FILESTAT=TEMPRY;
ASG H_FORM,.FORM.OBJET,FILESTAT=CAT
SHARE=MONITOR,ACCESS=READ;
$DEFINE H_CTLM ,JOURNAL=BEFORE;
$DEFINE H_CTLN ,BUFPOOL=TSIC;
ENDSTEP;
$ENDJOB;
On évalue à 3584 octets la taille de tampon moyenne du pool implicite (TSIC).
Les deux fichiers du pool PARA disposent de 100 tampons au total (pour une taille de CI
de 2048 octets). Le contenu de ces deux fichiers réside en mémoire, car le pool est
suffisamment grand pour contenir les 100 tampons.
La taille maximale de la mémoire tampon (POOLSIZE) est de 4400 Ko. Il faut déduire de
cette valeur 400 Ko pour les fichiers PARAM1 et PARAM2, qui disposent de 100 tampons
dans le pool PARA (les 400 Ko s'obtiennent en multipliant 100 par 4 Ko).
Les 4000 Ko restants correspondent au pool TSIC. Le nombre de tampons se calcule
comme suit :
4000 Ko divisé par 4 Ko = 1000 tampons
A noter que le fichier H_CTLN (non contrôlé par TDS) est rattaché au pool principal TSIC
(DEFINE H_CTLN BUFPOOL = TSIC).
5-34
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
Premier exemple IOF
Cet exemple ne comporte pas de pool.
EXEC_PG PG=LMNAME LIB=.LMLIB
SIZE 1700 POOLSIZE=1320
FILE1=IFN1 ASG1=EFN1
DEF1=(IFN1 NBBUF=200)
FILE2=IFN2 ASG2=EFN2
DEF2=(IFN2 NBBUF=30)
FILE3=IFN3 ASG3=EFN3
DEF3=(IFN3 NBBUF=50);
Calcul de la taille maximale de la mémoire tampon (POOLSIZE).
Pour chaque fichier, calculer le résultat de (BUFFER SIZE * NBBUF) et cumuler les
valeurs obtenues.
Soit un nombre de tampons égal à 280. Si les fichiers ont les tailles de CI suivantes :
Fichier
EFN3
CISIZE
EFN1 2048
EFN2 3584
6144
alors la valeur à spécifier pour POOLSIZE devra être de :
EFN1 200* (2048 arrondi au multiple supérieur de 4 Ko)
= (200*4 Ko) = 800 Ko
EFN2 30* (3584 arrondi au multiple supérieur de 4 Ko)
= (30*4 Ko) = 120 Ko
EFN3 50* (6144 arrondi au multiple supérieur de 4 Ko)
= (50*8 Ko) = 400 Ko
Taille maxi. mémoire tampon (POOLSIZE)
= 1320 Ko
Deuxième exemple IOF
Cet exemple comporte un pool pour une application IOF accédant au moins à 5 ou
6 fichiers.
EXEC_PG PG=LMNAME LIB=.LMLIB
SIZE 5000 POOLSIZE=4000
FILE1=IFN1 ASG1=EFN1
DEF1=(IFN1 NBBUF=1000 BUFPOOL=PL01)
FILE2=IFN2 ASG2=EFN2
DEF2=(IFN2 NBBUF=1000 BUFPOOL=PL01)
FILE3=IFN3 ASG3=EFN3
DEF3=(IFN3 NBBUF=1000 BUFPOOL=PL01)
FILE4=IFN4 ASG4=EFN4
DEF4=(IFN4 NBBUF=1000 BUFPOOL=PL01)
FILE5=IFN5 ASG5=EFN5
DEF5=(IFN5 NBBUF=1000 BUFPOOL=PL01)
FILE6=IFN6 ASG6=SEQFILE;
47 F2 04UF Rev04
5-35
UFAS-EXTENDED - Guide de l'utilisateur
Calcul de la taille maximale de la mémoire tampon (POOLSIZE).
Soit le pool PL01 contenant 1000 tampons. Le fichier SEQFILE, qui est un fichier
séquentiel, n'est pas rattaché à ce pool.
Si les fichiers ont les tailles de CI suivantes :
Fichier
EFN6
CISIZE
EFN1 2048
EFN2 3584
EFN3 6144
EFN4 6144
EFN5 3584
2048
et que la taille moyenne d'un tampon est de 4 Ko, alors la valeur à spécifier pour
POOLSIZE sera de :
1000 * 4 Ko = 4 Mo
A noter que les deux exemples qui suivent sont également valables pour des applications
IOF, à condition de remplacer les ordres JCL par leurs équivalents GCL.
Premier exemple traitement par lots
$JOB B-EXPLS USER=BULL7 HOLD HOLDOUT;
STEP LMNAME .LM;
SIZE 700 POOLSIZE=600;
ASSIGN IFN1 EFN1;
DEFINE IFN1 NBBUF=20;
ASSIGN IFN2 EFN2;
DEFINE IFN2 NBBUF=30;
ASSIGN IFN3 EFN3;
DEFINE IFN3 NBBUF=50;
ENDSTEP;
$ENDJOB;
Suivre la procédure indiquée dans le premier exemple IOF.
Cet exemple comporte 100 tampons. Si les fichiers ont les tailles de CI suivantes :
Fichier
EFN3
CISIZE
EFN1 2048
EFN2 3584
6144
alors la valeur à spécifier pour POOLSIZE sera de 600 Ko, cette valeur étant obtenue
comme suit :
EFN1 20*(2048 arrondi au multiple supérieur de 4 Ko)
= (20*4 Ko) = 80 Ko
EFN2 30*(3584 arrondi au multiple supérieur de 4 Ko)
= (30*4 Ko) = 120 Ko
EFN3 50*(6144 arrondi au multiple supérieur de 4 Ko)
= (50*8 Ko) = 400 Ko
Taille maxi. mémoire tampon (POOLSIZE)
5-36
= 600 Ko
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
Deuxième exemple traitement par lots
Cet exemple comporte un pool pour une application par lots accédant au moins à 5 ou
6 fichiers.
$JOB B-EXPLS USER=BULL7;
STEP LMNAME .LM;
SIZE 500 POOLSIZE=400;
ASSIGN IFN1 EFN1;
DEFINE IFN1 NBBUF=100 BUFPOOL=PL01;
ASSIGN IFN2 EFN2;
DEFINE IFN2 NBBUF=100 BUFPOOL=PL01;
ASSIGN IFN3 EFN3;
DEFINE IFN3 NBBUF=100 BUFPOOL=PL01;
ASSIGN IFN4 EFN4;
DEFINE IFN4 NBBUF=100 BUFPOOL=PL01;
ASSIGN IFN5 EFN5;
DEFINE IFN5 NBBUF=100 BUFPOOL=PL01;
ASSIGN IFN6 EFN6;
DEFINE IFN6 NBBUF=100 BUFPOOL=PL01;
ASSIGN IFN7 SEQFILE;
ENDSTEP;
$ENDJOB;
Soit le pool PL01 contenant 100 tampons. Le fichier SEQFILE, qui est un fichier
séquentiel, n'est pas rattaché à ce pool.
La taille maximale de la mémoire tampon (POOLSIZE) s'obtient en multipliant NBBUF par
le nombre de pages.
Si les fichiers ont les tailles de CI suivantes :
Fichier
CISIZE
EFN1 2048
EFN2 3584
EFN3 6144
EFN4 6144
EFN5 3584
2048
EFN6
et si la taille moyenne de CI est de 3584, la valeur à spécifier pour POOLSIZE sera de :
100 * (3584 arrondi au multiple supérieur de 4 Ko)
= (100 * 4 Ko)
= 400 Ko
A noter que la valeur de POOLSIZE (400 Ko) comprend l'espace nécessaire aux deux
tampons du fichier séquentiel.
Remarques :
47 F2 04UF Rev04
1.
Lorsqu'il y a plusieurs valeurs de NBBUF pour les fichiers d'un
même pool, seule la plus grande est prise en compte. Il est donc
convenu de spécifier la valeur maximale de NBBUF pour tous les
fichiers du pool.
2.
Si tous les fichiers du pool ont la même taille de CI (CISIZE), la
taille de tampon moyenne est égale à la valeur de CISIZE arrondie
au multiple supérieur de 4 Ko.
5-37
UFAS-EXTENDED - Guide de l'utilisateur
Jusqu'à 4000 tampons par activité peuvent être spécifiés pour les applications traitement
par lots de grande taille. A noter qu'il peut y avoir jusqu'à 32.000 tampons au niveau
système (c'est-à-dire pour l'ensemble des applications TDS et traitement par lots). Cette
fonction peut être mise en oeuvre pour les applications de grande taille accédant
directement à des fichiers UFAS. Elle doit permettre une diminution significative du
nombre d'E/S.
Pour prévenir les arrêts prématurés, respecter strictement les consignes suivantes :
1.
Ne pas lancer d'activité traitement par lots pendant l'exécution d'une application
TDS, pour éviter l'arrêt prématuré de l'application TDS ou traitement par lots (code
retour SYSOV) lorsque le nombre de tampons requis est supérieur à 32.000.
2.
Pour une activité traitement par lots, spécifier des valeurs suffisamment importantes
pour POOLSIZE et "taille-dws", afin d'éviter l'arrêt prématuré (code retour
CMWSOV). Regrouper dans le même pool de tampons tous les fichiers UFAS à
accès non séquentiel.
Calcul de la valeur de POOLSIZE pour les applications traitement par lots de
grande taille
Les deux facteurs importants pour le calcul de POOLSIZE sont :
• le nombre de tampons du ou des pools (jusqu'à 4000 tampons au total),
• la taille moyenne d'un tampon.
Remarque :
Pour les activités de taille importante s'exécutant la nuit, à faible
niveau de multiprogrammation et disposant de beaucoup de
mémoire, il est préférable de prendre en compte la taille de CI
(CISIZE) maximale et non moyenne.
Premier exemple (cas général)
$JOB B-EXPLS USER=BULL7;
STEP LMNAME .LM;
SIZE 45000 POOLSIZE=16000;
ASSIGN IFN1 EFN1;
DEFINE IFN1 NBBUF=4000 BUFPOOL=PL01;
ASSIGN IFN2 EFN2;
DEFINE IFN2 NBBUF=4000 BUFPOOL=PL01;
ASSIGN IFN3 EFN3;
DEFINE IFN3 NBBUF=4000 BUFPOOL=PL01;
ASSIGN IFN4 EFN4;
DEFINE IFN4 NBBUF=4000 BUFPOOL=PL01;
ASSIGN IFN5 EFN5;
DEFINE IFN5 NBBUF=4000 BUFPOOL=PL01;
ASSIGN IFN6 EFN6;
DEFINE IFN6 NBBUF=4000 BUFPOOL=PL01;
ASSIGN IFN7 SEQFILE;
ENDSTEP;
$ENDJOB;
Cet exemple comporte 4000 tampons pour les six premiers fichiers (à accès direct). Ces
fichiers font tous partie du pool PL01. Le 7ème fichier, séquentiel, ne fait pas partie de ce
pool ; il ne dispose que de deux tampons (valeur implicite).
Si tous les fichiers ont une taille de CI de 4096 octets, la taille du pool sera de :
4000 * 4 Ko) = 16000 Ko
5-38
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
Deuxième exemple (avec deux pools de tampons)
La définition d'un deuxième pool de tampons peut permettre de regrouper des fichiers
ayant un comportement spécifique ; par exemple, des fichiers n'ayant qu'un petit nombre
de CI et fréquemment utilisés peuvent résider en mémoire centrale.
JOB B-EXPLS USER=BULL7;
STEP LMNAME .LM;
SIZE 60000 POOLSIZE=20000;
ASSIGN IFN1 EFN1;
DEFINE IFN1 NBBUF=3000 BUFPOOL=PL01;
ASSIGN IFN2 EFN2;
DEFINE IFN2 NBBUF=3000 BUFPOOL=PL01;
ASSIGN IFN3 EFN3;
DEFINE IFN3 NBBUF=3000 BUFPOOL=PL01;
ASSIGN IFN4 EFN4;
DEFINE IFN4 NBBUF=3000 BUFPOOL=PL01;
ASSIGN IFN5 EFN5;
DEFINE IFN5 NBBUF=3000 BUFPOOL=PL01;
ASSIGN IFN6 EFN6;
DEFINE IFN6 NBBUF=1000 BUFPOOL=PL01;
ASSIGN IFN7 EFN7;
DEFINE IFN7 NBBUF=1000 BUFPOOL=PL02;
ENDSTEP;
$ENDJOB;
Cet exemple comporte 4000 tampons au total : 3000 dans le pool PL01 et 1000 dans le
pool PL02.
Calcul de la valeur de POOLSIZE avec plusieurs pools
La valeur de POOLSIZE doit correspondre à la mémoire tampon totale des pools.
Soit une taille de tampon moyenne de 4 Ko pour le pool PL01, et de 8 Ko pour le pool
PL02. La mémoire tampon totale (valeur de POOLSIZE) se calcule comme suit :
(3000 * 4 Ko) + (1000 * 8 Ko) = 20000 Ko
(pour PL01)
(pour PL02)
47 F2 04UF Rev04
5-39
UFAS-EXTENDED - Guide de l'utilisateur
5.12.5
Optimisation des paramètres de gestion des tampons
L'utilisateur peut modifier les paramètres de gestion des tampons d'une application, pour
éviter un gaspillage de ressources. Plus le nombre de tampons est élevé, moins il y a
d'opérations d'E/S. Pour obtenir le paramétrage optimal en matière de tampons, il est
indispensable de tester différentes valeurs. Des facteurs tels que la taille maximale de la
mémoire tampon (POOLSIZE) et le nombre de tampons par pool sont déterminants pour
les performances d'une application (surtout s'il s'agit d'une application TDS). En fonction
des statistiques UFAS-EXTENDED figurant dans l'historique de travail (JOR) (voir plus
loin), l'utilisateur a la possibilité d'optimiser ses paramètres de gestion des tampons.
A la fin de chaque activité, les informations suivantes sont consignées dans le JOR :
• Pour chaque fichier UFAS-EXTENDED, et pour tous les fichiers d'un même pool :
-
Nombre total d'accès CI, y compris CI de label, d'index et de données
(GETCICOUNT).
Nombre d'accès CI sans E/S physiques (HITCOUNT).
• Pour chaque activité :
-
Nombre de suppressions de tampons (SEGDL).
Nombre de créations de tampons (SEGCR).
Les différentes opérations effectuées par UFAS-EXTENDED sur les tampons - création,
suppression, réactivation - sont décrites à l'annexe E.
Pour mieux comprendre les conséquences pratiques des valeurs relatives aux tampons, il
suffit d'étudier les statistiques figurant dans le JOR.
L'adéquation entre le nombre de tampons et la valeur de POOLSIZE permet d'optimiser
l'utilisation des tampons, c'est-à-dire d'atteindre le meilleur taux d'accès sans E/S
physiques. Ce taux s'obtient en divisant le nombre d'accès CI dans le pool par le nombre
total d'accès CI (opérations dans le pool et E/S physiques).
L'optimisation des paramètres utilisateur s'effectue comme suit :
1.
Choisir la valeur de NBBUF pour chaque fichier, ou pour l'ensemble du pool de
tampons, de façon que le taux d'accès sans E/S physiques soit le plus élevé
possible.
Taux d'accès sans E/S = HITCOUNT divisé par GETCICOUNT
2.
5-40
Déterminer ensuite la valeur de POOLSIZE en fonction de celle de NBBUF. Plus le
nombre de tampons est élevé, plus les temps d'accès disque diminuent, mais il faut
veiller à choisir une valeur suffisante pour POOLSIZE. Normalement, USED SIZE
est légèrement inférieur à POOLSIZE.
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
Création/suppression de tampons dans une activité
Création
UFAS-EXTENDED crée de nouveaux tampons dans les limites fixées par la clause
RESERVE AREAS (nombre maximal de tampons) et par POOLSIZE (taille maximale de
la mémoire tampon).
Lorsque l'une de ces limites est atteinte, UFAS-EXTENDED peut soit réutiliser un tampon
existant - à condition qu'il ne soit ni actif, ni utilisé pour des mises à jour différées
(DEFERRED UPDATE) -, soit supprimer un ou plusieurs tampons pour libérer la place
nécessaire (voir plus loin).
Le compteur SEGCR indique le nombre de tampons créés pour l'activité. Ce nombre
comprend également les 5 structures de gestion créées à l'ouverture du fichier.
Suppression
Une suppression peut avoir lieu :
• lorsqu'il n'est pas possible de réutiliser un tampon existant de la taille requise ;
• lorsque les fichiers sont fermés ;
• au niveau d'un point de reprise ;
• en fin d'activité (arrêt normal ou anormal).
Le compteur SEGDL indique le nombre de tampons supprimés, à l'exclusion des
structures de gestion de fichier.
Après avoir déterminé la valeur de POOLSIZE et le nombre maximal de tampons,
s'assurer que le nombre de tampons créés (compteur SEGCR) est proche du nombre
défini dans la clause RESERVE AREAS. Le résultat de :
SEGCR divisé par le nombre de tampons
doit tendre vers 1 pour une activité traitement par lots, et être le plus petit possible dans le
cas d'une application TDS.
Pour optimiser ce rapport, limiter au maximum le nombre de tailles de CI (CISIZE)
différentes. En revanche, dans le cas d'une application TDS, il est préférable d'avoir 3 ou
4 tailles de CI différentes pour les fichiers UFAS-EXTENDED.
47 F2 04UF Rev04
5-41
UFAS-EXTENDED - Guide de l'utilisateur
5.12.6
Statistiques UFAS-EXTENDED figurant dans le JOR
Ce chapitre décrit les différentes statistiques rencontrées dans le JOR. Il est important de
les consulter pour vérifier l'efficacité du pool.
>>> IFN=<nom-de-fichier-interne>
REWRITECNT=a
DELETECNT=b
WRITECNT=c
>>> EFN=<nom-de-fichier-externe>
GETCICOUNT=e
HITCOUNT=f
IOCOUNT=g
==> POOL=<nom-pool>
NBFILES=h
NBBUF=i
>>> XUFAS
STEP
POOLSIZE=l
AVAIL CI=p
SEGCR=s
READIOCT=u
STATISTICS
USED SIZE=m
FREE CI=q
SEGDL=t
READCNT=d
GETCICOUNT=j
HITCOUNT=k
STEP=<nom-activité>
NBPOOLS=n
TOTAL CI=r
WRITEIOCT=v
Les statistiques sur les fichiers sont fournies à la fois pour les noms internes (IFN) et pour
les noms externes (EFN).
A chaque nom de fichier interne (IFN) correspondent les quatre compteurs suivants :
•
réécrits.
•
supprimés.
•
écrits.
•
lus.
REWRITECNT
DELETECNT
WRITECNT
READCNT
Nombre d'articles logiques réécrits.
Nombre d'articles logiques supprimés.
Nombre d'articles logiques écrits.
Nombre d'articles logiques lus.
REMARQUE IMPORTANTE
En COBOL 85, si l'article réécrit n'a pas la même longueur que l'article
existant, l'opération de réécriture est considérée comme une
suppression suivie d'une insertion. Dans ce cas, les articles sont
comptabilisés au niveau de DELETECNT et WRITECNT, et non au
niveau de REWRITECNT.
Les statistiques "nom-de-fichier-interne" ne sont pas visualisées pour les aires IDS II, car
IDS utilise des verbes spécifiques (par exemple : SEARCH, STORE, etc.).
5-42
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
A chaque nom de fichier externe (EFN) correspondent les trois compteurs suivants :
GETCICOUNT
Nombre total d'accès CI (sur disque et dans le pool de
tampons).
HITCOUNT
Nombre d'accès CI dans le pool (sans E/S physiques).
IOCOUNT
Nombre d'opérations d'E/S physiques (chaque opération porte
sur un CI.)
Statistiques relatives au pool de tampons :
POOL
Nom du pool (généralement, nom de l'application, lorsqu'il s'agit
d'une application TDS).
NBFILES
Nombre maximal de fichiers pouvant
simultanément pour le pool considéré.
NBBUF
Nombre maximal de tampons déclarés pour le pool considéré.
NBBUF n'a pas de sens pour le pseudo-pool, qui contient des
fichiers non contrôlés par TDS.
GETCICOUNT
Nombre total d'accès CI (CI de données, d'index et de label).
HITCOUNT
Nombre d'accès CI sans E/S physiques.
être
ouverts
Autres compteurs au niveau activité :
POOLSIZE
Taille maximale de la mémoire réservée aux tampons pour
l'activité, en octets.
USED SIZE
Quantité de mémoire tampon (POOLSIZE) effectivement
utilisée, en octets. USED SIZE est forcément inférieur à
POOLSIZE.
NBPOOLS
Nombre maximal de pools ouverts simultanément.
AVAIL CI
Nombre de rubriques disponibles au niveau système après
exécution de l'activité.
FREE CI
Nombre de rubriques inactives (c'est-à-dire rubriques
disponibles + rubriques réservées) en fin d'exécution de
l'activité.
TOTAL CI
Nombre maximal de rubriques actives au niveau système pour
tous les travaux en cours d'exécution.
SEGCR
Nombre de créations de tampons (et structures de gestion de
fichier).
SEGDL
Nombre de suppressions de tampons.
READIOCT
Nombre d'opérations physiques d'entrée (voir remarque ci
après).
WRITEIOCT
Nombre d'opérations physiques de sortie (voir remarque ci
après).
47 F2 04UF Rev04
5-43
UFAS-EXTENDED - Guide de l'utilisateur
Remarque :
La somme des valeurs READIOCT et WRITEIOCT est
généralement égale au cumul des valeurs IOCOUNT (au niveau
fichier). Mais en cas de relance après un arrêt prématuré de TDS, il
est possible que ces deux sommes diffèrent.
Exemple de statistiques au niveau fichier
>>> IFN=FILUP
REWRITECNT=0
DELETECNT=1
WRITECNT=92
READCNT=608
>>> EFN=TDS1.FILUP
GETCICOUNT=1242
HITCOUNT=1068
IOCOUNT=270
Statistiques sur le fichier TDS1.FILUP (nom de fichier interne = FILUP) :
•
•
•
•
aucune mise à jour d'article,
suppression d'un article,
écriture de 92 nouveaux articles,
lecture de 608 articles.
Ces opérations ont impliqué 1242 accès CI, dont 1068 sans E/S physiques, les CI requis
étant déjà en mémoire ; au total, 270 E/S physiques ont été nécessaires pour ce fichier.
A noter que :
GETCICOUNT = HITCOUNT + nombre de lectures physiques
IOCOUNT = nombre de lectures physiques + nombre d'écritures physiques
Exemple de statistiques au niveau pool
==> POOL=TDS1
NBFILES=34
NBBUF=500
GETCICOUNT=10225
HITCOUNT=7951
==> POOL=DEFT
NBFILES=1
5-44
NBBUF=MEANINGLESS
GETCICOUNT=11
HITCOUNT=8
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
Dans cet exemple,
• ouverture simultanée de 34 fichiers contrôlés par TDS pour l'application TDS1 ;
• nombre de tampons partagé par ces fichiers : 500 (clause RESERVE AREAS) ;
• nombre total d'accès CI (CI de données, d'index et de label) pour tous les fichiers
contrôlés par TDS : 10.225 ;
• parmi ces 10.225 accès CI, 7951 ont été effectués sans E/S physiques, en réactivant
7951 tampons.
Pour un fichier non contrôlé par TDS (le minimum), il y a eu 11 accès CI, dont 8 au sein
du pool, d'où un moins grand nombre d'E/S physiques.
Exemple de statistiques au niveau activité
>>>XUFAS
STEP STATISTICS
STEP=TDS1
POOLSIZE = 3072000 USED SIZE = 2339288 NBPOOLS
AVAIL CI =
110 FREE CI
=
1215 TOTAL CI
SEGCR
=
572 SEGDL
=
567
READIOCT =
2243
WRITEIOCT =
=
2
= 1005
1438
Dans cet exemple, pour l'application transactionnelle TDS1, la valeur de POOLSIZE est
de 3.072.000 octets, en accord avec la valeur de POOLSIZE dans l'ordre JCL $SIZE
(3000 Ko).
L'espace mémoire effectivement utilisé par les tampons est de 2.339.288 octets (pool
DEFT compris).
Cet exemple comporte deux pools. A noter qu'en général, TDS crée un pool portant le
nom de l'application TDS pour les fichiers contrôlés par TDS, et le pool implicite DEFT
pour les fichiers non contrôlés par TDS. Le pool DEFT est toujours créé pour une
application TDS.
Chaque travail dispose de 110 rubriques de table interne après activation. Le nombre de
rubriques disponibles - non réservées à un travail particulier - est de 1215. Le nombre
total de rubriques créées est de 1005. Cette information est utile pour la mise au point.
Statistiques sur l'activité TDS1 :
• création de 572 tampons (structures de gestion comprises) et suppression de
567 tampons,
• 2243 opérations physiques de lecture et 1438 opérations physiques d'écriture pour
l'ensemble des fichiers UFAS-EXTENDED.
47 F2 04UF Rev04
5-45
UFAS-EXTENDED - Guide de l'utilisateur
5.13
JOURNALISATION
Les paragraphes suivants décrivent brièvement les principales techniques de
journalisation mises en oeuvre pour les fichiers UFAS-EXTENDED. L'option
JOURNAL=BOTH permet de demander les deux journaux Avant et Après pour s'assurer
une protection maximale, ce qui implique des opérations d'entrée/sortie supplémentaires.
Pour les fichiers catalogués, le type de journalisation voulu peut être enregistré dans la
rubrique catalogue.
Pour plus de précisions sur la journalisation, se reporter au manuel traitant de la
reconstitution des fichiers (19UF).
5.13.1
Journal Avant (BEFORE)
Le journal Avant permet d'enregistrer une copie de chaque article avant sa modification
par le programme de traitement.
Cette fonction système peut être demandée au moyen du catalogue, ou du paramètre
JOURNAL du groupe DEFn (ou de l'ordre JCL DEFINE).
Exemple :
EXEC_PG MONPROGRAMME
FILE1 = INOU
ASG1 = JC.FDB
DEF1 = (JOURNAL = BEFORE);
En cas d'arrêt prématuré du programme, les images Avant enregistrées sont utilisables
pour effectuer une restauration non actualisée (rollback) du contenu du fichier.
M é m o ire to ta le
(e n M o )
T a ille d e la m é m o ire
P o u rc e n ta g e d e la ta m p o n p o u r to u te s
le s a p p lica tio n s T D S
m é m o ire to ta le
(e n M o )
16
20 %
3 ,2
32
30 %
9 ,6
64
50 %
32
Figure 5-15. Possibilités d'utilisation du journal Avant
Le mode d'ouverture APPEND en GPL est l'équivalent du mode EXTEND en COBOL.
L'astérisque (*) indique que le fichier peut être journalisé uniquement en accès direct.
Dans la colonne EXTEND/APPEND, il ne peut s'agir que de fichiers GPL.
5-46
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
Le tiret (-) indique que le mode d'ouverture I-O n'est pas utilisable.
Lorsque la fonction journal Avant n'est pas spécifiée, la reconstitution des fichiers
s'effectue par le biais de points de reprise.
5.13.2
Journal Après (AFTER)
Le journal Après permet d'enregistrer une copie de chaque article après sa mise à jour.
En cas d'incident au niveau du logiciel ou d'un volume, les images Après enregistrées
sont utilisables pour effectuer une restauration actualisée (rollforward) du contenu du
fichier.
Cette fonction système peut être demandée au moyen du catalogue (ce qui est
préférable), ou du paramètre JOURNAL du groupe DEFn (ou de l'ordre JCL DEFINE).
Exemple :
EXEC_PG MONPROGRAMME
FILE1 = INOU
ASG1 = JC.FDB
DEF1 = (JOURNAL = AFTER);
M od e d'o uve rture d u fichier
O rg anisatio n
d u fichier
OUTPUT
EXTEND
(A P P E N D )
I-O
Séquentielle bande
Non
N on
-
Séquentielle disque
Non
N on
O ui
R elative
O u i*
O ui*
O ui
Séquentielle indexée
Non
Oui
O ui
Figure 5-16. Possibilités d'utilisation du journal Après
L'astérisque (*) indique que l'ouverture d'un fichier séquentiel indexé en mode EXTEND
n'est possible qu'en COBOL 85.
Le tiret (-) indique que le mode d'ouverture I-O n'est pas utilisable.
Le mode GPL APPEND est l'équivalent du mode EXTEND en COBOL.
Dans une application TDS, il peut être préférable d'utiliser non pas le journal Avant, mais
le journal Après et l'option mise à jour différée (Deferred Update) ; cette deuxième
solution permet de réduire les E/S et par conséquent d'améliorer les temps de réponse.
Mais toute réorganisation (incrémentale) de CI d'un fichier en mise à jour différée
provoque l'envoi du code retour WDNAV.
47 F2 04UF Rev04
5-47
UFAS-EXTENDED - Guide de l'utilisateur
5.14
INTEGRITE DES FICHIERS
En cas d'arrêt prématuré du traitement, de blocage du système ou d'erreurs E/S
persistantes, UFAS-EXTENDED tente de maintenir l'intégrité des fichiers en évitant de les
laisser dans un état instable. Si c'est impossible, l'utilisateur en est averti par un code
retour.
Un fichier est en état instable lorsqu'il n'a pas été fermé correctement, et que, par
conséquent, le label début ou fin n'a pu être convenablement écrit. Un index est en état
instable soit lorsque des articles n'ont pas de rubrique d'index correspondante, soit
lorsque des rubriques d'index ne renvoient à aucun article.
5.14.1
Phase de création
1.
Lorsque l'utilisateur ouvre un fichier en mode OUTPUT :
Il crée de nouveaux articles ; s'il reste d'anciens articles dans le fichier, ils sont
supprimés. Le nouveau fichier ne contient que les articles écrits entre son ouverture
et sa fermeture.
La reconstitution du fichier s'effectue nécessairement par le biais de points de reprise. Il
n'est pas possible d'utiliser la journalisation Avant ou Après au moment de la création du
fichier.
2.
Lorsque l'utilisateur ouvre un fichier en mode EXTEND (équivalent GPL =
APPEND) :
Les nouveaux articles sont écrits à la suite du dernier article contenu dans le fichier.
Lors de la relance consécutive à un blocage du système, l'utilisateur peut avoir à
répondre à la question REPEAT FROM CHECKPOINT nn ? pour un fichier :
• s'il répond oui (YES), le fichier est restauré dans l'état où il se trouvait lors du dernier
point de reprise, et l'activité s'exécute jusqu'au bout,
• s'il répond non (NO), le fichier reste en état instable,
Lors du dernier point de reprise en cas d'arrêt prématuré de l'activité, l'utilisateur peut
avoir à répondre à la question REPEAT FROM CHECKPOINT nn ? pour un fichier :
• s'il répond oui (YES), le fichier est restauré dans l'état où il se trouvait lors du dernier
point de reprise, et l'activité s'exécute jusqu'au bout,
• s'il répond non (NO), le fichier est refermé et reste dans l'état où il se trouvait au
moment de l'arrêt prématuré de l'activité.
5-48
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
5.14.1.1
Fichiers sans clés secondaires
En cas d'arrêt prématuré du programme utilisateur ou si l'opérateur émet une commande
CANCEL_JOB, le fichier est fermé dans l'état où il se trouvait au moment de l'arrêt.
En cas de blocage du système, le fichier n'est pas refermé et reste en état instable. Toute
tentative de réouverture dans un mode autre que OUTPUT provoque l'envoi du code
DATANAV.
5.14.1.2
Fichiers avec clés secondaires
La procédure recommandée pour créer des clés secondaires est décrite au chapitre 4
(paragraphe 4.8.1).
Pour ce type de fichiers, il y a d'abord création de l'index primaire, puis création des index
secondaires. Lorsque le programme utilisateur contient la clause COBOL APPLY NOSORTED-INDEX-ON, les index secondaires ne sont pas générés automatiquement à la
création du fichier. Dans ce cas, ils doivent être créés après, au moyen de la commande
SORT_INDEX (équivalent JCL = SORTIDX). En GPL, il n'y a jamais d'index secondaires
pour un fichier ouvert en mode OUTPUT.
En cas d'arrêt prématuré ou de blocage du système au cours de la création des index
secondaires, ceux-ci sont laissés en état instable. Toute tentative d'ouverture du fichier
dans un mode autre que INPUT ou OUTPUT, ou pendant l'exécution de SORT_INDEX,
provoque l'envoi du code SCIDXNAV. En cas d'ouverture en mode INPUT, toute tentative
d'accès au fichier par les clés secondaires provoquera également l'envoi du code
SCIDXNAV.
5.14.2
5.14.2.1
Phase de traitement
Fichiers ouverts en entrée (INPUT)
Fichiers protégés par
journalisation
Pour lire un fichier instable ouvert en mode INPUT, il faut
avoir recours aux utilitaires de reconstitution de fichiers.
Fichiers non protégés par
journalisation
Un fichier (stable ou instable) ouvert en mode INPUT ne
peut être lu qu'en accès séquentiel. Ce mode d'ouverture
permet la restauration d'un fichier instable.
D'une manière générale, toute tentative de lecture en accès direct par l'intermédiaire d'un
index instable est refusée avec envoi de l'un des codes retour suivants :
• FLNAV (fichier non disponible) s'il s'agit de l'index primaire,
• SCIDXNAV (index secondaire non disponible) s'il s'agit d'un index secondaire.
47 F2 04UF Rev04
5-49
UFAS-EXTENDED - Guide de l'utilisateur
5.14.2.2
Fichiers ouverts en entrée-sortie (I-O)
En COBOL 85, ce mode d'ouverture et le mode EXTEND (équivalent GPL = APPEND)
permettent l'utilisation du journal Avant et du journal Après avec les fichiers séquentiels
indexés (voir figure 5.16).
L'image Avant de chaque article est enregistrée dans le journal avant sa modification.
5.14.2.3
Fichiers sans clés secondaires
En cas d'arrêt prématuré pendant une réorganisation incrémentale de CI, l'arrêt effectif
n'intervient qu'une fois cette opération terminée. Le fichier est ensuite refermé et laissé en
état stable.
En cas de blocage du système, le fichier n'est pas refermé et reste en état instable. Trois
cas sont alors possibles :
1.
Le fichier n'est pas protégé par la journalisation :
Toute tentative de réouverture du fichier est acceptée.
Lorsque le fichier est réouvert en mode INPUT, ses index sont considérés comme
endommagés ; tout accès par clé sera donc refusé, et provoquera l'envoi du code
FLNAV.
Lorsque le fichier est réouvert en mode I-O, il est automatiquement pris en charge
par le programme de sauvetage (File Salvager) d'UFAS-EXTENDED. Si une
réorganisation incrémentale était en cours au moment du blocage, il rétablit la
cohérence du fichier à ce point.
Remarque :
2.
En traitement par lots, lorsque le journal Avant n'est pas utilisé et
que des articles sont insérés entre un point de reprise et un
blocage du système, le code retour DUPKEY (valeurs de clés déjà
existantes) est émis si, après relance à chaud (warm restart), le
programme fait une nouvelle tentative d'insertion de ces articles ;
les articles ne sont pas insérés, le traitement se poursuit
normalement, et le code DUPKEY n'est pas pris en compte.
Le fichier est protégé par le journal Avant :
L'utilisation du journal Avant évite que le fichier ne soit laissé en état instable : les
images avant modification sont réécrites automatiquement au moment de la relance
à chaud ; le sauvetage du fichier n'est donc pas nécessaire.
3.
Le fichier est protégé par le journal Après et l'option mise à jour différée :
L'utilisation du journal Après et de l'option mise à jour différée (applications TDS
uniquement) évite que le fichier ne soit laissé en état instable :
5-50
-
Le journal Après permet de garder une image de chaque article après sa
modification et de garantir ainsi l'intégrité du fichier contre toutes sortes
d'incidents.
-
L'option mise à jour différée constitue une alternative au journal Avant. Les
mises à jour ne sont pas écrites immédiatement dans le fichier ; en cas
d'incident, ces mises à jour ne sont pas enregistrées.
47 F2 04UF Rev04
Fichiers disque et bande - Affectation, gestion des tampons et intégrité
5.14.2.4
Fichiers avec clés secondaires
En cas d'arrêt prématuré pendant une réorganisation incrémentale de CI, l'arrêt effectif
n'intervient qu'une fois cette opération terminée. Le fichier est ensuite refermé et laissé en
état stable. Les accès nécessaires pour la reprise de la mise à jour sont protégés de la
même manière. La cohérence des index secondaires avec l'index primaire et les données
n'est donc pas affectée.
En cas de blocage du système, le fichier n'est pas refermé et reste en état instable. Ses
index (primaire et secondaires) sont endommagés. Trois cas sont alors possibles :
1.
Le fichier n'est pas protégé par la journalisation :
Le mécanisme de sauvetage est différent selon le type d'index :
2.
-
le sauvetage de l'index
paragraphe 5.14.2.3) ;
primaire
s'effectue
automatiquement
(voir
-
les index secondaires doivent être reconstitués au moyen de la commande
SORT_INDEX (équivalent JCL = SORTIDX). Le programme de sauvetage
émet pour le JOR un message demandant le lancement de SORT_INDEX.
Toute tentative d'accès au fichier par l'intermédiaire d'une clé secondaire avant
exécution de SORT_INDEX (ou SORTIDX) est refusée et provoque l'émission
du code SCIDXNAV.
Le fichier est protégé par le journal Avant
Voir "fichiers sans clés secondaires" (paragraphe 5.14.2.3).
3.
Le fichier est protégé par le journal Après et l'option mise à jour différée
(applications TDS uniquement) :
Voir "fichiers sans clés secondaires" (paragraphe 5.14.2.3).
Remarque :
47 F2 04UF Rev04
La reconstitution des index secondaires est plus longue que le
sauvetage des index primaires.
5-51
UFAS-EXTENDED - Guide de l'utilisateur
5.14.3
Phase d'extension
UFAS-EXTENDED permet l'extension statique ou dynamique des fichiers séquentiels et
séquentiels indexés.
Les fichiers relatifs ne peuvent faire l'objet d'une extension statique. Ils ne sont
extensibles que dynamiquement en accès séquentiel sous les modes d'ouverture
OUTPUT ou EXTEND (COBOL 85 uniquement). L'équivalent GPL d'EXTEND est
APPEND. Lorsqu'un fichier relatif est ouvert en mode APPEND, l'extension s'effectue
généralement à partir de la fin du fichier, mais le GPL permet à l'utilisateur de spécifier
l'adresse d'un article à partir duquel effectuer l'extension.
Extension dynamique :
Le paramètre INCRSIZE de la commande BUILD_FILE (équivalent JCL = PREALLOC),
de la commande CREATE_FILE (équivalent JCL = FILALLOC) ou du groupe ALCn
(équivalent JCL = ALLOCATE) permet de spécifier l'incrément à utiliser pour l'extension
automatique du fichier, chaque fois qu'il sera plein (voir chapitre 6).
La commande MODIFY_FILE (équivalent JCL = FILMODIF) permet de modifier la valeur
du paramètre INCRSIZE (voir chapitre 6) pour un fichier catalogué.
Extension statique :
La demande d'espace s'effectue au moyen du paramètre SIZE de la commande
MODIFY_FILE_SPACE (voir chapitre 6). L'équivalent JCL est le paramètre EXTEND de
l'ordre PREALLOC.
Dans les deux cas, l'extension n'a lieu que si le volume contient encore assez d'espace
libre.
En cas de blocage du système pendant cette opération, UFAS-EXTENDED assure
automatiquement l'affectation de place supplémentaire à la réouverture du fichier.
5.14.4
Erreurs d'E/S persistantes
Deux cas sont à envisager :
• Si le fichier est protégé par le journal Après, l'utilisateur peut, au moyen de la
commande RESTORE_FILE (équivalent JCL = FILREST), le restaurer à partir d'une
sauvegarde antérieure, puis exécuter l'utilitaire ROLLFWD pour actualiser cette
restauration à l'aide du journal. L'utilitaire ROLLFWD est décrit dans le manuel traitant
de la reconstitution des fichiers (18UF).
• Si le fichier n'est pas protégé par le journal Après, l'utilisateur ne peut que le restaurer à
partir d'une sauvegarde antérieure, au moyen de la commande RESTORE_FILE
(équivalent JCL = FILREST).
5-52
47 F2 04UF Rev04
6. Fichiers disque - Création et modification
6.1
PLAN DU CHAPITRE
Généralités.
• Réservation d'espace.
• Taille de CI (paramètre CISIZE).
-
Taille de CI recommandée par types de disques.
Capacités de stockage par types de disques.
• Taille initiale du fichier (paramètre SIZE).
• Taille d'incrément (paramètre INCRSIZE).
• Simulation de réservation d'espace (CREATE_FILE).
•
Calculs d'espace pour :
-
un fichier séquentiel.
un fichier relatif.
• Paramétrage des fichiers séquentiels indexés.
-
Taille de CI (paramètre CISIZE).
Pourcentage d'espace libre par CI (paramètre CIFSP).
Insertion de masse.
• Calculs d'espace :
-
sans index secondaires,
avec index secondaires.
• GCL de création, de listage et de modification.
47 F2 04UF Rev04
6-1
UFAS-EXTENDED - Guide de l'utilisateur
6.2
GENERALITES
Avant de pouvoir accueillir des fichiers, les volumes disque doivent faire l'objet d'une
préparation. Cette opération comprend l'écriture des labels, et le formatage et le contrôle
des pistes. Elle s'effectue au moyen d'une des commandes GCL suivantes :
PREPARE_DISK (PRPD)
PREPARE_VOLUME (PRPV)
Ces deux commandes sont décrites dans le volume 2 du manuel de référence de
l'utilisateur IOF.
L'équivalent JCL de ces commandes est l'ordre VOLPREP, décrit dans le manuel traitant
des utilitaires de gestion de données.
La création d'un fichier, qui comprend la réservation d'espace et la définition des attributs
(s'ils ne sont pas implicites, ou fournis par un modèle existant, ou encore spécifiés dans le
programme utilisateur) peut s'effectuer de plusieurs manières :
• Commande GCL BUILD_FILE (BF), traitée plus loin dans ce chapitre ; son équivalent
JCL est l'ordre PREALLOC.
• Commande GCL CREATE_FILE (CRF), traitée plus loin dans ce chapitre, qui permet
de simuler une réservation d'espace pour un fichier ; son équivalent JCL est l'ordre
FILALLOC.
• Groupe de paramètres GCL ALCn, traité plus loin dans ce chapitre ; son équivalent
JCL est l'ordre ALLOCATE.
• Paramètre GCL DYNALC des utilitaires de gestion de fichier ; son équivalent JCL est
l'ordre OUTALC.
6-2
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.3
RESERVATION D'ESPACE
Pour le système, l'unité d'affectation de place est la piste ou le cylindre pour les fichiers
VBO, et le bloc pour les fichiers FBO (voir chapitre 1). A l'exécution, UFAS-EXTENDED
affecte les pistes ou les cylindres (VBO) ou les blocs (FBO) sous la forme d'un ou
plusieurs fragments de volume.
Un fragment (extent) est un ensemble de pistes, de cylindres ou de blocs contigus dans
un volume. Le nombre maximum de fragments affectables à un fichier par volume est de
16 (valeur implicite : 5 fragments). Dans cette limite, l'utilisateur peut spécifier son propre
maximum (un seul fragment, par exemple) au moyen du paramètre MAXEXT.
Le paramètre UNIT permet d'indiquer l'unité d'affectation correspondant à la taille
demandée. Suivant la commande, les valeurs possibles sont RECORD (article), CI
(intervalle de contrôle), CYL (cylindre), TRACK (piste), BLOCK (bloc) et 100KB (quantum
de 100 Ko). A noter que ces deux dernières unités sont propres aux fichiers FBO.
Pour les disques FSA (qui n'acceptent que l'organisation FBO), il est recommandé
d'utiliser UNIT = BLOCK ou UNIT = 100KB (voir 6.8.1 pour une description du paramètre
UNIT). Pour des raisons de compatibilité avec le GCL/JCL existant, il est toujours
possible de spécifier UNIT = CI, CYL, TRACK ou RECORD. Mais UFAS-EXTENDED
effectue toujours la réservation d'espace en blocs sur les disques, avec les équivalences
suivantes :
• 1 cylindre = 1 000 Ko
• 1 piste = 50 Ko
Si UNIT = CI (commande BUILD_FILE avec SIZE) VBO. Le système doit convertir les CI
en pistes, car le CI n'est pas une unité d'affectation réelle. Avec UNIT = CI, le calcul
s'effectue en fonction de la taille de CI (CISIZE). A noter que le nombre maximum de CI
par fichier est de :
16 777 215 (2 puissance 24 moins 1).
FBO. Le système doit convertir les CI en blocs. Si UNIT = BLOCK (FBO)
Le système affecte directement le nombre de blocs demandés.
Si UNIT = RECORD (commande BUILD_FILE avec SIZE)
Le système doit effectuer une conversion en nombre de pistes (ou de blocs), car l'article
n'est pas une unité d'affectation réelle. Le calcul s'effectue en fonction des tailles d'article
et de CI (RECSIZE et CISIZE).
Après affectation d'un fichier UFAS-EXTENDED séquentiel indexé avec UNIT =
RECORD, il subsiste parfois une certaine quantité d'espace libre. Voir plus loin dans ce
chapitre.
Si UNIT = CYL ou TRACK
VBO
FBO
le système affecte directement le nombre de cylindres ou de pistes demandé.
le système convertit les pistes ou cylindres en blocs.
A noter qu'il est préférable de réserver l'utilisation de ces deux unités aux disques nonFSA.
47 F2 04UF Rev04
6-3
UFAS-EXTENDED - Guide de l'utilisateur
La taille initiale du fichier peut être spécifiée au moyen du paramètre SIZE (affectation
globale) ou au moyen du paramètre SPLIT associé au paramètre SPLITDVC (affectation
fractionnée dite "volume par volume").
La commande BUILD_FILE permet le choix entre SIZE et SPLIT. La commande
CREATE_FILE et le groupe ALCn n'autorisent que SIZE. Ces deux modes d'affectation
sont décrits plus loin dans ce chapitre.
L'adresse à partir de laquelle effectuer la réservation s'exprime :
• en cylindres/pistes pour les fichiers VBO,
• en blocs pour les fichiers FBO.
A l'affectation, UFAS-EXTENDED balaye la liste des fragments libres et alloue le plus
petit de ceux qui peuvent fournir la totalité de l'espace requis, s'il en existe.
L is te d e s fra g m e n ts lib re s
40
23
25
60
Dans cet exemple les fragments libres sont respectivement de 40, 23, 25 et 60 cylindres.
Si la demande est de 24 cylindres, UFAS-EXTENDED les prend dans le fragment de 25
cylindres. Après l'opération, les fragments restant libres sont de 40, 23, 1 et 60 cylindres,
comme indiqué dans la figure ci-après :
L is te d e s fra g m e n ts re s ta n t lib re s
40
23
1
60
Si l'espace requis excède la taille du plus grand fragment libre, UFAS-EXTENDED affecte
ce dernier et complète comme suit :
• Il prend les cylindres manquants dans le plus petit fragment libre pouvant les fournir, ou
bien
• S'il n'y a plus de fragment libre égal ou supérieur au nombre de cylindres manquants, il
choisit le plus grand qui reste et continue sa recherche.
6-4
47 F2 04UF Rev04
Fichiers disque - Création et modification
Donc, si l'espace requis est de 86 cylindres, et que les fragments libres font (60 + 40),
UFAS-EXTENDED affecte d'abord celui de 60 cylindres, puis prend les 26 cylindres dans
le fragment de 40 cylindres. Après l'opération, les fragments restant libres sont de 14, 23
et 1 cylindres, comme indiqué dans la figure ci-après :
L is te d e s fra g m e n ts re s ta n t lib re s
14
6.3.1
23
1
Taille de CI (paramètre CISIZE)
Le paramètre CISIZE spécifie la taille de CI en octets ; sa valeur doit être déterminée
avec le plus grand soin. La taille de CI spécifiée ne peut être qu'un multiple de 512 ;
UFAS-EXTENDED arrondit, si nécessaire, la valeur fournie par l'utilisateur au multiple
immédiatement supérieur. Le tableau 6-1 indique les tailles de CI recommandées pour
une utilisation optimale de l'espace disponible sur les disques non-FSA, suivant leur
classe d'appareils. A noter cependant que, dans les applications TDS, le temps de
réponse - en relation avec le nombre de niveaux d'index - peut être un facteur plus
important.
La taille des tampons et le temps de réorganisation incrémentale sont directement
proportionnels à la taille de CI. En principe, plus la taille de CI (CISIZE) est importante,
moins le nombre de réorganisations incrémentales de CI est élevé, et moins il y a
d'opérations d'E/S. A noter que la taille d'un tampon est égale à CISIZE arrondi au
multiple supérieur de 4 Ko lorsque VERSION = CURRENT, (CISIZE+32) arrondi au
multiple supérieur de 4 Ko lorsque VERSION = PREVIOUS.
Le nombre d'articles de format variable logeables dans un CI dépend du total de leurs
longueurs, sachant qu'un article ne peut être réparti sur deux CI.
47 F2 04UF Rev04
6-5
UFAS-EXTENDED - Guide de l'utilisateur
6.3.2
Tailles de CI recommandées pour les fichiers sur disques non-FSA
Les tailles de CI indiquées au tableau 6-1 assurent une utilisation optimale de l'espace sur
les disques non-FSA.
Tableau 6-1. Valeurs recommandées pour CISIZE
Tableau 6-1. Valeurs recommandées pour CISIZE
M S /B 1 0
C IS IZ E
M S /D 5 0 0
N b re d e C I N b re d e C I
de données de données
p a r p is te
p a r cy lin d re
32256
19456
12800
9216
7168
6144
5120
4096
3584
3072
2560
2048
1536
1024
512
1
2
3
4
5
6
7
8
9
11
13
15
19
26
40
(8 1 % )
(9 8 % )
(9 6 % )
(9 3 % )
(9 0 % )
(9 3 % )
(9 0 % )
(8 3 % )
(7 9 % )
(8 5 % )
(8 1 % )
(7 8 % )
(6 9 % )
(5 4 % )
(4 2 % )
15
30
45
60
75
90
1 05
1 20
1 35
1 65
1 95
2 25
2 85
3 90
6 00
C IS IZ E
28672
14336
9216
6656
5120
4096
3584
3072
2560
2048
1536
1024
512
N b re d e C I N b re d e C I
de données de données
p a r p is te
p a r cy lin d re
24
1 (9 8 % )
48
2 (9 8 % )
72
3 (9 5 % )
96
4 (9 1 % )
120
5 (8 8 % )
144
6 (8 4 % )
168
7 (8 6 % )
192
8 (8 4 % )
240
1 0 (8 8 % )
288
1 2 (8 4 % )
360
1 5 (7 9 % )
504
2 1 (7 4 % )
816
3 4 (6 0 % )
Les différents types de disques non-FSA sont les suivants :
Classe d'appareils
Unité de disques
MS/B10
unité de disques de 1 gigaoctet
MS/D500
MSU1007
A la création du fichier, l'utilisateur doit également prendre en compte d'autres éléments
tels que le coût mémoire des tampons en fonction de la taille de CI. La gestion des
tampons est traitée au chapitre 5. Pour les applications TDS, le facteur le plus important
est le nombre de niveaux d'index des fichiers.
Dans le tableau 6-1, les pourcentages figurant entre parenthèses indiquent le taux
d'occupation des pistes.
Depuis la version V5 de GCOS 7, la mémoire est découpée en pages de longueur fixe (4
Ko). Un CI peut être réparti sur plusieurs pages, mais une page ne peut pas contenir deux
CI. Il est important de choisir la valeur de CISIZE de manière à optimiser le remplissage
des pages.
nombre de pages = (CISIZE divisé par 4096) arrondi
au multiple supérieur de 4 Ko
Si par exemple CISIZE = 4 096, il faudra 1 page mémoire par CI.
6-6
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.3.3
Capacités de stockage par type de disques
Tableau 6-2. Capacité des volumes sur disques FSA (en nombre de CI)
Tableau 6-2. Capacité des volumes sur disques FSA
C IS IZ E
(en octets)
512
1024
1536
2048
2560
3072
3584
4096
4608
5120
5632
6144
6656
7168
7680
8192
8704
9216
9728
10240
12288
14336
16384
18432
20480
22528
24576
26624
28672
30720
32256
FS A
320 M o
6284 00
3142 00
2094 66
1571 00
1256 80
1047 33
897 71
785 50
698 22
628 40
571 27
523 66
483 38
448 85
418 93
3 9 2 75
3 6 9 64
3 4 9 11
3 3 0 73
3 1 4 20
261 83
224 42
196 37
174 55
157 10
142 81
130 91
120 84
112 21
104 73
99 74
C apacité du volum e
LS S V 1
FSA
160 0 M o
660 M o
LS S V 2
25 00 M o
26 6960 0
13 3480 0
8 8986 6
6 6740 0
5 3392 0
4 4493 3
3 8137 1
3 3370 0
2 9662 2
2 6696 0
2 4269 0
2 2246 6
2 0535 3
1 9068 5
1 7797 3
1 6685 0
1 5703 5
1 4831 1
1 4050 5
1 3348 0
1 1123 3
9534 2
8342 5
7415 5
6674 0
6067 2
5561 6
5133 8
4767 1
4449 3
4237 4
415 410 0
207 705 0
138 470 0
103 852 5
83 082 0
69 235 0
59 344 2
51 926 2
46 156 6
41 541 0
37 764 5
34 617 5
31 954 6
29 672 1
27 694 0
25 963 1
24 435 8
23 078 3
21 863 6
20 770 5
17 308 7
14 836 0
12 981 5
11 539 1
10 385 2
9 441 1
8 654 3
7 988 6
7 418 0
6 923 5
6 593 8
1 3028 00
6514 00
4342 66
3257 00
2605 60
2171 33
1861 14
1628 50
1447 55
1302 80
1184 36
1085 66
1002 15
930 57
868 53
814 25
766 35
723 77
685 68
651 40
542 83
465 28
407 12
361 88
325 70
296 09
271 41
250 53
232 64
217 13
206 79
En divisant la capacité d'un volume par la taille de CI, on obtient le nombre maximum de
CI que peut contenir ce volume. Par exemple, si CISIZE = 4 096 (octets) et si le volume a
une capacité de 320 mégaoctets, il peut contenir jusqu'à 78 550 CI.
47 F2 04UF Rev04
6-7
UFAS-EXTENDED - Guide de l'utilisateur
Tableau 6-3. Capacité des volumes sur disques non-FSA
Tableau 6-3. Capacité des volumes sur disques non-FSA
C la sse s d 'ap pa re ils
M S /D 5 0 0
M S /B 1 0
N o m b re d e c ylin d re s p a r v o lu m e
707
1730
C y lin d re s s u p p lé m e n ta ire s p o u r
p is te s d e re m p la c e m e n t
2
5
24
15
N o m b re to ta l d e p is te s (s a n s
le s p is te s d e re m p la ce m e n t)
16968
25950
N o m b re d 'o c te ts p a r p is te
d is p o n ib le s p o u r l'u tilis a te u r
29013
39381
N o m b re d 'o c te ts p a r c ylin d re
696312
590715
500
1000
P is te s p a r c y lin d re
C a p a cité to ta le (a p p ro x ., e n
m é g a -o cte ts )
Les tableaux 6-4 et 6-5 présentent la capacité respective de volumes de même classe
d'appareils, mais formatés différemment (FBO avec blocs de données de 4 Ko dans le
premier cas, VBO dans le deuxième cas), et ce pour différentes tailles de CI.
On suppose que la totalité du volume est disponible (pas de zone DSMGT) et que le
fichier considéré est monofragment. A noter qu'un CI peut être réparti sur deux pistes
consécutives dans un volume FBO.
6-8
47 F2 04UF Rev04
Fichiers disque - Création et modification
Tableau 6-4. Capacité respective des volumes VBO et FBO sur disques MS/D500
Tableau 6-4. Capacité respective des volumes VBO et FBO sur disques MS/D500
MS/D500
C IS IZE
512
1024
1536
2048
2560
3072
3584*
4096
4608
5120
5632
6144
6156
6656
7168
7680
8192
8704
9216
à
12288
12800
à
14336
14848
à
16384
16896
à
20480
20992
à
24576
25088
à
28672
29184
à
32768
Nombre de CI
VBO
FB O
576912
356328
254220
203616
169680
135744
118776
101808
84840
84840
67872
67872
67872
67872
50904
50904
50904
50904
33936
33936
33936
33936
33936
33936
16968
16968
16968
16968
16968
16968
16968
16968
16968
16968
16968
16968
0
0
0
101808
101808
101808
101808
101808
101808
101808
101808
50904
50904
50904
50904
50904
50904
50904
50904
50904
33936
33936
33936
33936
25452
25452
25452
25452
25452
25452
20361
20361
20361
16968
16968
16968
14544
14544
14544
12726
12726
12726
D iffé ren ce (e n
p o u rcen ta g e )
-8 2 ,3 5 %
-7 1 ,4 3 %
-6 0 ,0 0 %
-5 0 ,0 0 %
-4 0 ,0 0 %
-2 5 ,0 0 %
-1 4 ,2 9 %
0 ,0 0 %
-4 0 ,0 0 %
-4 0 ,0 0 %
-2 5 ,0 0 %
-2 5 ,0 0 %
-2 5 ,0 0 %
-2 5 ,0 0 %
0 ,0 0 %
0 ,0 0 %
0 ,0 0 %
-3 3 ,3 3 %
0 ,0 0 %
0 ,0 0 %
0 ,0 0 %
-2 5 ,0 0 %
-2 5 ,0 0 %
-2 5 ,0 0 %
5 0 ,0 0 %
5 0 ,0 0 %
5 0 ,0 0 %
2 0 ,0 0 %
2 0 ,0 0 %
2 0 ,0 0 %
0 ,0 0 %
0 ,0 0 %
0 ,0 0 %
-1 4 ,2 9 %
-1 4 ,2 9 %
-1 4 ,2 9 %
"
-
* Valeur implicite pour FILALLOC
47 F2 04UF Rev04
6-9
UFAS-EXTENDED - Guide de l'utilisateur
Tableau 6-5. Capacité respective des volumes VBO et FBO sur disques MS/B10
Tableau 6-5. Capacité respective des volumes VBO et FBO sur disques MS/B10
MS/B10
C IS IZE
512
1024
1536
2048*
2560
3072
3584
4096
4608
5120
5632
6144
6156
6656
7168
7680
8192
8704
9216
9728
12288
12800
13312
16384
16896
19456
19968
20480
20992
24576
25088
28672
29184
32768
N o m b re d e C I
VBO
FB O
1038000
674700
493050
389250
337350
285450
233550
207600
181650
181650
155700
155700
155700
129750
129750
103800
103800
103800
103800
77850
77850
77850
51900
51900
51900
51900
25950
25950
25950
25950
25950
25950
25950
25950
2 07 60 0
2 07 60 0
2 07 60 0
2 07 60 0
2 07 60 0
2 07 60 0
2 07 60 0
2 07 60 0
1 03 80 0
1 03 80 0
1 03 80 0
1 03 80 0
1 03 80 0
1 03 80 0
1 03 80 0
1 03 80 0
1 03 80 0
69 2 0 0
69 2 0 0
69 2 0 0
69 2 0 0
51 9 0 0
51 9 0 0
51 9 0 0
41 5 2 0
41 5 2 0
41 5 2 0
41 5 2 0
34 6 0 0
34 6 0 0
29 6 5 7
29 6 5 7
25 9 5 0
25 9 5 0
D iffé re n ce (e n
p o u rce n ta g e )
-8 0 ,0 0 %
-6 9 ,2 3 %
-5 7 ,8 9 %
-4 6 ,6 7 %
-3 8 ,4 6 %
-2 7 ,2 7 %
-1 1 ,1 1 %
0 ,0 0 %
-4 2 ,8 6 %
-4 2 ,8 6 %
-3 3 ,3 3 %
-3 3 ,3 3 %
-3 3 ,3 3 %
-2 0 ,0 0 %
-2 0 ,0 0 %
0 ,0 0 %
0 ,0 0 %
-3 3 ,3 3 %
-3 3 ,3 3 %
-1 1 ,1 1 %
-1 1 ,1 1 %
-3 3 ,3 3 %
0 ,0 0 %
0 ,0 0 %
-2 0 ,0 0 %
-2 0 ,0 0 %
6 0 ,0 0 %
6 0 ,0 0 %
3 3 ,3 3 %
3 3 ,3 3 %
1 4 ,2 9 %
1 4 ,2 9 %
0 ,0 0 %
0 ,0 0 %
* V a le ur im p licite p o u r F IL A L LO C
6-10
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.3.4
Taille initiale du fichier (paramètre SIZE ou SPLIT)
Comme indiqué précédemment, il existe deux modes d'affectation de l'espace initial :
Avec la commande BUILD_FILE (équivalent JCL = PREALLOC), la commande
CREATE_FILE (équivalent JCL = FILALLOC), le groupe de paramètres ALCn (équivalent
JCL = ALLOCATE) ou le paramètre DYNALC (équivalent JCL = OUTALC), l'utilisateur
peut employer le paramètre SIZE pour demander une affectation globale : il spécifie la
taille voulue et le système effectue la répartition dans un ou plusieurs volumes désignés
par le paramètre FILE, en fonction de l'espace disponible.
Avec la commande BUILD_FILE uniquement, l'utilisateur a également la possibilité
d'employer le paramètre SPLIT (au lieu de SIZE) pour demander une affectation
fractionnée (volume par volume) : il indique la quantité d'espace à affecter dans chaque
volume qu'il spécifie, avec éventuellement une adresse début (cylindre/piste). Dans ce
cas, il doit obligatoirement associer le paramètre SPLITDVC à SPLIT pour désigner la
classe d'appareils. Avec SPLIT, il ne peut y avoir qu'un seul fragment affecté au fichier
par volume et l'utilisateur ne peut spécifier UNIT = CI ou RECORD.
La taille initiale demandée doit être :
• inférieure à 32 768 si UNIT = 100KB, TRACK ou CYL,
• inférieure à 16 777 216 si UNIT = BLOCK ou CI,
• inférieure à 2 130 706 306 si UNIT = RECORD.
Les fichiers séquentiels et séquentiels indexés pouvant faire l'objet d'extensions
automatiques, l'utilisateur n'a à spécifier pour ces fichiers que l'espace requis à la
création. A noter que pour les applications TDS, de trop fréquentes extensions de fichiers
sont coûteuses.
47 F2 04UF Rev04
6-11
UFAS-EXTENDED - Guide de l'utilisateur
6.3.5
Taille d'incrément (paramètre INCRSIZE)
Le paramètre INCRSIZE permet de spécifier la taille d'incrément à utiliser pour l'extension
dynamique (automatique) du fichier, chaque fois que celui-ci sera plein. La valeur de
INCRSIZE est exprimée en cylindres, pistes, CI, articles, blocs ou quanta de 100 Ko,
selon l'option choisie dans le paramètre UNIT. Pour les fichiers sur disques FSA, il est
recommandé de spécifier UNIT = BLOCK ou UNIT = 100KB (voir plus loin dans ce
chapitre).
Le paramètre INCRSIZE est utilisable dans les commandes BUILD_FILE (équivalent JCL
= PREALLOC), CREATE_FILE (équivalent JCL = FILALLOC) ou dans le groupe de
paramètres ALCn (équivalent JCL = ALLOCATE). La valeur de INCRSIZE ne remplace
pas une valeur (autre que zéro) déjà déclarée dans le catalogue, ou fixée ultérieurement
au moyen de MODIFY_FILE (CATMODIF). En cas de conflit, c'est toujours la valeur non
nulle du catalogue qui est retenue.
La valeur implicite de INCRSIZE est 0 (pas d'extension automatique), et sa valeur
maximum 32 767.
La valeur de INCRSIZE doit être suffisante pour limiter le nombre d'extensions
nécessaires. En principe, l'estimation initiale doit être correcte, mais si une extension
s'avère nécessaire, l'incrément doit être assez important (20 à 30% de la valeur spécifiée
pour SIZE à la création du fichier).
Pour effectuer une extension statique, l'utilisateur dispose de la commande GCL
MODIFY_FILE_SPACE avec le paramètre SIZE (voir plus loin dans ce chapitre), ou de
l'ordre JCL PREALLOC avec le paramètre EXTEND.
6-12
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.4
SIMULATION D'AFFECTATION DE PLACE À UN FICHIER
Il est possible de simuler une réservation de place pour un fichier au moyen de la
commande CREATE_FILE (voir plus loin dans ce chapitre pour la syntaxe). Cette
opération présente l'avantage d'être simple et rapide. L'utilisateur évalue d'abord
globalement la taille de fichier nécessaire (par exemple), puis affine progressivement ses
évaluations. Il ne perd plus de temps à calculer le nombre de CI nécessaires pour le
contenu de l'espace adresses 1 ou pour les index (dans le cas d'un fichier séquentiel
indexé).
En mode ligne, vérifier que le paramètre IMMED est à 0, pour pouvoir modifier les
caractéristiques du modèle (de fichier) au moyen des commandes appropriées. Si
l'utilisateur ne spécifie rien, les valeurs implicites s'appliquent pour :
•
•
•
•
•
•
•
•
FILEFORM
FILEORG
RECFORM
CISIZE
RECSIZE
UNIT
SIZE
INCRSIZE
La commande REPORT permet de visualiser les caractéristiques "courantes" du fichier à
créer. Se reporter au manuel de référence de l'utilisateur IOF pour plus de détails sur
cette commande.
47 F2 04UF Rev04
6-13
UFAS-EXTENDED - Guide de l'utilisateur
6.5
CALCULS D'ESPACE POUR UN FICHIER SEQUENTIEL
Les notions de base sur les fichiers séquentiels sont indispensables à la compréhension
des calculs décrits ici. Ces notions sont définies au chapitre 2
Les éléments nécessaires aux calculs sont les suivants :
• RECSIZE (déterminé par le programme utilisateur),
• CISIZE (choisi par le concepteur du fichier),
• Nombre d'articles à enregistrer dans le fichier.
Pour un fichier séquentiel, la valeur de CISIZE doit être comprise dans les limites
suivantes :
• fichiers VBO : CISIZE doit être supérieur ou égal à (RECSIZE + 12), et ne peut excéder
1 piste,
• fichiers FBO : CISIZE doit être supérieur ou égal à (RECSIZE + 14).
6.5.1
Articles de longueur fixe
Si l'utilisateur connait déjà le nombre d'articles du fichier à créer, il lui suffit de spécifier
UNIT = RECORD dans la commande BUILD_FILE : Le système effectue alors
automatiquement la réservation de place. Dans le cas contraire, l'utilisateur doit avoir
recours à l'utilitaire de CREATE_FILE ou effectuer les calculs suivants :
Calcul du nombre d'articles par CI :
Nombre d'articles par CI =
(CISIZE - en-tête CI) divisé par (RECSIZE + 4)
arrondi à l'entier inférieur
Longueur de l'en-tête de CI :
• 10 octets sur les disques FSA ;
• 8 octets sur les disques non-FSA.
4 (octets) correspond à l'en-tête d'article.
6-14
47 F2 04UF Rev04
Fichiers disque - Création et modification
Calcul du nombre de CI requis :
Nombre de CI =
(nb total d'articles) divisé par (nb d'articles par CI)
arrondi à l'entier supérieur
Si la réservation d'espace est effectuée par BUILD_FILE avec UNIT = CI ou RECORD, le
nombre de CI ainsi calculé est suffisant car la piste devant contenir l'espace adresses 1
est ajoutée automatiquement par le système.
(disques non-FSA uniquement) Si UNIT = TRACK ou CYL, il faut calculer le nombre de
pistes (et éventuellement de cylindres à partir de ce nombre) :
Nb de pistes =
(Nb total de CI) divisé par (Nb CI par piste) + 1
arrondi à l'entier supérieur
La piste supplémentaire est nécessaire pour l'espace adresses 1 (alors que si UNIT = CI
ou RECORD, elle est ajoutée automatiquement par le système).
Le nombre de CI par piste est indiqué au tableau 6-1.
Exemple FBO :
Soit un fichier séquentiel PK.LOP de 2 349 articles d'une longueur de 220 octets chacun,
à implanter dans un volume MS/FSA.
D'après une simulation (voir plus loin dans ce chapitre) le nombre de blocs nécessaires
est de 90.
CREATE_FILE
PK.LOP:VOL1:MS/FSA
FILESTAT = CAT
UFAS = SEQ
UNIT = BLOCK
SIZE = 90
CISIZE = 6144
RECFORM = F
RECSIZE = 220;
Exemple VBO
Soit un fichier séquentiel PC.WTM de 3 000 articles d'une longueur de 90 octets chacun à
implanter dans le volume BD18 sur MS/D500. La taille de CI est de 4 096 octets.
La méthode la plus simple consiste à spécifier UNIT = RECORD et SIZE=3000 dans la
commande BUILD_FILE. UFAS-EXTENDED calcule ensuite automatiquement le nombre
de pistes nécessaires.
Dans les autres cas, l'utilisateur doit avoir recours à l'utilitaire CREATE_FILE ou effectuer
les calculs suivants :
Nb d'articles par CI = (4096 - 8) divisé par (90 + 4) = 43
Nb de CI de données = 3000 divisé par 43 = 70
47 F2 04UF Rev04
6-15
UFAS-EXTENDED - Guide de l'utilisateur
Avec une taille de CI de 4096, il y a six CI par piste (voir tableau 6-1, colonne MS/D500).
Nb de pistes = (70 divisé par 6) + 1 = 13
La commande BUILD_FILE est la suivante :
BUILD_FILE PC.WTM:BD18:MS/D500
FILESTAT = CAT
UFAS = SEQ
UNIT = CI
(ou UNIT = TRACK
SIZE = 70
SIZE = 13
CISIZE = 4096
RECSIZE = 90;
ou UNIT = CYL
SIZE = 1 )
D'après le tableau 6-3, un cylindre MS/D500 contient 24 pistes et sera donc suffisant pour
les 13 pistes du fichier PC.WTM.
6-16
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.5.2
Articles de longueur variable
Le mode de calcul est le même que pour les articles de longueur fixe, mais avec une
longueur moyenne d'article (lma) au lieu d'une longueur fixe (RECSIZE).
Nombre d'articles par CI =
(CISIZE - en-tête CI) divisé par (lma + 4)
arrondi à l'entier inférieur
Nombre de CI =
(Nb total d'articles) divisé par (Nb articles par CI)
arrondi à l'entier supérieur
Nombre de pistes =
(Nb total de CI) divisé par (Nb CI par piste) plus 1
arrondi à l'entier supérieur
Exemple FBO :
Soit un fichier séquentiel PK.RIT de 2000 articles de longueur variable (longueur
moyenne 25 octets et longueur maximum 98 octets), à implanter dans un volume
MS/FSA. La taille de CI est de 3584 octets.
Nombre d'articles par CI = (3584 - 10) divisé par (25 + 4) = 123,24 = 123
Nombre de CI de données = 2000 divisé par 123 = 16,23 = 17
Ajouter à ce résultat 5 CI pour l'espace adresses 1, ce qui donne au total 22 CI. A noter
qu'il est toujours possible de modifier cette estimation au moyen de CREATE_FILE (voir
précédemment) :
CRF
47 F2 04UF Rev04
PK.RIT:PKT:MS/FSA
FILESTAT = CAT
UFAS = SEQ
UNIT = BLOCK
SIZE = 22
CISIZE = 3584
RECFORM = V
RECSIZE = 98;
6-17
UFAS-EXTENDED - Guide de l'utilisateur
Exemple VBO :
Soit un fichier séquentiel PC.VWT de 4500 articles de longueur variable (longueur
moyenne 40 octets et longueur maximum 120 octets), à implanter dans le volume MX42
sur MS/D500. La taille de CI est de 1536 octets.
Nombre d'articles par CI = (1536 - 8) divisé par (40 + 4) = 34
A noter que si UNIT = RECORD (avec SIZE = 4500), l'utilisateur doit spécifier une taille
d'article de 120 (au lieu de 40).
Nombre de CI = 4500 divisé par 34 = 133
Avec une taille de CI de 1536, il y a 15 CI par piste (voir tableau 6-1 colonne MS/D500).
Nombre de pistes = (133 divisé par 15) + 1
= 9,86 arrondi à l'entier supérieur = 10
La commande BUILD_FILE est la suivante :
BUILD_FILE
6-18
PC.VWT:MX42:MS/D500
FILESTAT = CAT
UFAS = SEQ
UNIT = CI
(ou UNIT = TRACK
SIZE = 133
SIZE = 10
CISIZE = 1536
RECSIZE = 120
RECFORM = V;
ou UNIT = CYL
SIZE = 1 )
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.6
CALCULS D'ESPACE POUR UN FICHIER RELATIF
Les notions de base sur les fichiers relatifs sont indispensables à la compréhension des
calculs décrits ici. Ces notions sont définies au chapitre 3.
Les éléments nécessaires aux calculs sont les suivants :
• RECSIZE (déterminé par le programme utilisateur),
• CISIZE (choisi par le concepteur du fichier),
• Nombre d'articles à enregistrer dans le fichier.
Pour un fichier relatif, le format des articles (fixe ou variable) n'a pas d'incidence sur le
mode de calcul. D'autre part, la valeur de CISIZE doit être comprise dans les limites
suivantes :
• fichiers FBO : CISIZE doit être supérieur ou égal à (RECSIZE + 14).
• fichiers VBO : CISIZE doit être supérieur ou égal à (RECSIZE + 12), et ne peut excéder
1 piste.
La méthode la plus simple consiste à spécifier UNIT = RECORD et SIZE = nombre
d'articles dans la commande BUILD_FILE. UFAS-EXTENDED calcule ensuite
automatiquement le nombre de blocs/pistes nécessaires.
Dans les autres cas, l'utilisateur doit avoir recours à la commande REPORT de
CREATE_FILE, ou effectuer les calculs suivants :
1.
Calcul du nombre d'articles par CI :
Nombre d'articles par CI =
(CISIZE - en-tête CI) divisé par (RECSIZE + 4) arrondi à l'entier inférieur
Longueur de l'en-tête de CI :
• 8 octets pour les fichiers VBO ;
• 10 octets pour les fichiers FBO (9 + 1 octet de fin).
4 (octets) correspond à l'en-tête d'article.
47 F2 04UF Rev04
6-19
UFAS-EXTENDED - Guide de l'utilisateur
2.
Calcul du nombre de CI requis :
Nombre de CI =
(Nb total d'articles) divisé par (Nb articles par CI)
arrondi à l'entier supérieur
3.
Pour les volumes VBO, calculer le nombre de pistes :
Nombre de pistes =
(Nb total de CI ) divisé par (Nb CI par piste) plus 1
arrondi à l'entier supérieur
(La piste supplémentaire correspond à l'espace adresses 1.)
Exemple FBO
Soit un fichier relatif POR.CL de 4510 articles d'une longueur de 112 octets chacun, à
implanter dans le volume RR1 sur MS/FSA. La taille de CI est de 4608 octets. L'unité
d'affectation est le bloc.
Nombre d'articles par CI = (4608 - 10) divisé par (112 + 4) = 39
Nombre de CI = 4510 divisé par 39 = 116
Ajouter à ce résultat 5 CI pour l'espace adresses 1, ce qui donne au total 121 CI, à
spécifier dans le paramètre SIZE. A noter qu'il est toujours possible de modifier cette
valeur en effectuant une simulation au moyen de CREATE_FILE (voir précédemment) :
CRF
POR.CL:RR1:MS/FSA
FILESTAT = CAT
UFAS = RELATIVE
UNIT = CI
SIZE = 121
CISIZE = 4608
RECSIZE = 112;
Exemple VBO
Soit un fichier relatif CLX.AA de 2.080 articles d'une longueur de 134 octets chacun, à
implanter dans le volume 26P sur MS/D500. La taille de CI est de 2560 octets.
Nombre d'articles par CI = (2560 - 8) divisé par (134 + 4) = 18
Nombre de CI = 2080 divisé par 18 = 116
Une piste peut contenir 10 CI de 2560 octets (voir tableau 6-1, colonne MS/D500).
6-20
47 F2 04UF Rev04
Fichiers disque - Création et modification
Nombre de pistes = (116 divisé par 10) plus 1
arrondi à l'entier supérieur = 13
La commande BUILD_FILE est la suivante :
BF CLX.AA:26P:MS/D500
FILESTAT = CAT
UFAS = RELATIVE
UNIT = CI
ou ( UNIT = TRACK
SIZE = 116
SIZE = 13
CISIZE = 2560
RECSIZE = 134;
ou
UNIT = CYL
SIZE = 1
)
D'après le tableau 6-3, un cylindre MS/D500 contient 24 pistes et sera donc suffisant pour
les 13 pistes du fichier CLX.AA. Ainsi, 11 pistes sont inutilisées lorsque UNIT = CYL. Par
conséquent il est préférable de spécifier UNIT = TRACK.
Les calculs sont les mêmes quel que soit le format des articles (fixe ou variable).
47 F2 04UF Rev04
6-21
UFAS-EXTENDED - Guide de l'utilisateur
6.7
PARAMETRAGE DES FICHIERS SEQUENTIELS INDEXES
Les notions de base sur les fichiers séquentiels indexés sont indispensables à la
compréhension de ce paragraphe. Ces notions sont définies au chapitre 4.
Le paramétrage d'un fichier indexé présentant une certaine complexité, il est
recommandé de ne pas passer trop rapidement sur cette partie.
Pour la réservation d'espace, l'utilisateur doit spécifier les valeurs suivantes :
CISIZE
taille (en octets) de CI (de données, d'index, de label), pour le
groupe de paramètres ALCn.
CIFSP
espace libre à laisser par CI (en pourcentage)
SIZE
taille initiale du fichier :
(UNIT = BLOCK, 100KB, CYL ou RECORD) pour les fichiers
FBO.
(UNIT = CI, TRACK, CYL ou RECORD) pour les fichiers
VBO.
CIFSP a une valeur implicite de 0. Si l'utilisateur souhaite l'extension automatique du
fichier, il doit spécifier la taille de l'incrément dans le paramètre INCRSIZE de la
commande BUILD_FILE ou CREATE_FILE, ou du groupe de paramètres ALCn. Les
équivalents JCL de ces commandes sont les utilitaires PREALLOC et FILALLOC, le
paramètre OUTALC et l'ordre ALLOCATE.
Le mode d'accès a une influence déterminante sur les temps d'accès.
En accès direct, les performances sont constantes pendant toute la durée de vie du
fichier.
Les performances dépendent du facteur de groupage, c'est-à-dire du nombre d'articles
par CI. Sa valeur doit obligatoirement être supérieure ou égale à 2.
Facteur de groupage = (CISIZE - en-tête CI)
divisé par RECSIZE + 7
7 (octets) correspond à la longueur de l'en-tête d'article (5 octets) plus celle du
descripteur d'article (2 octets).
L'en-tête de CI a une longueur de 21 octets (+ 1 octet pour le label fin de CI) pour les
fichiers FBO, et de 20 octets pour les fichiers VBO (voir figure 4-13).
6-22
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.7.1
Taille de CI (paramètre CISIZE) pour un fichier séquentiel indexé
Le choix de la taille de CI dépend du type d'application à exécuter. Pour une application
TDS, la taille de CI doit correspondre à 2 niveaux d'index maximum. Le nombre de
rubriques d'index se calcule comme suit :
• Clé primaire
Nombre de rubriques par CI d'index = (CISIZE - 10) divisé par (KEYSIZE + 4)
• Clé secondaire
Nombre de rubriques par CI d'index = (CISIZE - 10) divisé par (KEYSIZE + 8)
Pour limiter à 2 le nombre de niveaux d'index, s'assurer que le nombre de rubriques par
index est supérieur à la racine carrée du nombre de CI du fichier. Si ce n'est pas le cas,
augmenter la taille de CI afin de réduire le nombre de CI de données et d'index.
La taille de CI doit être suffisante pour contenir au moins deux articles. Elle doit être fixée
dans les limites suivantes :
• Fichiers VBO :
Longueur de piste >= CISIZE >= 2 * (RECSIZE + 7) + en-tête CI
• Fichiers FBO :
CISIZE >= 2 * (RECSIZE + 7) + en-tête CI
Une taille de CI d'environ 4 Ko offre une bonne efficacité. De même, essayer de choisir
un facteur de groupage compris entre les limites suivantes :
10 <= facteur de groupage <= 255
sachant que :
facteur de groupage = (CISIZE - en-tête CI) divisé par (RECSIZE + 7)
47 F2 04UF Rev04
6-23
UFAS-EXTENDED - Guide de l'utilisateur
6.7.2
Espace libre par CI (paramètre CIFSP)
Le paramètre CIFSP permet de spécifier le pourcentage d'espace libre à laisser dans
chaque CI au chargement initial du fichier. Cet espace permet par la suite d'insérer des
articles sans entraîner de réorganisations incrémentales de CI. Il doit être suffisamment
grand pour contenir un article ou un nombre entier d'articles. Par exemple, s'il y a 10
articles par CI, l'utilisateur peut spécifier 20 % d'espace libre pour permettre l'insertion
ultérieure de 2 articles.
A noter que le paramètre CIFSP du groupe de paramètres DEFn (équivalent JCL =
DEFINE) n'est utilisable qu'à la création du fichier.
Si l'utilisateur crée un fichier séquentiel dans lequel il ne prévoit aucune insertion, il doit
attribuer la valeur 0 au paramètre CIFSP de la commande BUILD_FILE.
S'il envisage des insertions réparties sur l'ensemble du fichier, il peut spécifier une valeur
proche de 20.
Si les insertions sont concentrées en un même endroit du fichier, l'utilisateur n'a pas à
employer CIFSP.
Figure 6-1. Exemple d'utilisation de CIFSP
Exemple :
C I a u ch a rg e m e n t
in itia l
A la cré a tio n d u fich ie r, l'u tilisa te u r
sp é c ifie C IF S P = 2 0 (2 0 % d 'e s p a ce
lib re p a r C I).
A u c h a rg e m e n t in itia l, le fic h ie r e s t d o n c
re m p li à 8 0 % .
8 0 % d 'e sp a c e
occupé
2 0 % d 'e sp a c e
lib re
C I a p rè s in s e rtio n s
A p rè s in se rtio n s e n m o d e I-O ,
le fic h ie r e st p le in à 9 0 % e t co m p o rte
d o n c e n co re 1 0 % d 'e s p a ce lib re .
9 0 % d 'e sp a c e
occupé
1 0 % d 'e sp a c e
lib re
Figure 6-1. Exemple d'utilisation de CIFSP
Le maximum d'espace libre s'obtient en chargeant un seul article par CI, c'est-à-dire en
spécifiant CIFSP = 100. Il est possible de calculer le pourcentage d'espace libre avec un
seul article par CI ; toute valeur comprise entre ce pourcentage et 100 équivaut à spécifier
100.
6-24
47 F2 04UF Rev04
Fichiers disque - Création et modification
Dans le cas d'un fichier volatile, le paramètre CIFSP peut être utile pour réduire le nombre
important de réorganisations incrémentales (de CI).
Lorsque l'unité d'affectation est l'article (UNIT = RECORD), le nombre d'articles spécifié
dans le paramètre SIZE correspond au nombre d'articles à charger initialement. Si CIFSP
est spécifié, UFAS-EXTENDED calcule automatiquement la quantité d'espace libre à
prévoir par CI pour permettre l'insertion ultérieure d'articles. Si l'on a par exemple :
UNIT = RECORD
SIZE = 1000
CIFSP = 20
UFAS-EXTENDED réserve de l'espace pour un fichier de 1000 articles, avec 20 %
d'espace libre par CI.
Avec les autres unités d'affectation, le système réserve la quantité d'espace demandée.
6.7.3
Insertion de masse
L'insertion de masse consiste en l'adjonction séquentielle d'articles à la fin (dans l'ordre
croissant des clés) ou au début (dans l'ordre décroissant des clés) d'un fichier ouvert en
mode I-O. Dans le premier cas, les valeurs de clés des nouveaux articles doivent être
supérieures à la valeur de clé la plus élevée du fichier. Dans le second cas, les valeurs de
clés des nouveaux articles doivent être inférieures à la valeur de clé la moins élevée du
fichier.
IMPORTANT :
A noter qu'en cas d'insertion de masse, UFAS-EXTENDED ne prend pas en compte le
paramètre CIFSP du groupe DEFn (équivalent JCL = DEFINE), et crée autant de CI
pleins que nécessaire.
6.7.4
Fichiers avec clés secondaires
En règle générale, éviter d'utiliser des index secondaires. Dans le cas d'une application
TDS, ne pas en spécifier plus de 3.
47 F2 04UF Rev04
6-25
UFAS-EXTENDED - Guide de l'utilisateur
6.7.5
Calculs d'espace
Il est possible d'éviter ces calculs en utilisant la commande CREATE_FILE, qui permet de
simuler une réservation d'espace pour un fichier (voir précédemment).
Si UNIT = CI ou RECORD (commande BUILD_FILE avec SIZE uniquement), l'utilisateur
doit disposer des éléments suivants :
•
Taille de CI (CISIZE), en octets,
•
Longueur d'article (RECSIZE), en octets,
•
Nombre d'articles à enregistrer dans le fichier,
•
Longueur de la zone clé, en octets.
Lorsque UNIT = CI, il doit ensuite calculer le nombre total de CI pour pouvoir définir la
taille initiale du fichier (paramètre SIZE).
Si UNIT = TRACK ou CYL, procéder de même, en calculant la taille du fichier en pistes
ou en cylindres pour le paramètre SIZE (ou éventuellement SPLIT dans BUILD_FILE).
La taille de CI doit être suffisante pour contenir au moins 2 articles. Le nombre maximum
d'articles par CI de données est 255.
Lorsque les articles sont de format variable, c'est leur longueur moyenne qui doit être
utilisée dans les calculs, mais c'est la longueur maximale qui est à spécifier dans le
paramètre RECSIZE de la commande BUILD_FILE.
Le format d'un CI est représenté à la figure 4-13.
Les résultats doivent être arrondis à l'entier le plus proche (inférieur ou supérieur selon le
cas). Si nécessaire, CISIZE est automatiquement arrondi par le système au multiple de
512 immédiatement supérieur.
6.7.5.1
Fichiers sans index secondaires
La méthode de calcul dépend de l'unité d'affectation spécifiée dans le paramètre UNIT
(RECORD, CI, CYL, TRACK, BLOCK ou 100KB).
Pour les fichiers FBO, il est préférable de spécifier UNIT = BLOCK ou UNIT = 100KB. A
noter que ces unités ne sont pas utilisables avec des fichiers VBO.
6-26
47 F2 04UF Rev04
Fichiers disque - Création et modification
Si UNIT = RECORD (commande BUILD_FILE uniquement)
L'utilisateur spécifie directement la taille du fichier en nombre d'articles dans le paramètre
SIZE. La conversion en espace disque est effectuée à l'exécution par UFAS-EXTENDED.
Remarque :
Si UNIT = CI, CYL ou TRACK, certains calculs sont nécessaires, sauf
si l'on utilise la commande REPORT de CREATE_FILE.
Si UNIT = CI (commande BUILD_FILE uniquement)
L'utilisateur spécifie la taille du fichier en nombre de CI dans le paramètre SIZE. Ses
informations de base sont les suivantes :
•
Nombre d'articles à enregistrer dans le fichier ;
•
RECSIZE, c'est-à-dire la longueur d'article (en octets) ; pour les articles de format
variable, c'est la longueur moyenne qui est à utiliser pour les calculs ;
•
CISIZE, c'est-à-dire la taille (en octets) des CI de données, de label et d'index ;
•
KEYSIZE,
c'est-à-dire
la
longueur
de
la
zone
clé
(en
octets).
L'utilisateur peut réserver de l'espace pour un fichier VBO au format UFAS (VERSION
= PREVIOUS), mais ce uniquement au moyen de PREALLOC. Voir annexe F pour
plus de détails.
Pour créer un fichier, la solution la plus simple consiste à utiliser BUILD_FILE avec UNIT
= RECORD et SIZE = nombre d'articles. UFAS-EXTENDED calcule ensuite
automatiquement :
•
le nombre de blocs nécessaires (pour un fichier FBO),
•
le nombre de pistes nécessaires (pour un fichier VBO).
Dans tous les autres cas, utiliser la commande REPORT de CREATE_FILE ou
effectuer les calculs suivants :
1. Nombre d'articles par CI :
Nombre d'articles par CI = (CISIZE - en-tête CI) divisé par (RECSIZE + 7)
arrondi à l'entier inférieur
2 <= Nb d'articles par CI <= 255
Longueur de l'en-tête de CI :
•
22 octets pour les fichiers FBO,
•
20 octets pour les fichiers VBO.
2. Nombre de CI de données dans le fichier :
(Nb total d'articles) divisé par (Nb d'articles par CI)
arrondi à l'entier supérieur
47 F2 04UF Rev04
6-27
UFAS-EXTENDED - Guide de l'utilisateur
Ces calculs effectués, l'utilisateur peut compléter le paramétrage de sa commande
BUILD_FILE. La conversion en espace disque est effectuée à l'exécution par UFASEXTENDED.
Exemple FBO :
Soit le fichier ED.BRT à implanter dans le volume VOL8 sur MS/FSA. L'unité d'affectation
est le bloc (UNIT = BLOCK).
Les informations de base sont les suivantes :
•
Nombre d'articles à enregistrer dans le fichier = 7.436
•
RECSIZE = 230 octets
•
CISIZE = 3584 octets
•
KEYSIZE = 15 octets
•
KEYLOC = 6 (début de la clé au 6ème octet de l'article)
Nombre d'articles par CI
= (3584 - 22) divisé par (230 + 7) = 15
Nombre de CI = 7436 divisé par 15
= 496 arrondi à l'entier supérieur
D'après une simulation (au moyen de CREATE_FILE) le nombre de blocs nécessaires est
de 505. Les données occupent 496 blocs, et 9 autres blocs sont réservés aux
informations de gestion (y compris l'index primaire). Une taille de 505 blocs est suffisante
pour contenir 7436 articles.
CRF
6-28
ED.BRT:VOL8:MS/FSA
EXPDATE = 450
FILESTAT = CAT
UFAS = INDEXED
UNIT = BLOCK
SIZE = 505
CISIZE = 3584
RECSIZE = 230
KEYLOC = 6
KEYSIZE = 15;
47 F2 04UF Rev04
Fichiers disque - Création et modification
Exemple VBO :
Soit le fichier JC.EXM à implanter dans le volume TNDA sur MS/D500. L'unité
d'affectation est le CI (UNIT = CI).
Les informations de base sont les suivantes :
•
Nombre d'articles à enregistrer dans le fichier = 5060
•
RECSIZE = 200 octets
•
CISIZE = 4096 octets (le tableau 6-1 indique que dans ce cas, il y a 6 CI de données
par piste sur MS/D500).
•
KEYSIZE = 10 octets
•
KEYLOC = 5 (début de la clé au 5ème octet de l'article).
Les calculs permettant d'obtenir le nombre de CI de données sont les suivants :
Nombre d'articles par CI = (4096 - 20) divisé par (200 + 7)
= 19,69
= 19 arrondi à l'entier inférieur
Nombre de CI de données = 5060 divisé par 19
= 267 arrondi à l'entier supérieur
Les 267 CI de données sont enregistrés dans l'espace adresses 2. Les espaces adresses
1, 3 et 4 étant gérés par le système, l'utilisateur n'a pas à intervenir.
La commande BUILD_FILE pourra se présenter comme suit :
BUILD_FILE JC.EXM:TNDA:MS/D500
EXPDATE = 199
FILESTAT = CAT
UFAS = INDEXED
UNIT = CI (ou UNIT = RECORD et SIZE = 5060)
SIZE = 267
CISIZE = 4096
RECSIZE = 200
KEYLOC = 5
KEYSIZE = 10;
47 F2 04UF Rev04
6-29
UFAS-EXTENDED - Guide de l'utilisateur
Si UNIT = CYL ou TRACK
A noter qu'il est préférable de réserver ces unités d'affectation aux fichiers implantés sur
des disques non-FSA.
Lorsqu'il spécifie UNIT = CYL ou TRACK, l'utilisateur doit connaître exactement le
nombre de cylindres ou de pistes nécessaires à son fichier, alors qu'avec UNIT =
RECORD ou CI, il indique simplement un nombre d'articles ou de CI et c'est UFASEXTENDED qui assure la conversion en espace disque.
Pour déterminer le nombre de pistes requis, la meilleure méthode consiste à faire
effectuer le calcul par le processeur CREATE_FILE en simulant la création du fichier (voir
précédemment).
Lorsque UNIT = CYL, l'utilisateur peut convertir le nombre de pistes en nombre de
cylindres, comme suit :
Nombre de cylindres =
(Nb total de pistes) divisé par (Nb de pistes par cyl.)
arrondi à l'entier supérieur
Une fois connu le nombre de cylindres (ou de pistes), il est possible de créer le fichier à
l'aide de BUILD_FILE.
Les paramètres obligatoires sont les suivants :
SIZE ou SPLIT
RECSIZE
CISIZE
KEYSIZE
KEYLOC
taille du fichier (globale ou répartie), en cylindres ou pistes.
longueur d'article, en octets (UFAS-EXTENDED prend en
compte la longueur maximale spécifiée pour les articles de
format variable).
taille de CI, en octets
longueur de la clé primaire, en octets.
octet début de la clé primaire dans l'article (le premier octet
de l'article occupe la position 1).
Exemple :
Soit le fichier JC.EXN à implanter dans le volume TNDA sur MS/D500, avec UNIT =
TRACK.
Informations de base :
Nombre de pistes = 95
RECSIZE = 200 octets
CISIZE = 5120 octets
KEYSIZE = 20 octets
KEYLOC = 53
Le tableau 6-1. indique qu'avec CISIZE = 5120, il y a 5 CI par piste sur MS/D500.
6-30
47 F2 04UF Rev04
Fichiers disque - Création et modification
La commande BUILD_FILE se présente donc comme suit :
BF FILE = JC.EXN:TNDA:MS/D500
FILESTAT = CAT
EXPDATE = 199
UFAS = INDEXED
UNIT = TRACK
SIZE = 95
CISIZE = 5120
RECSIZE = 200
KEYSIZE 20
KEYLOC = 53;
Le nombre d'articles du fichier s'obtient par la commande CREATE_FILE (équivalent JCL
= FILALLOC), et la place allouée à chaque espace adresses par la commande
LIST_FILE. Le nombre d'articles s'obtient en multipliant le nombre de CI par le nombre
d'articles par CI.
6.7.5.2
Fichiers avec index secondaires
Les index secondaires sont rangés dans les espaces adresses 5, 6 et 7. La réservation
d'espace s'effectue de la même manière que pour les espaces adresses 2, 3 et 4
respectivement, à ceci près qu'il doit être tenu compte du nombre d'index secondaires.
Comme pour les fichiers sans index secondaires, l'unité d'affectation peut être le bloc
(BLOCK) ou le quantum de 100 Ko (100KB), ou encore l'article (RECORD) pour les
fichiers FBO. Il est préférable de n'utiliser le cylindre (CYL), la piste (TRACK) et le CI (CI)
que pour les fichiers qui sont implantés sur des disques VBO.
Si UNIT = RECORD (Commande BUILD_FILE uniquement)
L'utilisateur spécifie directement la taille du fichier en nombre d'articles dans le paramètre
SIZE. La conversion en espace disque est effectuée à l'exécution par UFAS-EXTENDED.
Si UNIT = CI (Commande BUILD_FILE uniquement)
L'utilisateur spécifie la taille du fichier en nombre de CI dans le paramètre SIZE. Il doit
disposer des informations suivantes :
• Nombre d'articles à enregistrer dans le fichier,
• RECSIZE, c'est-à-dire la longueur d'article (en octets) ; pour les articles de format
variable, c'est la longueur moyenne qui est à utiliser pour les calculs,
• CISIZE, c'est-à-dire la taille de CI (en octets),
• Clé primaire :
-
KEYSIZE, c'est-à-dire la longueur de la clé primaire (en octets)
-
KEYLOC, c'est-à-dire la position début de la clé primaire dans l'article,
• Clés secondaires :
Pour chaque clé secondaire, il doit connaître également sa longueur et sa position
début dans l'article.
Il peut y avoir jusqu'à 15 clés secondaires, à définir dans le paramètre SECIDX de la
commande BUILD_FILE.
47 F2 04UF Rev04
6-31
UFAS-EXTENDED - Guide de l'utilisateur
Le format de ce paramètre est le suivant :
SECIDX = (keyloc:keysize[:DUPREC]...)
Exemple :
SECIDX = (9:4:DUPREC)
Une seule clé secondaire. Elle commence à l'octet 9 et sa longueur est de 4 octets.
DUPREC indique que tous les articles présentant une valeur identique pour cette clé sont
acceptés. Lorsque :DUPREC est omis, si plusieurs articles présentent la même valeur
pour cette clé, seul le premier sera admis dans le fichier.
La longueur maximum d'une clé secondaire est de 251 octets. Une clé doit toujours être
entièrement contenue dans l'article ; sa longueur doit donc être telle que :
(KEYLOC + KEYSIZE) <= (RECSIZE + 1)
Une clé secondaire ne peut avoir la même position début qu'une autre clé (primaire ou
secondaire). A cette restriction près, deux clés peuvent se chevaucher.
Exemple d'article avec deux clés secondaires :
C lé prim aire
1
2
3
4
5
6
7
8
C lé secondaire
KEYSIZE (0) = 4
KEYSIZE (1) = 3
KEYSIZE (2) = 4
9
10
11
12
13
14
15
C lé secondaire
KEYLOC (0) = 1
KEYLOC (1) = 3
KEYLOC (2) = 9
Clé primaire :
Position début = 1
Longueur = 4
Clé secondaire 1 :
Position début = 3
Longueur = 3
6-32
47 F2 04UF Rev04
Fichiers disque - Création et modification
Clé secondaire 2 :
Position début = 9
Longueur = 4
Pour spécifier le paramètre SIZE dans la commande BUILD_FILE, l'utilisateur doit
calculer le nombre de CI de données du fichier, comme suit :
1. Nombre d'articles par CI :
(CISIZE - en-tête CI) divisé par (RECSIZE + 7)
arrondi à l'entier inférieur
L'en-tête de CI a une longueur de 22 octets (fichiers FBO) ou de 20 octets (fichiers VBO).
2. Nombre de CI de données dans le fichier :
(Nb total d'articles) divisé par (Nb d'articles par CI)
arrondi à l'entier supérieur
A l'exécution, UFAS-EXTENDED effectue la conversion en espace disque.
Remarque :
Un exemple de vidage en hexadécimal du contenu des espaces
adresses pour les fichiers séquentiels indexés est fourni à l'annexe C.
Exemple FBO :
Soit le fichier PK.NEY à implanter dans le volume VOL44 sur MS/FSA, avec
UNIT = BLOCK.
Informations de base :
Nombre d'articles à enregistrer dans le fichier = 3115
RECSIZE = 108 octets
CISIZE = 4096 octets
Clé primaire :
KEYLOC = 4 (Position début)
KEYSIZE = 14 (Longueur)
47 F2 04UF Rev04
6-33
UFAS-EXTENDED - Guide de l'utilisateur
Clés secondaires (à spécifier dans le paramètre SECIDX) :
Clé 1 :
Position début = 19
Longueur = 6
Clé 2 :
Position début = 30
Longueur = 39
Clé 3 :
Position début = 74
Longueur = 17
Clé 4 :
Position début = 95
Longueur = 9
1. L'utilisateur doit calculer le nombre de CI de données du fichier comme suit :
Nombre d'articles par CI
= (4096 - 22) divisé par (108 + 7)
= 35 arrondi à l'entier inférieur
Nombre de CI de données = 3115 divisé par 35 = 89
2. Simuler la création du fichier au moyen de CREATE_FILE (voir précédemment).
Evaluer globalement la taille du fichier, en tenant compte des blocs supplémentaires
pour l'espace adresses 1 et les index primaire et secondaires.
Affiner ensuite l'estimation en modifiant la valeur de SIZE. A noter que le fichier doit
avoir une taille minimum de 214 blocs pour pouvoir contenir 3115 articles.
6-34
47 F2 04UF Rev04
Fichiers disque - Création et modification
3. La commande CREATE_FILE se présentera comme suit :
CRF PK.NEY:VOL44:MS/FSA
FILESTAT = CAT
EXPDATE = 210
UFAS = INDEXED
UNIT = BLOCK
SIZE = 214
CISIZE = 4096
RECSIZE = 108
KEYLOC = 4
KEYSIZE = 14
SECIDX = (19:6 30:39 74:17 95:9);
Exemple VBO :
Soit le fichier JC.EXO à implanter dans le volume TNDA sur MS/B10, avec UNIT = CI.
Informations de base :
Nombre d'articles à enregistrer dans le fichier = 2915
RECSIZE = 200 octets
CISIZE = 3584 octets
Clé primaire :
KEYLOC = 5 (Position début)
KEYSIZE = 20 (Longueur)
Clés secondaires (à spécifier dans le paramètre SECIDX) :
Clé 1 :
Position début = 30
Longueur = 10
Clé 2 :
Position début = 45
Longueur = 50
Clé 3 :
Position début = 96
Longueur = 40, avec clé en double
47 F2 04UF Rev04
6-35
UFAS-EXTENDED - Guide de l'utilisateur
Clé 4 :
Position début = 138
Longueur = 30, avec clé en double
Le nombre d'articles étant connu, il est possible d'effectuer la réservation de place
directement en articles (UNIT = RECORD).
Sinon, effectuer les calculs suivants pour obtenir le nombre de CI de données :
Nombre d'articles par CI = (3584 - 20) divisé par (200 + 7)
= 17,21
= 17 arrondi à l'entier inférieur
Nombre de CI = 2915 divisé par 17
= 172 arrondi à l'entier supérieur
La commande BUILD_FILE se présentera comme suit :
BF JC.EXO:TNDA:MS/B10
FILESTAT = CAT
EXPDATE = 199
UFAS = INDEXED
UNIT = CI
(ou UNIT = RECORD et SIZE = 2915)
SIZE = 172
CISIZE = 3584
RECSIZE = 200
KEYLOC = 5
KEYSIZE = 20
SECIDX = (30:10 45:50 96:40:DUPREC 138:30:DUPREC);
Le nombre d'articles du fichier s'obtient par la commande CREATE_FILE (équivalent JCL
= FILALLOC), et la place allouée à chaque espace adresses par la commande
LIST_FILE. Le nombre d'articles se calcule en multipliant le nombre de CI par le nombre
d'articles par CI.
Si UNIT = CYL ou TRACK
A noter qu'il est préférable d'utiliser ces unités de réservation uniquement pour les fichiers
implantés sur des disques non-FSA.
Lorsqu'il spécifie UNIT = CYL ou TRACK, l'utilisateur doit connaître exactement le
nombre de cylindres ou de pistes nécessaires à son fichier, alors qu'avec UNIT =
RECORD ou CI, il indique simplement un nombre d'articles ou de CI et c'est UFASEXTENDED qui assure la conversion en espace disque.
Pour déterminer le nombre de pistes requis, la meilleure méthode consiste à faire
effectuer le calcul par le processeur CREATE_FILE en simulant la création du fichier (voir
plus loin dans ce chapitre).
6-36
47 F2 04UF Rev04
Fichiers disque - Création et modification
L'utilisateur dispose de la commande REPORT pour lister les caractéristiques retenues.
Consulter le manuel de référence de l'utilisateur IOF pour plus de détails à ce sujet.
On peut convertir le nombre de pistes en nombre de cylindres, comme suit :
Nombre de cylindres =
(Nb total de pistes) divisé par (Nb de pistes par cyl.)
arrondi à l'entier supérieur
Exemple :
Soit le fichier JC.EXP, à implanter dans le volume TNDA sur MS/D500, avec
UNIT = TRACK.
Informations de base :
Nombre de pistes = 95
RECSIZE = 200 octets
CISIZE = 6656 octets
Clé primaire :
Position début = 5
(paramètre KEYLOC)
Longueur = 20
(paramètre KEYSIZE)
Clés secondaires (à définir dans le paramètre SECIDX) :
Clé 1 :
Position début = 30
Longueur = 10
Clé 2 :
Position début = 45
Longueur = 50
Clé 3 :
Position début = 96
Longueur = 40, avec clé en double
47 F2 04UF Rev04
6-37
UFAS-EXTENDED - Guide de l'utilisateur
Clé 4 :
Position début = 138
Longueur = 30, avec clé en double
Le tableau 6-1. indique qu'avec CISIZE = 6656, il y a 5 CI de données par piste sur
MS/B10.
La commande BUILD_FILE se présente donc comme suit :
BF JC.EXP:TNDA:MS/B10
EXPDATE = 199
FILESTAT = CAT
UFAS = INDEXED
UNIT = TRACK
(UNIT = RECORD ou UNIT = CYL
SIZE =95
SIZE = 7360*
SIZE = 2 )
CISIZE = 6656
RECSIZE = 200
RECFORM = F
KEYLOC = 5
KEYSIZE = 20
SECIDX = (30:10 45:50 96:40:DUPREC 138:30:DUPREC);
Le nombre d'articles du fichier s'obtient par la commande CREATE_FILE (équivalent JCL
= FILALLOC), et la place allouée à chaque espace adresses par la commande
LIST_FILE. Le nombre d'articles se calcule en multipliant le nombre de CI de l'espace
adresses 2 par le nombre d'articles par CI.
* A noter que SIZE = 7360 a été obtenu au moyen de la commande CREATE_FILE.
6-38
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.8
GCL DE CREATION, DE LISTAGE ET DE MODIFICATION
L'utilisateur trouvera ici la syntaxe des commandes et groupes de paramètres GCL
permettant de créer et de modifier des fichiers disque, avec dans chaque cas quelques
exemples. Ces éléments du langage GCL sont décrits en détail dans le manuel de
référence de l'utilisateur IOF.
Des tables de correspondance GCL/JCL et JCL/GCL figurent à l'annexe D. Les ordres
JCL sont décrits dans le manuel de référence JCL et dans le manuel traitant des utilitaires
de gestion des données.
6.8.1
Commande BUILD_FILE
La commande BUILD_FILE permet de créer un fichier disque. La création comprend
l'affectation de place et l'écriture des labels contenant les attributs du fichier.
L'équivalent JCL de BUILD_FILE est l'ordre PREALLOC.
Remarques importantes sur les fichiers FBO :
Pour les fichiers implantés sur disques FSA, il est recommandé de spécifier UNIT =
BLOCK ou UNIT = 100KB.
Néanmoins, pour des raisons de compatibilité, il est toujours possible d'utiliser les
"anciennes" unités de réservation (UNIT = CI, RECORD, CYL ou TRACK).
A l'exécution, UFAS-EXTENDED convertit automatiquement les CI en blocs (si UNIT =
CI), les cylindres en quanta de 1000 Ko (si UNIT = CYL) et les pistes en quanta de 50 Ko
(si UNIT = TRACK).
Il est donc plus simple de spécifier UNIT = BLOCK ou UNIT = 100KB pour les fichiers
implantés sur disques FBO.
47 F2 04UF Rev04
6-39
UFAS-EXTENDED - Guide de l'utilisateur
Syntaxe de la commande BUILD_FILE :
{ BUILD_FILE }
{
}
{ BF
}
FILE = file78
{
{
[ FILESTAT = {
{
{
CAT
}
CAT{1|2|3|4|5} }
} ]
UNCAT
}
TEMPRY
}
{ jjj
}
[ EXPDATE = { aa/jjj
} ]
{ aa/mm/jj }
[ UFAS =
SEQ
]
- - - - - - - - - - - - - - - - - - - [ UNIT = { CYL | BLOCK | 100KB | RECORD | TRACK | CI } ]
[ SIZE = déc10 ]
[ SPLIT = (critères-de-fractionnement) ]
[ SPLITDVC = classe-appareils-fractionnement ]
[ INCRSIZE = déc5 ]
[ MAXEXT = { 5 | déc2 } ]
[ CISIZE = déc5 ]
[ RECSIZE = déc5 ]
[ KEYLOC = déc5 ]
[ KEYSIZE = déc3 ]
[ CIFSP = { 0 | déc3 } ]
[ COLLATE = { EBCDIC | ASCII | BCD } ]
[ SECIDX = (jjjj:jj[:DUPREC]...)]
[ DDLIB1 = lib78 ]
[ AREA = nom30 ]
[ INDEX = nom30 ]
[ SCHEMA = nom30 ]
[ RECFORM = { F | FB | V | VB | U } ]
[ SILENT = { bool | 0 } ]
6-40
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.8.1.1
Exemples de création par la commande BUILD_FILE
Dans tous les exemples qui suivent, les fichiers ont le format UFAS-EXTENDED. A noter
que la meilleure méthode consiste à utiliser la commande CREATE_FILE pour simuler la
création d'un fichier (voir précédemment).
Exemples avec des fichiers séquentiels :
BF
PK.ALI:PAN:MS:FSA
FILESTAT = CAT
UFAS = SEQ
UNIT = BLOCK
SIZE = 287
CISIZE = 3584
RECSIZE = 228
RECFORM = V;
Création du fichier catalogué PK.ALI dans le
volume PAN sur MS/FSA. Sa taille est de
287 blocs. La taille de CI est de 3584 octets.
Les articles ont une longueur de 228 octets ;
leur format d'origine est variable.
BF PK.CT:VOL 11:MS/FSA
FILESTAT = CAT
UFAS = SEQ
UNIT = 100KB
SIZE =5
CISIZE = 4096
RECSIZE = 154;
Création du fichier catalogué PK.CT en
unités de 100 Ko. L'espace total requis est
de 500 Ko. Implicitement, les articles sont de
longueur fixe (154 octets).
BF LP.PJM$RES
FILESTAT = UNCAT
UFAS = SEQ
UNIT = CI
SIZE = 600
CISIZE = 1000
RECSIZE = 190;
Création du fichier résidant de 600 CI de
données. La taille de CI (1000) n'étant pas
un multiple de 512, UFAS-EXTENDED
l'arrondit automatiquement au multiple
immédiatement supérieur, c'est-à-dire 1024.
Implicitement, les articles sont de longueur
fixe (190 octets). Chaque CI de données
contient cinq articles. La capacité totale du
fichier est donc 5 x 600 = 3000 articles.
BF FILE = F2:V9:MS/D500
FILESTAT = UNCAT
UFAS = SEQ
SIZE = 1
CISIZE = 2048
RECSIZE = 100;
Création du fichier non catalogué F2 dans le
volume V9. L'unité d'affectation est
implicitement le cylindre. La taille du fichier
est de 1 cylindre. La taille de CI est de 2048
octets. La longueur d'article est de 100
octets.
BF POW.LM$RES
UFAS = SEQ
SIZE = 5000
UNIT = RECORD
INCRSIZE = 1000
CISIZE = 2048
RECSIZE = 60;
Création du fichier séquentiel POW.LM dans
un ou plusieurs volumes résidants. Sa taille
est de 5000 articles, et son incrément de
1000 articles. La taille de CI est de 2048
octets, la longueur d'article de 60 octets.
BF JKL.MY
UFAS = SEQ
SPLIT = (V8:4 V9:6 V6:7)
Création du fichier JKL.MY avec 4 cylindres
dans le volume V8, 6 cylindres dans le
volume V9 et 7 cylindres dans le volume V6.
JKL.MY est implicitement catalogué. Les
volumes sont sur MS/D500. La taille de
l'incrément est de 2 cylindres maximum par
volume. La taille de CI est de 1024 octets.
Les articles sont de longueur fixe (200
octets).
SPLITDVC = MS/D500
INCRSIZE = 2
CISIZE = 1024
RECSIZE = 200
RECFORM = F;
47 F2 04UF Rev04
6-41
UFAS-EXTENDED - Guide de l'utilisateur
Exemples avec des fichiers relatifs FBO :
BF PK.LOY:V44:MS/FSA
EXPDATE = 340
UNIT = BLOCK
SIZE = 30
UFAS = RELATIVE
CISIZE = 19456
RECSIZE = 88
FILESTAT = CAT;
Création du fichier PK.LOY dans le volume
V44 sur MS/FSA. La taille de CI est de
19456 octets, la taille d'article de 88 octets.
D'après une simulation effectuée au moyen
de CREATE_FILE, ce fichier doit avoir une
taille de 30 blocs pour pouvoir contenir 6119
articles.
Exemple avec des fichiers relatifs VBO
BF MPTSP.DD
EXPDATE = 300
UNIT = CYL
SPLIT = (D18A:10 D18B:10)
SPLITDVC = MS/D500
UFAS = RELATIVE
CISIZE = 1024
RECSIZE = 52
FILESTAT = CAT;
Le fichier relatif MPTSP.DD est implanté sur
deux volumes, D18A et D18B; de 10
cylindres chacun. Il peut être réparti sur les
deux disques, de façon à réduire le
déplacement de la tête de lecture en accès
direct. La période de rétention du fichier est
de 300 jours.
Exemples avec des fichiers séquentiels indexés :
6-42
BF LM.TOR1:LU5:MS/FSA
FILESTAT = CAT
UFAS = INDEXED
UNIT = BLOCK
SIZE = 198
CISIZE = 4096
RECSIZE = 211
RECFORM = F
KEYLOC = 1
KEYSIZE = 16
CIFSP = 12;
Création du fichier LM.TOR1 dans le volume
LU5 sur MS/FSA. L'unité d'affectation est le
bloc. D'après une simulation au moyen de
CREATE_FILE, la taille nécessaire est de
198 blocs. La taille de CI est de 4096 octets.
Les articles, de longueur fixe, font 211
octets. La clé primaire, de 16 octets,
commence à la position 1. Il n'y a pas de
clés secondaires. Un CI contient 18 articles,
avec 12% d'espace libre par CI, ce qui
permet l'insertion ultérieure de 2 articles par
CI.
BF PC.UIX:TNDA:MS/D500
FILESTAT = CAT
UFAS = INDEXED
UNIT = CI
SIZE = 26352
CISIZE = 3072
RECSIZE = 211
KEYLOC = 10
KEYSIZE = 21
CIFSP = 22;
Création du fichier PC.UIX dans le volume
TNDA sur MS/D500. Sa taille est de 26352
CI de données. UFAS-EXTENDED ajoutera
automatiquement la place nécessaire pour
l'espace adresses 1. Les articles ont une
longueur fixe de 211 octets. La clé primaire,
de 21 octets, commence à la position 10. Il
n'y a pas de clés secondaires. La taille de CI
est de 3072 octets. L'espace libre demandé
par CI est de 22 %.
47 F2 04UF Rev04
Fichiers disque - Création et modification
Dans cet exemple, il faut spécifier 22 % d'espace libre (paramètre CIFSP) pour permettre
l'insertion ultérieure de 3 articles. En effet :
Nombre d'articles par CI = (3072 - 20) divisé par (211 + 7) = 14
Par conséquent, le pourcentage d'espace nécessaire est de :
100 divisé par 14 = 7,15 %
pour 1 article, et donc de 22 % pour 3 articles.
L'exemple suivant illustre la création d'un fichier DEPT1.MY dans un catalogue
automatiquement utilisable au moment du traitement (attribut AUTOATT). Pour plus de
détails sur ce point, voir le guide de gestion des catalogues (15UF) et le volume 1 du
manuel de référence de l'utilisateur IOF (21UJ).
CREATE_DIR
NAME = DEPT1;
Création (par l'administrateur du système)
du répertoire maître DEPT1 sur la racine du
catalogue du site.
CREATE_CATALOG
NAME = DEPT1.CATALOG
VOLUME = K141:MS/D500
NBOBJECT = 10;
Création d'un catalogue automatiquement
utilisable (valeur implicite). Une fois ce
catalogue créé, le système sait que tous les
objets catalogués dont le nom commence
par DEPT1 doivent être créés dans
DEPT1.CATALOG ou extraits de ce dernier.
BF FILE = DEPT1.MY
UFAS = INDEXED
SPLIT= (BD14:10 BD15:10)
SPLITDVC = MS/D500
CISIZE = 512
RECSIZE = 115
KEYLOC = 25
KEYSIZE = 30;
Création du fichier catalogué DEPT1.MY
avec 10 cylindres dans chacun des volumes
BD14 et BD15 sur MS/D500. La taille de CI
est de 512 octets, la longueur d'article de
115 octets. La clé primaire, de 30 octets,
commence à l'octet 25.
BF F1:V7:MS/D500
FILESTAT = UNCAT
UFAS = INDEXED
SIZE = 4
CISIZE = 4096
KEYLOC = 25
KEYSIZE = 30
RECSIZE = 120;
Création du fichier non catalogué F1 dans le
volume V7 sur MS/D500. Sa taille est de 4
cylindres. La taille de CI est de 4096 octets.
La clé primaire de 30 octets commence à
l'octet 25. La longueur d'article est de 120
octets. Il n'y a pas de clés secondaires.
BF PHK.JK
UFAS = INDEXED
SPLIT = (V1:2 V2:3 V3:5)
SPLITDVC = MS/D500
INCRSIZE = 2
CISIZE = 1024
RECSIZE = 100
RECFORM = V
KEYLOC = 12
KEYSIZE = 8
SECIDX = (8:4 30:8:DUPREC);
Création du fichier PHK.JK avec 2 cylindres
dans le volume V1, 3 cylindres dans le
volume V2 et 5 cylindres dans le volume V3.
Ces volumes sont sur MS/D500. La taille de
l'incrément est de 2 cylindres. La taille de CI
est de 1024 octets. Les articles sont de
format variable, et leur longueur maximum
est de 100 octets. La clé primaire de 8 octets
commence à l'octet 12. Il y a deux clés
secondaires : la première, de 4 octets,
commence à l'octet 8 et la deuxième, de 8
octets, commence à l'octet 30. Il peut y avoir
des doubles pour la deuxième mais pas pour
la première.
47 F2 04UF Rev04
6-43
UFAS-EXTENDED - Guide de l'utilisateur
6.8.2
Commande CREATE_FILE
La commande CREATE_FILE permet de créer un fichier disque en utilisant
éventuellement comme modèle un fichier existant.
CREATE_FILE peut aussi s'utiliser pour simuler une création, en vue de déterminer
l'espace à réserver dans BUILD_FILE (voir précédemment).
Pour les fichiers FBO, il est préférable de spécifier UNIT = BLOCK ou UNIT = 100KB.
L'équivalent JCL de CREATE_FILE est l'ordre FILALLOC.
Syntaxe de la commande CREATE_FILE :
{ CREATE_FILE }
{
}
{ CRF
}
{ FILE
}
{
} = fichier78
{ OUTFILE }
{ LIKE
}
[ {
} = ( description-fichier-entrée ) ]
{ INFILE }
[ IMMED = { bool | 0 } ]
{
{
[ FILESTAT = {
{
{
CAT
}
CAT{1|2|3|4|5} }
} ]
UNCAT
}
TEMPRY
}
{ jjj
}
[ EXPDATE = { aa/jjj
} ]
{ aa/mm/jj }
[ MORE = { bool | 0 } ]
- - - - - - - - - - - - - - - - - - - [ UNIT = { CYL | BLOCK | 100KB | TRACK } ]
[ SIZE = déc8 ]
[ INCRSIZE = déc5 ]
[ SILENT = { bool | 0 } ]
[ PRTFILE = fichier78 ]
[ COMFILE = fichier78 ]
[ COMMAND = car255 ]
[ REPEAT = bool ]
6-44
47 F2 04UF Rev04
Fichiers disque - Création et modification
Exemple
Commentaire
CRF A.MYF:DK1:MS/FSA
LIKE = B.MYF
IMMED;
Création du fichier A.MYF dans le volume
DK1 sur MS/FSA, à partir du fichier modèle
B.MYF. La création est immédiate (sans
dialogue). A.MYF est implicitement
catalogué (FILESTAT = CAT).
CRF F2:V1:MS/D500
LIKE = F1:V3:MS/D500
IMMED = 1
FILESTAT = UNCAT;
Création du fichier non catalogué F2 dans le
volume V1 sur MS/D500, à partir du fichier
modèle F1.
La création est immédiate ; l'utilisateur ne
peut donc pas modifier les caractéristiques
du fichier.
CRF FILE = F9:V9:MS/M500
FILESTAT = UNCAT;
Création du fichier non catalogué F9. Aucun
fichier modèle n'est spécifié ; ce sont donc
les caractéristiques implicites qui sont
retenues, à savoir :
organisation séquentielle, taille de CI = 3584
octets, articles de format fixe, incrément de
1 cylindre, unité de réservation = cylindre
(CYL), longueur d'article = 200 octets.
L'utilisateur a la possibilité de modifier ces
valeurs (implicitement IMMED=0), car il
entre dans le domaine CREATE_FILE.
CRF FILE = P2.F6:V8:MS/D500
LIKE = P2.F5
FILESTAT = CAT
IMMED = 1;
Création du fichier catalogué P2.F6 dans le
volume V8 sur MS/D500, à partir du fichier
modèle catalogué P2.F5. La création est
immédiate.
CRF FILE = P2.F6:V8:MS/D500
LIKE = P2.F5
FILESTAT = CAT;
Comme dans l'exemple précédent, mais la
création n'est pas immédiate. L'utilisateur
entre dans le domaine CREATE_FILE, et
peut modifier les caractéristiques du fichier.
CRF FILE = MINE6:VV:MS/D500
LIKE = P2.F5
FILESTAT = UNCAT;
Comme dans l'exemple précédent, mais le
fichier MINE6 est à créer dans le volume VV
et ne sera pas catalogué.
CRF FILE = XYZ$RES
COMFILE = X.CRMF
FILESTAT = UNCAT;
Création d'un fichier non catalogué sans
modèle, avec les paramètres extraits du
fichier X.CRMF.
47 F2 04UF Rev04
6-45
UFAS-EXTENDED - Guide de l'utilisateur
Dans l'exemple précédent, les commandes à exécuter par le processeur CREATE_FILE
peuvent être fournies dans un fichier désigné par le paramètre COMFILE ou directement
dans le paramètre COMMAND. Ces commandes sont les suivantes :
•
•
•
•
•
•
•
•
•
•
CATALOG (CAT) : pour définir ou modifier les attributs catalogue du fichier.
CHANGE (CH) : pour définir ou modifier les caractéristiques du fichier.
CREATE (CR) : pour créer le fichier après modification de ses caractéristiques.
DELSIDX (DSX) : pour supprimer une ou toutes les clés secondaires du fichier.
FILTYPE (FT) : pour définir ou modifier l'organisation et le format du fichier.
LISTIDX (LSX) : pour lister une ou toutes les clés secondaires du fichier.
NUMSIDX (NSX) : pour renuméroter les clés secondaires du fichier.
QUIT (Q) : pour sortir du processeur CREATE_FILE.
REPORT (RP) : pour visualiser les caractéristiques retenues pour le fichier à créer.
SECIDX (SX) : pour définir ou modifier une clé secondaire du fichier.
Ou vous pouvez entrer ces commandes directement au terminal comme dans l'exemple
ci-dessous :
CRF .MYFILE$RES
LIKE = P1.YOUFILE
EXPDATE = 365;
(création d'un fichier catalogué avec
dialogue, valide pendant un an).
Ces commandes sont décrites dans le manuel de référence de l'utilisateur IOF.
6-46
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.8.3
Groupe de paramètres ALCn
Le groupe de paramètres ALCn permet de réserver de la place pour un fichier disque à
créer dynamiquement lors de l'exécution d'un programme utilisateur ou d'un utilitaire.
Le groupe ALCn est associé au paramètre FILEn et au groupe ASGn du fichier considéré.
Dans ALCn, les paramètres SIZE et INCRSIZE ne sont à utiliser que si les valeurs
implicites ou existantes correspondantes ne conviennent pas. Le groupe ALCn n'est pas
applicable aux fichiers IDS/II.
Syntaxe :
EXEC_PR MYPROG
FILEi = nom-fichier-interne
ASGi = nom-fichier-externe
ALCi = ( [ SIZE = déc10 ]
(
[ INCRSIZE = déc5 ]
[ UNIT = { CYL | BLOCK | 100KB | RECORD } ]
[ CHECK = { bool | 0 } ]
)
Pour les fichiers implantés sur disques FSA, il est recommandé de spécifier UNIT =
BLOCK ou UNIT = 100KB.
Le groupe ALCn est décrit dans les volumes 1 et 2 du manuel de référence de l'utilisateur
IOF (21UJ et 22UJ/23UJ).
Le groupe ASGn fournit les informations suivantes (voir chapitre 5) :
•
•
•
nature du fichier : temporaire ($TEMPRY) ou permanent ;
nature du volume à utiliser : résidant ($RES) ou non ;
date de péremption du fichier (EXPDATE).
Le programme utilisateur fournit les informations suivantes :
•
•
•
•
fichier UFAS (en COBOL, ORGANIZATION IS UFF, UFF étant la valeur implicite) ;
longueur d'article ;
format fixe ou variable des articles (en COBOL, FLR ou VLR) ;
pour un fichier séquentiel indexé, KEYSIZE et KEYLOC ; en COBOL, la clause
RECORD KEY IS désigne la clé primaire.
Si les paramètres CISIZE et CIFSP sont omis dans le groupe DEFn (voir
précédemment), leurs valeurs implicites sont les suivantes :
•
•
CISIZE = 2048 octets
CIFSP = 0
47 F2 04UF Rev04
6-47
UFAS-EXTENDED - Guide de l'utilisateur
Les calculs d'espace sont les mêmes que ceux déjà décrits pour BUILD_FILE, mais UNIT
= CI ou RECORD n'étant pas autorisé dans le groupe ALCn, les résultats doivent être
exprimés :
en blocs,
en quanta de 100 Ko,
en cylindres,
en pistes.
L'équivalent JCL du groupe ALCn est l'ordre ALLOCATE.
Exemples
Commentaire
EXEC_PG MONPG
FILE1 = inf1
ASG1 = X$TEMPRY
ALC1 = (SIZE=10);
Exécution du programme MONPG avec
demande de création dynamique du fichier
temporaire X associé au nom de fichier
interne inf1. L'unité d'affectation est
implicitement le cylindre.
Exécution du programme APROG avec
demande de création dynamique du fichier
A. Les paramètres de réservation de place
sont implicites. Arrêt prématuré si le fichier
existe déjà.
EXEC_PG APROG
FILE1 = OUTFILE
ASG1 = A:VOL2:MS/D500
ALC1 = CHECK;
6-48
EXEC_PG MONPROG
FILE1 = DMFILE
ASG1=(ZABC:B012:MS/D500
EXPDATE = 30)
ALC1 = (SIZE = 10
INCRSIZE = 10);
Exécution du programme MONPROG avec
demande de création dynamique du fichier
ZABC. S'il existe déjà, il n'y aura pas d'arrêt
prématuré. Sa période de validité est de 30
jours. CATNOW n'étant pas spécifié, le
fichier ZABC ne sera pas catalogué.
EXEC_PG PG = LM24
LIB = P2.F3
FILE1 = F1
ASG1 = WKF$TEMPRY
ALC1 = (SIZE = 10);
Exécution du module chargeable LM24
rangé dans la bibliothèque cataloguée P2.F3
avec demande de création dynamique du
fichier temporaire WKF. WKF aura une taille
de 10 cylindres.
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.8.4
Groupe de paramètres DEFn
Le groupe de paramètres DEFn (équivalent JCL = DEFINE)
•
prévaut sur les paramètres fichier figurant dans le programme utilisateur, ou les
complète,
•
complète les attributs présents dans le label de fichier,
•
fournit certains paramètres d'exécution (notamment pour la gestion des tampons et la
journalisation).
Syntaxe du groupe de paramètres DEFn :
EXEC_PG MYPROG
FILEn = nom-fichier-interne
ASGn = nom-fichier-externe
DEFn = ( [ FILEFORM = { UFAS } ]
[ FILEORG = { SEQ | RELATIVE | INDEXED } ]
[ BLKSIZE = déc5 ]
[ RECSIZE = déc5 ]
[ RECFORM = { F | V | U | FB | VB } ]
[ NBBUF = déc4 ]
[ SYSOUT = bool ]
[ DATAFORM = { SARF | SSF | DOF | ASA } ]
[ ERROPT = { SKIP | ABORT | IGNORE | RETCODE } ]
[ BUFPOOL = nom4 ]
[ CISIZE = déc5 ]
[ BPB = déc3 ]
[ CKPTLIM = { NO | EOV | déc8 } ]
[ FPARAM = bool ]
[ COMPACT = bool ]
[ TRUNCSSF = bool ]
[ CONVERT = bool ]
[ BSN = bool ]
[ paramètres-spécifiques-fichier-disque ]
47 F2 04UF Rev04
6-49
UFAS-EXTENDED - Guide de l'utilisateur
Les paramètres spécifiques du fichier disque sont :
[ JOURNAL = { BEFORE | AFTER | NONE | BOTH } ]
[ COLLATE = { BCD | ASCII | EBCDIC } ]
[ WRCHECK = bool ]
[ READLOCK = { NORMAL | EXCL | STAT } ]
[ LOCKMARK = bool ]
[ ADDRFORM = { LRRR | LRRRR | TTRDD | SFRA } ]
[ KEYLOC = déc5 ]
[ KEYSIZE = déc3 ]
[ CIFSP = déc3 ]
[ LTRKSIZE = déc3 ]
Pour plus de détails sur le groupe de paramètres DEFn, voir chapitre 5 de ce manuel et le
manuel de référence de l'utilisateur IOF.
L'équivalent JCL de ce groupe de paramètres est l'ordre DEFINE.
6-50
47 F2 04UF Rev04
Fichiers disque - Création et modification
Exemples
Commentaire
EXEC_PG MONPROG
POOLSIZE = 100
SIZE = 150
FILE1 = ifn1
ASG1 = CORJ1
DEF1= (NBBUF = 20
FILEORG = INDEXED
BUFPOOL = B5)
Exécution du programme MONPROG avec
affectation du fichier CORJ1 associé au nom
de fichier interne ifn1. CORJ1 est un fichier
séquentiel indexé. 20 tampons lui sont
alloués dans le pool de tampons B5.
FILE2 = ifn2
ASG2 = CORJ2
DEF2 = (NBBUF = 20
FILEORG = INDEXED
BUFPOOL = B5)
Affectation du fichier CORJ2 associé au
nom de fichier interne ifn2. CORJ2 est un
fichier séquentiel indexé. 20 tampons lui
sont alloués dans le pool de tampons B5.
FILE3 = ifn3
ASG3 = CORJ3
DEF3 = (NBBUF = 20
FILEORG = INDEXED
BUFPOOL = B5)
Affectation du fichier CORJ3 associé au
nom de fichier interne ifn3. CORJ3 est un
fichier séquentiel indexé. 20 tampons lui
sont alloués dans le pool de tampons B5.
FILE4 = ifn4
ASG4 = CORJ4
DEF4 = (NBBUF = 20
FILEORG = INDEXED
BUFPOOL = B5)
Affectation du fichier CORJ4 associé au
nom de fichier interne ifn4. CORJ4 est un
fichier séquentiel indexé. 20 tampons lui
sont alloués dans le pool de tampons B5.
FILE5 = ifn5
ASG5 = CORJ5
DEF5 = (NBBUF = 20
FILEORG = INDEXED
BUFPOOL = B5)
Affectation du fichier CORJ5 associé au
nom de fichier interne ifn5. CORJ5 est un
fichier séquentiel indexé. 20 tampons lui
sont alloués dans le pool de tampons B5.
FILE6 = ifn6
ASG6 = CORJ6
DEF6 = (NBBUF = 20
FILEORG = INDEXED
BUFPOOL = B5)
Affectation du fichier CORJ6 associé au
nom de fichier interne ifn6. CORJ6 est un
fichier séquentiel indexé. 20 tampons lui
sont alloués dans le pool de tampons B5.
FILE7 = OUT
ASG7 = OUTF
ALC7 = (SIZE = 10
UNIT = CYL
INCRSIZE = 2);
OUTF sera créé dynamiquement avec une
taille de 10 cylindres et un incrément de 2
cylindres. OUTF ne fait pas partie du pool.
47 F2 04UF Rev04
6-51
UFAS-EXTENDED - Guide de l'utilisateur
6.8.5
Commande LIST_FILE
La commande LIST_FILE permet de lister, pour un fichier disque ou bande, des
informations telles que celles figurant dans son label, celles figurant au catalogue et celles
relatives à son utilisation. Ces informations sont regroupées sous six rubriques
différentes, chacune pouvant être demandée ou non.
Syntaxe de la commande LIST_FILE :
{ LIST_FILE }
{
}
{ LSF
}
{ FILE
}
{
} = ( description-fichier-entrée)
{ INFILE }
[ CONTROL = { bool | 0 } ]
[ ORG = { bool | 0 } ]
[ SPACE = { bool | 0 } ]
[ USAGE = { bool | 0 } ]
[ SUBFILES = { bool | 0 } ]
[ SAVINFO = { bool | 0 } ]
[ ALL = { bool | 0 } ]
[ CATONLY { bool | 0 } ]
[ SILENT = { bool | 0 } ]
[ PRTFILE = fichier78 ]
Pour une description complète des paramètres de la commande LIST_FILE, consulter le
manuel de référence de l'utilisateur IOF.
L'équivalent JCL de cette commande est l'ordre FILLIST.
6-52
47 F2 04UF Rev04
Fichiers disque - Création et modification
6.8.6
Commande LIST_FILE_SPACE
La commande LIST_FILE_SPACE permet de lister les informations relatives à l'espace
affecté à un fichier.
Syntaxe de la commande LIST_FILE_SPACE :
{ LIST_FILE_SPACE }
{
}
{ LSFSP
}
{ FILE
}
{
} = fichier78
{ INFILE }
[ SILENT = { bool | 0 } ]
[ PRTFILE = fichier78 ]
Pour une description complète des paramètres de la commande LIST_FILE_SPACE,
consulter le manuel de référence de l'utilisateur IOF.
L'équivalent JCL de cette commande est l'ordre FILLIST.
Exemples
Commentaire
LSFSP A.MONFIC;
Listage d'informations sur l'espace affecté au
fichier catalogué A.MONFIC.
LSFSP F3:X:MS/D500;
Listage d'informations sur l'espace affecté au
fichier non catalogué F3.
LSFSP A.MONFIC
PRTFILE = A.OUT;
Listage d'informations sur l'espace affecté au
fichier catalogué A.MONFIC.
Stockage du compte rendu dans le fichier
A.OUT et affichage des messages d'erreur au
terminal de l'utilisateur.
LSFSP A.MONFIC
SILENT
PRTFILE = A.OUT;
Listage d'informations sur l'espace affecté au
fichier catalogué A.MONFIC.
Les erreurs sont consignées dans le fichier
A.OUT, mais ne s'affichent pas au terminal de
l'utilisateur.
47 F2 04UF Rev04
6-53
UFAS-EXTENDED - Guide de l'utilisateur
6.8.7
Commande MODIFY_FILE
La commande MODIFY_FILE permet de modifier les caractéristiques d'un fichier. Pour
les fichiers implantés sur disques FSA, il est préférable de spécifier UNIT = BLOCK.
Syntaxe de la commande MODIFY_FILE :
{ MODIFY_FILE }
{
}
{ MDF
}
FILE = fichier78
[ NEWNAME = fichier44 ]
{ jjj
}
[ EXPDATE = { aa/jjj
} ]
{ aa/mm/jj }
[ UNIT = { BLOCK | CYL | TRACK } ]
[ INCRSIZE = déc5 ]
{
{
{
[ SHARE = {
{
{
{
NORMAL
}
ONEWRITE }
MONITOR }
} ]
DIR
}
FREE
}
UNSPEC
}
{
{
[ DUALSHR = {
{
{
NORMAL
}
ONEWRITE }
} ]
FREE
}
NONE
}
{
{
[ JOURNAL = {
{
{
NO
BEFORE
AFTER
BOTH
PRIVATE
}
}
} ]
}
}
[ SLOCK = { IO | IN | AP | IA | OFF } ]
[
[
[
[
[
[
[
[
[
[
[
[
UNLOCK = bool ]
SYMGEN = nom5 ]
CLEARMD = bool ]
FIRSTVOL = déc2 ]
LASTVOL = déc2 ]
VOLSET = nom6 ]
CLRVSET = bool ]
MOUNT = déc1 ]
SILENT = { bool | 0 } ]
FORCE = bool ]
IOC = { DEFAULT | BYPASS | FORCE } ]
LOGSUBF = bool ]
Pour une description complète des paramètres de la commande MODIFY_FILE,
consulter le manuel de référence de l'utilisateur IOF.
6-54
47 F2 04UF Rev04
Fichiers disque - Création et modification
L'équivalent JCL de cette commande est l'ordre FILMODIF.
Exemples
Commentaire
MDF A.BC
NEWNAME = A.XC
EXPDATE = 365;
Modification du nom et de la date de péremption
du fichier A.BC.
MDF PROJ.F3
SHARE = ONEWRITE
DUALSHR = NORMAL;
Modification des conditions de partage du fichier
PROJ.F3 à l'intérieur du système (SHARE) et
avec un système couplé (DUALSHR).
47 F2 04UF Rev04
6-55
UFAS-EXTENDED - Guide de l'utilisateur
6.8.8
Commande MODIFY_FILE_SPACE
La commande MODIFY_FILE_SPACE permet d'étendre l'espace affecté à un fichier.
Cette commande n'est pas utilisable pour les fichiers relatifs. Pour les fichiers implantés
sur disques FSA, il est préférable de spécifier UNIT = BLOCK ou UNIT = 100KB.
L'extension de fichier est traitée au chapitre 5. Pour l'extension dynamique, voir le
paragraphe 6.3.5.
Syntaxe de la commande MODIFY_FILE_SPACE :
{ MODIFY_FILE_SPACE }
{
}
{ MDFSP
}
NAME = fichier44
{ CAT
}
[ FILESTAT = { CAT{1|2|3|4|5} } ]
{ UNCAT
}
[ VOL = { volume24 | RESIDENT } ]
[ SPLITDVC = classe-appareils-fractionnement ]
- - - - - - - - - - - - - - - - - - - [ UNIT = { CYL | BLOCK | 100KB | TRACK | SECTOR } ]
[ SIZE = déc8 ]
[ SPLIT = ( critères-fractionnement ) ]
[ REPEAT = bool ]
[ SILENT = { bool | 0 } ]
[ MAXEXT = { 16 | déc2 } ]
6-56
47 F2 04UF Rev04
Fichiers disque - Création et modification
Pour une description complète des paramètres de la commande MODIFY_FILE_SPACE,
consulter le manuel de référence de l'utilisateur IOF.
L'équivalent JCL de la commande MODIFY_FILE_SPACE est l'ordre FILMODIF.
Exemples
Commentaire
MDFSP A.B.C. SIZE = 30;
Extension de 30 blocs pour le fichier catalogué
A.B.C dans le volume contenant la fin de fichier
(indiqué par le catalogue).
MDFSP F1 UNCAT 30
VOL2:MS/FSA;
Extension de 30 blocs dans le volume VOL2 sur
MS/FSA pour le fichier non catalogué F1. VOL2
doit contenir la fin de fichier.
MDFSP MF UNCAT
SPLIT = (VOL2:15
VOL3:10)
SPLITDVC = MS/D500;
Extension de 15 cylindres dans le volume VOL2
et de 10 cylindres dans le volume VOL3 pour le
fichier non catalogué MF. VOL2 doit contenir la
fin de fichier.
MDFSP P1.F4
Extension de 300 blocs (UNIT = BLOCK) pour le
FILESTAT = CAT SIZE = 300 fichier catalogué P1.F4. Si V4 contient la fin de
VOL = V4:MS/FSA;
fichier, l'extension aura lieu dans V4. Sinon, le
système demandera le montage du volume
contenant la fin de fichier (son nom, V9, est
extrait du catalogue), pour permettre l'accès aux
informations concernant l'organisation du fichier.
L'extension commencera dans V9 et ne
continuera dans V4 que si V9 ne comporte pas
assez d'espace disponible.
MDFSP NAME = MONFIC
FILESTAT = UNCAT
SPLIT = (V3:2 V6:4)
SPLITDVC = MS/D500;
Extension de 6 cylindres (2 dans le volume V3 et
4 dans le volume V6) pour le fichier non
catalogué MONFIC. V3 et V6 sont sur MS/D500.
V3 doit contenir la fin de fichier (avant
extension).
MDFSP NAME = MONFICHIER
SIZE = 2
FILESTAT = UNCAT;
Extension de 2 cylindres pour le fichier non
catalogué MONFICHIER (qui se trouve dans un
volume résidant). Son extension aura lieu dans
ce volume, puis, si nécessaire, dans un
plusieurs autres volumes résidants montés sur
des appareils de la même classe.
47 F2 04UF Rev04
6-57
UFAS-EXTENDED - Guide de l'utilisateur
6-58
47 F2 04UF Rev04
7. Fichiers bande (classique ou en cartouche)
- Format standard, types, labels et création
7.1
PLAN DU CHAPITRE
Les bandes en cartouche (CT) apparues en V5 présentent les mêmes caractéristiques
que les bandes magnétiques classiques (MT). Ce chapitre traite exclusivement du format
de bande standard GCOS 7/EBCDIC (format natif spécifié par le paramètre
LABEL = NATIVE en JCL).
• Types de fichiers bande.
• Labels.
• Attributs de fichier.
-
Longueur d'article (paramètre RECSIZE).
Longueur de bloc (paramètre BLKSIZE).
Format d'article (paramètre RECFORM).
• Choix de la longueur de bloc.
• Création des fichiers bande (classique ou en cartouche).
• Paramétrage des fichiers bande dans EXEC_PG.
• Longueur minimale de bloc.
47 F2 04UF Rev04
7-1
UFAS-EXTENDED - Guide de l'utilisateur
7.2
TYPES DE FICHIERS BANDE
Un fichier bande peut être permanent catalogué, permanent non catalogué ou temporaire.
Fichier bande
Permanent
Catalogué
Temporaire
Non catalogué
Figure 7-1. Types de fichiers bande
Un fichier bande peut être monovolume ou multivolume. L'utilisateur peut lui fixer une
date de péremption.
Les volumes bande peuvent être multifichiers. Ce sont soit des volumes privés (propres à
l'utilisateur), soit des volumes de manoeuvre (voir chapitre 5).
7-2
47 F2 04UF Rev04
Fichiers bande (classique ou en cartouche) - Format standard, types, labels et création
7.3
LABELS
Les labels sont constitués de blocs d'informations et sont placés avant et après les
données proprement dites. Les labels standard GCOS 7/EBCDIC contiennent des
indications sur le volume et le fichier, telles que :
• le nom du volume ;
• le numéro d'ordre du volume (pour les fichiers multivolumes) ; c'est le numéro relatif du
volume dans l'ensemble des volumes contenant le fichier ;
• la technique et la densité d'enregistrement ;
• le nom de fichier externe ;
• la longueur de bloc ;
(BLKSIZE =)
• la longueur d'article ;
(RECSIZE =)
• le format d'article.
(RECFORM =)
L'utilisateur peut extraire ces informations à l'aide de la commande LIST_FILE (équivalent
JCL = FILLIST).
Les labels de volume et de fichier bande sont décrits à l'annexe B.
47 F2 04UF Rev04
7-3
UFAS-EXTENDED - Guide de l'utilisateur
7.4
LES ATTRIBUTS DE FICHIER
Les attributs (longueur d'article, longueur de bloc et format d'article), lorsqu'il ne figurent
pas dans les labels du fichier, doivent être spécifiés dans le programme utilisateur ou
dans le groupe de paramètres DEFn (équivalent JCL = DEFINE).
7.4.1
Longueur d'article (paramètre RECSIZE)
La longueur d'article déclarée dans le programme COBOL prévaut sur celle pouvant être
spécifiée dans le GCL (ou le JCL). Il est donc inutile d'employer RECSIZE dans le groupe
de paramètres DEFn.
Pour les fichiers à articles de format variable, la longueur d'article déclarée doit être celle
de l'article le plus long.
7.4.2
Longueur de bloc (paramètre BLKSIZE)
La longueur de bloc déclarée dans le programme COBOL (lorsque la clause BLOCK
CONTAINS est présente) peut être recouverte par celle spécifiée au moyen du paramètre
BLKSIZE du groupe DEFn (voir paragraphe 6.8.4).
Remarque :
7.4.3
Lorsque RECFORM = V ou VB, la valeur de BLKSIZE doit être
égale ou supérieure à (RECSIZE + 4).
Format d'article (paramètre RECFORM)
Pour les fichiers bande, il existe cinq formats d'article :
• articles de longueur fixe non groupés en blocs
(RECFORM = F),
• articles de longueur fixe groupés en blocs
(RECFORM = FB),
• articles de longueur variable non groupés en blocs (RECFORM = V),
• articles de longueur variable groupés en blocs
(RECFORM = VB),
• articles de format indéterminé
(RECFORM = U).
Le format (fixe ou variable) spécifié par le paramètre RECFORM du groupe DEFn doit
correspondre à celui défini, explicitement ou implicitement, dans le programme COBOL.
RECFORM permet en outre d'indiquer si les articles doivent être groupés en blocs ou
non.
7-4
47 F2 04UF Rev04
Fichiers bande (classique ou en cartouche) - Format standard, types, labels et création
Dans le cas d'un programme FORTRAN, seuls les articles de longueur fixe (groupés ou
non) sont admis.
Exemple :
Soit un programme devant écrire des articles de 90 octets dans un fichier bande. Ces
articles de longueur fixe sont groupés à raison de 10 par bloc.
EXEC_PG
MONPROGRAMME
FILE1 = TFIXT
ASG1 = (CMQ.PC EXPDATE = 20)
DEF1 = (BLKSIZE = 900, RECFORM = FB);
La valeur du paramètre RECSIZE est fournie par le programme.
7.4.3.1
Articles de longueur fixe
Avec RECFORM = F ou FB, les articles sont tous de la même longueur. S'ils sont
groupés en blocs (plus d'un article par bloc), tous les blocs du fichier contiendront le
même nombre d'articles et seront donc tous de la même longueur, sauf le dernier du
fichier, qui sera plus court que les autres s'il n'y a pas assez d'articles pour le remplir.
B lo c
B lo c
B lo c
A rticle
A rticle
A rticle
A rticle s d e lo n g u e u r fix e n o n g ro u p é s e n b lo cs
B lo c
A rticle
B lo c
A rticle
A rticle
A rticle
A rtic le s d e lo n g u e u r fixe g ro u p é s e n b lo c s (2 a rtic le s p a r b lo c )
Figure 7-2. Exemples d'articles de formats F et FB
Remarque :
47 F2 04UF Rev04
Si RECFORM = F, BLKSIZE = RECSIZE ; si RECFORM = FB,
BLKSIZE = n*RECSIZE.
7-5
UFAS-EXTENDED - Guide de l'utilisateur
7.4.3.2
Articles de longueur variable
Avec RECFORM = V ou VB, les articles peuvent avoir des longueurs différentes, à
concurrence de la longueur maximale spécifiée par l'utilisateur. S'ils sont groupés en
blocs, la longueur maximale de bloc est également fixée par l'utilisateur. Ce maximum
doit être suffisant pour permettre aux blocs de contenir au moins un article de longueur
maximale. Les blocs regroupant des articles de longueur variable sont également de
longueur variable, ce qui permet d'occuper au mieux l'espace alloué au fichier.
A chaque article est ajouté un descripteur d'article (RDW - Record Descriptor Word) de
quatre octets par GCOS 7. Ce descripteur, créé et géré par le système, contient la
longueur de l'article.
A chaque bloc est ajouté un descripteur de bloc (BDW - Block Descriptor Word) de
quatre octets par GCOS 7. Ce descripteur, créé et géré par le système, contient la
longueur du bloc.
Les programmes utilisateur n'ont pas accès aux descripteurs d'articles et de blocs, et
n'ont pas à prendre en compte leur longueur.
La figure 7-3 montre une série d'articles de longueur variable. Soit un programme, qui
écrit les articles A, B, ... etc. La longueur maximale d'article est de 125 octets (article C).
5 0 o cte ts
3 0 o ctets
1 2 5 o c te ts
1 5 o ctets
A rticle
A
A rticle
B
A rtic le
C
A rticle
D
4 5 octe ts
A rticle
E
4 8 o ctets
A rticle
F
Figure 7-3. Exemple d'articles de format V
Les attributs du fichier sont donc les suivants :
• RECSIZE = 125
• BLKSIZE = 129
• RECFORM = V
RECSIZE = 125, car l'article le plus long du fichier a 125 octets.
BLKSIZE = 129 octets, car à la longueur maximale d'article (125 octets) s'ajoute la
longueur du descripteur d'article (4 octets).
RECFORM = V, car les articles du fichier sont de longueur variable et non groupés en
blocs.
La figure 7-4 montre comment les articles sont écrits dans le fichier.
7-6
47 F2 04UF Rev04
Fichiers bande (classique ou en cartouche) - Format standard, types, labels et création
5 8 o cte ts
BSN
BDW
RDW
4
4
A rtic le A
50
3 8 o cte ts
BSN
BDW
RDW
4
4
A rtic le B
30
13 3 o cte ts
BSN
BDW
RDW
4
4
A rtic le C
125
2 3 o cte ts
BSN
BDW
RDW
A rtic le D
4
4
15
5 3 o c te ts
BSN
BDW
RDW
A rtic le E
4
4
45
5 6 o cte ts
BSN
BDW
RDW
4
4
A rtic le F
48
Figure 7-4. Enregistrement des articles de format V
47 F2 04UF Rev04
7-7
UFAS-EXTENDED - Guide de l'utilisateur
Les numéros de bloc (BSN - Block Serial Number) sont créés et gérés par GCOS 7 (voir
paragraphe suivant).
Les six articles de la figure 7-3 sont écrits dans six blocs distincts contenant chacun un
descripteur de bloc (BDW) et un descripteur d'article (RDW). La longueur du plus grand
bloc (celui contenant l'article C) est de 133 octets, à savoir BLKSIZE + 4, puisque
BLKSIZE ne prend pas en compte le descripteur de bloc (BDW), de la même manière
que RECSIZE ne prend pas en compte le descripteur d'article (RDW).
S'il souhaite grouper en blocs ses articles de longueur variable, l'utilisateur doit choisir le
format VB.
Dans ce cas, les attributs du fichier sont les suivants :
• RECSIZE = 125
• BLKSIZE = 129
• RECFORM = VB
La figure 7-5. montre comment les articles sont écrits dans le fichier.
9 2 o cte ts
BSN
BDW
RDW
4
4
A rtic le A
50
RDW
A rtic le B
4
30
1 3 3 o cte ts
BSN
BDW
RDW
4
4
A rtic le C
125
1 2 4 o cte ts
BSN
BDW
RDW
A rtic le D
4
4
15
RDW
4
A rtic le E
RDW
A rtic le F
45
4
48
Figure 7-5. Enregistrement des articles de format VB
Les six articles de la figure 7-3 sont répartis dans trois blocs. Ils sont groupés à
concurrence de la longueur maximale de bloc augmentée du descripteur de bloc (BDW),
à savoir BLKSIZE + 4.
Les blocs ne contiennent pas le même nombre d'articles et sont eux-mêmes de longueur
variable.
7-8
47 F2 04UF Rev04
Fichiers bande (classique ou en cartouche) - Format standard, types, labels et création
7.5
CHOIX DE LA LONGUEUR DE BLOC
Le choix de la longueur de bloc dépend des facteurs suivants :
• blocs de longueur fixe ou variable,
• espace mémoire disponible pour les tampons.
La valeur de BLKSIZE est fonction de RECFORM et de RECSIZE :
• Si RECFORM = F, BLKSIZE doit être égal à RECSIZE.
• Si RECFORM = FB, BLKSIZE doit être un multiple de RECSIZE.
• Si RECFORM = V, BLKSIZE doit être égal à RECSIZE + 4.
• Si RECFORM = VB, BLKSIZE doit être un multiple de (RECSIZE + 4).
• Si RECFORM = U, BLKSIZE doit être égal à la longueur maximale d'article.
Chaque bloc étant séparé du bloc suivant par un espace interbloc (arrêt/marche) pour
absorber les mouvements de la bande, la capacité de stockage est directement
proportionnelle à la valeur de BLKSIZE.
La capacité exacte d'une bande ne peut être calculée que pour les fichiers d'articles de
longueur fixe, groupés ou non. Dans le cas des fichiers à articles de longueur variable,
groupés ou non, l'utilisateur ne peut calculer qu'une capacité approximative en prenant
une longueur moyenne de bloc.
Pour le calcul, les éléments suivants doivent être pris en compte :
• densité d'enregistrement,
• longueur de l'espace interbloc,
• longueur de la bande.
Ces valeurs figurent dans les guides opérateur correspondant à chaque type de dérouleur
de bande (voir Préface pour les références).
La formule générale pour le calcul de la capacité d'une bobine est la suivante :
Nb blocs=
(Longueur bande - sections début et fin)
(Nb octets par bloc/Densité) + Long. espace interbloc
Dans le calcul, l'utilisateur doit également prendre en compte les numéros de bloc (BSN),
d'une longueur de 4 octets. GCOS 7 écrit implicitement un BSN pour chaque bloc et
suppose la présence de BSN dans les fichiers d'entrée. Si, en sortie, un fichier ne doit pas
avoir de numéros de bloc, il faut donner la valeur 0 au paramètre BSN du groupe DEFn.
47 F2 04UF Rev04
7-9
UFAS-EXTENDED - Guide de l'utilisateur
7.6
CREATION DES FICHIERS BANDE (CLASSIQUE OU EN CARTOUCHE)
Avant de pouvoir accueillir des fichiers, les volumes bande doivent faire l'objet d'une
préparation.
Cette opération, qui se réduit à une simple écriture des labels, s'effectue au moyen d'une
des commandes GCL suivantes :
PREPARE_TAPE (PRPTP)
PREPARE_VOLUME (PRPV) en interactif uniquement.
Ces deux commandes sont décrites dans le manuel de référence de l'utilisateur IOF .
L'équivalent JCL de ces deux commandes est l'ordre VOLPREP, décrit dans le manuel
traitant des utilitaires de gestion de données.
La création d'un fichier bande catalogué s'effectue au moyen de la commande GCL
CREATE_MT_FILE (CRMTF) ; son équivalent JCL est l'ordre PREALLOC.
La création d'un fichier bande non catalogué s'effectue au moyen des groupes de
paramètres GCL ASGn et DEFn (voir plus loin) ; leurs équivalents JCL sont
respectivement les ordres ASSIGN et DEFINE.
L'ordre PREALLOC est décrit dans le manuel traitant des utilitaires de gestion de
données.
Les ordres ASSIGN et DEFINE sont décrits dans le manuel de référence JCL.
7-10
47 F2 04UF Rev04
Fichiers bande (classique ou en cartouche) - Format standard, types, labels et création
Syntaxe de la commande CREATE_MT_FILE :
{
{
{
{
{
{
CREATE_TAPE_FILE
CREATE_MT_FILE
CREATE_CT_FILE
CRTPF
CRMTF
CRCTF
}
}
}
}
}
}
FILE = fichier-78
[ BLKSIZE = déc-5 ]
[ RECSIZE = déc-5 ]
[ WORKMT = { bool | 0 } ]
[ RECFORM = { FB | F | VB | V | U } ]
[ COMPACT = { bool | 0 } ]
{ jjj
}
[ EXPDATE = { aa/jjj
} ]
{ aa/mm/jj }
[ NBSN = { bool | 0 } ]
[ MOUNT = { 1 | déc-1 } ]
[ ANSI = { bool | 0 } ]
[ END = UNLOAD ]
[ SILENT = { bool | 0 } ]
- - - - - - - - - - - - - - - - - - - [ REPEAT = { bool |0 } ]
[ CATALOG = { 1 | 2 | 3 | 4 | 5 } ]
Pour une description complète des paramètres de la commande CREATE_MT_FILE,
consulter le volume 2 du manuel de référence de l'utilisateur IOF.
47 F2 04UF Rev04
7-11
UFAS-EXTENDED - Guide de l'utilisateur
Pour plus de précisions sur les labels de volume et de fichier, se reporter à l'annexe B.
7-12
Exemples
Commentaire
CRTPF F.TRA:V2:MT/T9
BLKSIZE = 4000
RECSIZE = 1000
ANSI;
Création d'un fichier bande de format
ANSI.
CRMTF F.SRC:VN:VT/T9
BLKSIZE = 2000
RECSIZE = 2000
RECFORM = F
COMPACT
EXPDATE = 10/08/95;
Création d'un fichier bande UFASEXTENDED, avec date de péremption et
tassement des caractères espace.
CRCTF X.WK
WORKMT;
Création du fichier bande X.WK dans un
volume de manoeuvre.
CRMTF
P1.FI7:BANDE1:MT/T9/D1600
BLKSIZE = 4096
RECSIZE = 128
EXPDATE = 100;
Création du fichier bande catalogué P1.FI7
dans le volume BANDE1 (9 pistes,
1600 bpi).
La longueur de bloc est de 4096 octets, la
longueur d'article de 128 octets et le fichier
reste valide 100 jours à partir de la date du
jour. Implicitement, le format des articles
est FB (fixe groupé).
47 F2 04UF Rev04
Fichiers bande (classique ou en cartouche) - Format standard, types, labels et création
7.7
PARAMETRAGE DES FICHIERS BANDE DANS EXEC_PG
Pour les fichiers bande standard (GCOS 7/EBCDIC), deux cas sont à considérer.
• S'il s'agit d'un fichier d'entrée :
-
l'affectation au traitement doit s'effectuer au moyen du groupe de paramètres
ASGn (voir chapitre 5) ; l'équivalent JCL est l'ordre ASSIGN ;
-
la longueur de bloc figurant dans le label prévaut sur celle spécifiée dans le
programme utilisateur ;
-
la longueur et le format d'article figurant dans le label sont comparés aux valeurs
correspondantes du programme utilisateur pour assurer la cohérence ;
-
l'organisation du fichier doit être déclarée séquentielle dans le programme
utilisateur.
A noter qu'il n'est pas nécessaire de spécifier le format du fichier (UFF ou LEVEL-64)
dans le programme COBOL puisque aucune distinction n'est faite pour les fichiers
bande.
• S'il s'agit d'un fichier de sortie :
-
47 F2 04UF Rev04
le système ne dispose pas d'informations label sur les attributs du fichier ; ceux-ci
doivent donc être définis dans le programme utilisateur et/ou dans le groupe de
paramètres DEFn (voir ci-dessous la syntaxe de ce paramètre, appliqué au
traitement des fichiers de sortie sur bande).
7-13
UFAS-EXTENDED - Guide de l'utilisateur
Syntaxe :
(
[ FILEFORM = { UFAS | ANSI | NSTD } ]
[ FILEORG = { SEQ | RELATIVE | INDEXED } ]
[ BLKSIZE = déc-5 ]
[ RECSIZE = déc-5 ]
[ RECFORM = { F | V | U | FB | VB | FS | FBS } ]
[ NBBUF = déc-4 ]
[ SYSOUT = bool ]
[ DATAFORM = { SARF | SSF | DOF | ASA } ]
[ ERROPT = { SKIP | ABORT | IGNORE | RETCODE } ]
[ BUFPOOL = nom-4 ]
[ CISIZE = déc-5 ]
[ BPB = déc-3 ]
[ CKPTLIM = { NO | EOV | déc-8 } ]
[ FPARAM = bool ]
[ COMPACT = bool ]
[ TRUNCSSF = bool ]
[ CONVERT = bool ]
[ BSN = bool ]
[ paramètres-fichiers-bande ]
)
où les paramètres propres aux fichiers bande sont :
[ FUNCMASK = hexa-8 ]
[ DATACODE = { BCD | ASCII | EBCDIC } ]
[ BLKOFF = déc-3 ]
Remarque :
7-14
Seuls les paramètres utilisables avec les fichiers bande sont
donnés ci-dessus. Pour une description complète du groupe DEFn,
se reporter au manuel de référence de l'utilisateur IOF. L'ordre JCL
correspondant, DEFINE, est traité dans le manuel de référence
JCL.
47 F2 04UF Rev04
Fichiers bande (classique ou en cartouche) - Format standard, types, labels et création
7.8
LONGUEUR MINIMALE DE BLOC
La longueur minimale de bloc est de 18 octets.
Le bloc inclut le numéro de bloc (BSN), s'il est présent, et les descripteurs de bloc (BDW)
et d'article (RDW), si RECFORM = V.
Avec cette valeur minimale de bloc, la longueur maximale d'article varie comme suit :
• 18 octets pour un fichier à articles de longueur fixe sans numéros de bloc ;
• 14 octets pour un fichier à articles de longueur fixe avec numéros de bloc ;
• 10 octets pour un fichier à articles de longueur variable sans numéros de bloc ;
•
7.9
6 octets pour un fichier à articles de longueur variable avec numéros de bloc.
DONNÉES COMPRESSÉES SUR BANDE
Le mode d'accès séquentiel permet de comprimer des données sur bande par la
suppression des espaces répétitifs. Vous devez spécifier l'attribut COMPACT, dans
l'ordre DEFINE, lors de la création du fichier bande.
Les restrictions suivantes s'appliquent au fichier compressé :
• la taille de bloc spécifiée par l'utilisateur doit être au moins égale à la longueur d'article
maximale + 4 octets pour l'en-tête + 1 caractère de contrôle pour chaque bloc de
données de 128 caractères ;
• la longueur d'article avant et après la compression ne doit pas dépasser 32 Koctets - 1
(auquel cas la compression échoue et renvoie le code retour TSEQL 24, RECSZERR) ;
• seul le format d'article de type longueur variable est valide.
47 F2 04UF Rev04
7-15
UFAS-EXTENDED - Guide de l'utilisateur
7-16
47 F2 04UF Rev04
8. Fichiers disque et bande - Manipulation et
maintenance
8.1
PLAN DU CHAPITRE
• Tri et fusion (SORT_FILE ET MERGE_FILE).
• Chargement (LOAD_FILE).
-
Passage du format UFAS au format UFAS-EXTENDED.
• Manipulation des fichiers et des données :
-
Passage du format VBO au format FBO.
-
Le langage DSL.
• Utilitaires de gestion de fichiers.
• Utilitaires de gestion de volumes.
47 F2 04UF Rev04
8-1
UFAS-EXTENDED - Guide de l'utilisateur
8.2
TRI ET FUSION (SORT_FILE ET MERGE_FILE)
Le tri et la fusion des fichiers disque et bande UFAS-EXTENDED s'effectuent
respectivement au moyen des commandes SORT_FILE et MERGE_FILE (voir manuel de
référence de l'utilisateur IOF). Les équivalents JCL sont les ordres SORT et MERGE,
décrits dans le guide utilisateur de tri et fusion.
8-2
47 F2 04UF Rev04
Fichiers disque et bande - Manipulation et maintenance
8.3
CHARGEMENT (LOAD_FILE)
La commande LOAD_FILE permet de charger ou de réorganiser un fichier disque ou
bande. Le fichier d'entrée et le fichier de sortie peuvent être indifféremment de format
UFAS-EXTENDED ou UFAS.
Syntaxe de la commande LOAD_FILE :
{ LOAD_FILE }
{
}
{ LDF
}
{ FILE
}
{
} = ( description-fichier-sortie )
{ OUTFILE }
INFILE = ( description-fichier-entrée )
{
{
[ DYNALC = {
{
{
CAT
}
CAT{1|2|3|4|5} }
} ]
UNCAT
}
TEMPRY
}
{ ALLOCATE }
[ {
} = ( param-affectation-place-fichier-sortie ) ]
{ OUTALC
}
{ DEF
}
[ {
} = ( param-définition-fichier-sortie ) ]
{ OUTDEF }
[ INDEF = ( param-définition-fichier-entrée ) ]
{ DSLFILE }
[ {
} = { fichier-78 | ::TN } ]
{ COMFILE }
[ START = déc-8 ]
[ INCR = déc-8 ]
[ HALT = déc-8 ]
[ APPEND = { bool | 0 } ]
[ ORDER = bool ]
[ PADCHAR = { car-1 | hexa-2 } ]
[ KEYLOC = déc-5 ]
[ TAPEND = { 1 | déc-3 } ]
47 F2 04UF Rev04
8-3
UFAS-EXTENDED - Guide de l'utilisateur
[ SILENT = { bool | 0 } ]
- - - - - - - - - - - - - - - - - - - [ PRINT = { ALPHA | HEXA | BOTH } ]
[ PRTFILE = fichier-78 ]
[ TITLE = car-114 ]
[ REPEAT = bool ]
[ FMEDIA = { bool | 0 ]
[ IMPORT =
bool ]
[ EXPORT =
bool ]
Pour une description complète des paramètres de la commande LOAD_FILE, consulter le
manuel de référence de l'utilisateur IOF.
L'équivalent JCL de la commande LOAD_FILE est l'ordre CREATE.
8-4
Exemples
Commentaire
LDF (MONFIC ACCESS = SPWRITE
EXPDATE = 94/07/31
INFILE = FRAN
DYNALC = CAT;
Chargement du fichier MONFIC après
création et catalogage avec date de
péremption et droit d'accès exclusif. Le
fichier d'entrée est FRAN.
LDF FILE = P1.F1
INFILE = PERSO:V1:MS/D500;
Chargement du fichier catalogué P1.F1 à
partir du fichier non catalogué PERSO se
trouvant dans le volume V1 sur MS/D500.
LDF FILE = P1.F1:V2:MS/D500
INFILE = PERSO:V1:MS/D500
DYNALC = CAT
ALLOCATE = (SIZE = 5
UNIT = CYL);
Comme dans l'exemple précédent, mais
P1.F1 doit être créé dynamiquement dans
le volume V2 sur MS/D500. La taille de
P1.F1 sera de 5 cylindres.
LDF FIC2:V3:MS/D500
INFILE = PERSO1:V7:MS/D500;
Chargement du fichier non catalogué FIC2
se trouvant dans le volume V3 sur
MS/D500, à partir du fichier non catalogué
PERSO1 implanté dans le volume V7 sur
MS/D500.
47 F2 04UF Rev04
Fichiers disque et bande - Manipulation et maintenance
8.3.1
Passage du format UFAS au format UFAS-EXTENDED
La commande LOAD_FILE (équivalent JCL = CREATE) peut être utilisée pour convertir
un fichier UFAS au format UFAS-EXTENDED.
Pour ce faire, procéder comme suit :
1)
Créer un nouveau fichier UFAS-EXTENDED à l'aide de la commande BUILD_FILE.
2)
Transférer le contenu du fichier UFAS dans le fichier UFAS-EXTENDED à l'aide de
la commande LOAD_FILE.
En utilisant le paramètre DYNALC dans la commande LOAD_FILE, il est possible de
supprimer l'étape 1.
3)
Supprimer le fichier UFAS.
4)
Modifier le nom du fichier UFAS-EXTENDED en le remplaçant par celui de l'ancien
fichier UFAS. Pour ce faire, utiliser la commande MODIFY_FILE avec le paramètre
NEWNAME (voir tableau 8-1).
Remarque :
Si la conversion doit porter sur plusieurs fichiers, employer la
commande LOAD_FILESET avec la convention astérisque pour
désigner chacun des deux ensembles d'entrée et de sortie.
Les exemples suivants illustrent la conversion d'ensembles de fichiers UFAS en
ensembles de fichiers UFAS-EXTENDED au moyen de commandes LOAD_FILESET
(LDFST). La convention astérisque permet de désigner ces ensembles, et le paramètre
DYNALC demande à chaque fois la création dynamique des fichiers de l'ensemble de
sortie.
Exemples
Commentaire
LDFST (DUP* ACCESS = SPWRITE
EXPDATE = 365)
INSET = ORG*
DYNALC = CAT;
Chargement de l'ensemble de fichiers
DUP* à partir de l'ensemble de fichiers
ORG*. Les fichiers de l'ensemble DUP*
seront créés dynamiquement et catalogués
avec date de péremption et droit d'accès
exclusif.
LDFST P1.**:V1:MS/D500
INSET = P2.**
DYNALC = CAT;
Chargement de l'ensemble de fichiers
P1.** à partir de l'ensemble de fichiers
P2.**. Les fichiers de l'ensemble P1.**
seront créés dynamiquement dans le
volume V1 et catalogués.
LDFST FILESET = **:V2:MS/D500
INSET = **:V3:MS/D500$UNCAT
DYNALC = UNCAT;
Les données de tous les fichiers non
catalogués de V3 seront chargées dans les
fichiers correspondants de V2. L'affectation
de place dans V2 sera dynamique. V3 ne
contient pas de fichiers multivolumes.
47 F2 04UF Rev04
8-5
UFAS-EXTENDED - Guide de l'utilisateur
8.3.2
Passage du format VBO au format FBO
Un outil de migration accessible à partir d'IOF permet à l'utilisateur de convertir ses
fichiers du format VBO au format FBO. Cet outil est le processeur
MAINTAIN_MIGRATION (MNMIG). Il ne peut s'utiliser qu'en mode interactif et est réservé
au projet SYSADMIN. Il permet de générer le JCL nécessaire à la migration directe ou
indirecte des fichiers vers un volume FBO cible.
Pour plus de détails, se reporter au guide de l'utilisateur relatif à la migration de fichiers.
8-6
47 F2 04UF Rev04
Fichiers disque et bande - Manipulation et maintenance
8.4
MANIPULATION DES DONNEES : LE LANGAGE DSL
Le langage DSL est utilisable dans le cadre des commandes SORT_FILE (SORT en
JCL), MERGE_FILE (MERGE en JCL), COMPARE_FILE et COMPARE_FILESET
(COMPARE en JCL), LOAD_FILE et LOAD_FILESET (CREATE en JCL), PRINT_FILE et
PRINT_FILESET (PRINT en JCL). Il permet les opérations suivantes :
• sélection/omission de certains articles du fichier d'entrée ;
• réorganisation des zones de données à l'intérieur de chaque article de sortie ;
• modification de la longueur des articles en sortie ;
• spécification des zones-clés, pour SORT_FILE/MERGE_FILE ;
• cumul de zones spécifiées, dans les articles ayant la même valeur de clé, pour
SORT_FILE/MERGE_FILE.
Pour plus de précisions sur le langage DSL dans le cadre de SORT_FILE, consulter le
guide utilisateur de tri et fusion (08UF).
Pour plus de précisions sur le langage DSL dans le cadre de COMPARE_FILE,
LOAD_FILE et PRINT_FILE, consulter le manuel traitant des utilitaires de gestion de
données.
47 F2 04UF Rev04
8-7
UFAS-EXTENDED - Guide de l'utilisateur
8.5
UTILITAIRES DE GESTION DE FICHIERS
Le tableau suivant donne la liste des utilitaires de gestion des fichiers disque et bande
UFAS-EXTENDED.
Tableau 8-1. Utilitaires de niveau de fichier (1/3)
8-8
Commande GCL
Fonction
BUILD_FILE (BF)
Crée un fichier disque.
CLEAR_FILE (CLRF)
Efface un fichier (supprime logiquement son contenu) sans
libérer la place qu'il occupe.
COMPARE_FILE (CMPF)
Compare logiquement le contenu de deux fichiers triés.
COMPARE_FILESET
(CMPFST)
Compare logiquement le contenu de chaque fichier trié
d'un ensemble au contenu d'un fichier de référence trié.
COPY_FILE (CPF)
Copie le contenu d'un fichier dans un autre fichier de type
identique.
COPY_FILESET (CPFST)
Copie le contenu d'un ensemble de fichiers dans un autre
fichier de type identique.
CREATE_CT_FILE
(CRCTF)
Crée un fichier sur bande en cartouche.
CREATE_MT_FILE
(CRMTF)
Crée un fichier catalogué sur bande classique.
CREATE_FILE (CRF)
Crée un fichier disque, en utilisant éventuellement comme
modèle un fichier existant. Peut servir à simuler une
réservation de place pour un fichier.
CREATE_FILESET
(CRFST)
Crée un ensemble de fichiers disque, en utilisant
éventuellement comme modèle un fichier ou un ensemble
de fichiers existant.
DELETE_FILE (DLF)
Supprime un fichier disque ou un fichier bande catalogué,
en libérant la place qu'il occupe (suppression de sa
rubrique catalogue).
DELETE_FILESET
(DLFST)
Supprime un ensemble de fichiers disque, ou de fichiers
bande catalogués, en libérant la place qu'ils occupent et
met à jour le catalogue en conséquence.
EXPAND_FILESET
(EXPFST)
Liste les noms des fichiers constituant le ou les ensembles
spécifiés.
LIST_FILE (LSF)
Liste, pour un fichier disque ou bande, des informations
telles que celles enregistrées dans son label, celles figurant
au catalogue et celles relatives à son utilisation.
47 F2 04UF Rev04
Fichiers disque et bande - Manipulation et maintenance
Tableau 8-1. Utilitaires de niveau de fichier (2/3)
Commande GCL
Fonction
LIST_FILESET (LSFST)
Liste des informations relatives aux fichiers d'un ensemble
de fichiers.
LIST_FILE_SPACE
(LSFSP)
Liste l'espace affecté à un fichier.
LOAD_FILE (LDF)
Charge un fichier UFAS-EXTENDED. Copie une aire
IDS/II.
LOAD_FILESET (LDFST)
Charge un ensemble de fichiers UFAS-EXTENDED. Copie
un ensemble de fichiers IDS/II.
MAINTAIN_FILE (MNF)
Vide les enregistrements physiques d'un fichier disque ou
bande. Dans le cas d'un fichier disque, permet de modifier
des données et/ou des informations de gestion dans les
enregistrements physiques.
MERGE_FILE (MRGF)
Lance l'utilitaire MERGE, qui permet de fusionner de deux
à huit fichiers triés, soit dans un nouveau fichier, soit dans
un fichier existant.
MODIFY_FILE (MDF)
Modifie les caractéristiques d'un fichier.
MODIFY_FILE_SPACE
(MDFSP)
Etend l'espace affecté à un fichier.
MODIFY_FILE_STATUS
(MDFSTAT)
Modifie le statut d'un fichier (catalogué ou non catalogué).
PRINT_FILE (PRF)
Imprime les articles d'un fichier.
PRINT_FILESET (PRFST) Imprime les articles d'un ensemble de fichiers.
RESTORE_FILE (RSTF)
Restaure le contenu d'un fichier disque à partir d'un fichier
bande ou d'un fichier disque séquentiel UFAS-EXTENDED
dans lequel il avait été précédemment sauvegardé à l'aide
d'une commande SAVE_FILE ou SAVE_FILESET.
Restaure également le contenu d'un fichier disque
monovolume à partir d'un fichier bande créé
précédemment au moyen d'une commande SAVE_DISK.
RESTORE_FILESET
(RSTFST)
Restaure le contenu d'un ensemble de fichiers disque à
partir soit d'un fichier bande, soit d'un fichier disque
séquentiel UFAS-EXTENDED, soit d'un ensemble de
fichiers dans lequel il avait été précédemment sauvegardé
à l'aide d'une commande SAVE_FILESET.
Restaure également le contenu d'un ensemble de fichiers
disque monovolumes à partir d'un fichier bande
précédemment créé au moyen d'une commande
SAVE_DISK.
47 F2 04UF Rev04
8-9
UFAS-EXTENDED - Guide de l'utilisateur
Tableau 8-1. Utilitaires de niveau de fichier (3/3)
Commande GCL
Fonction
SAVE_FILE (SVF)
Sauvegarde le contenu d'un fichier disque dans un fichier
séquentiel UFAS_EXTENDED ou dans un fichier bande.
SAVE_FILESET (SVFST)
Sauvegarde le contenu d'un ensemble de fichiers disque
dans un fichier/ensemble de fichiers disque séquentiel
UFAS_EXTENDED ou dans un fichier/ensemble de fichiers
bande.
SORT_FILE
(SRTF/SORT)
Lance l'utilitaire SORT, qui permet de trier le contenu d'un
ou de plusieurs fichiers pour constituer un nouveau fichier
ou l'intégrer à un fichier existant.
SORT_INDEX (SRTIDX)
Trie et charge les index secondaires d'un fichier séquentiel
indexé UFAS-EXTENDED.
Pour plus de précisions sur les commandes BUILD_FILE et CREATE_FILE, se reporter
au chapitre 6 de ce manuel. Pour les autres commandes, consulter le volume 2 du
manuel de référence de l'utilisateur IOF (22UJ/23UJ).
8-10
47 F2 04UF Rev04
Fichiers disque et bande - Manipulation et maintenance
8.6
UTILITAIRES DE GESTION DE VOLUMES
Le tableau suivant donne la liste des utilitaires de gestion des volumes disque et bande.
Tableau 8-2. Utilitaires de niveau volume
Commande GCL
Fonction
CLEAR_VOLUME (CLRV)
Efface le contenu d'un volume.
LIST_VOLUME (LSV)
Liste des informations relatives à un volume disque ou
bande natif et aux fichiers qu'il contient.
MAINTAIN_VOLUME
(MNV)
Vide les enregistrements physiques d'un volume disque ou
bande. Dans le cas d'un disque, permet de modifier des
données et/ou des informations de gestion dans les
enregistrements physiques.
MODIFY_DISK (MDD)
Permet d'effectuer un contrôle de surface et une mise au
format sur un volume disque. Permet également de
déclarer des pistes défectueuses ou réutilisables.
PREPARE_DISK (PRPD)
Effectue la préparation d'un volume disque : écriture des
labels, mise au format de pistes, contrôle de surface. Les
mêmes opérations peuvent être effectuées en mode
interactif à l'aide de la commande PREPARE_VOLUME.
PREPARE_TAPE
(PRPTP)
Effectue la préparation d'un volume bande, consistant en
une simple écriture des labels. Cette opération peut être
effectuée en mode interactif à l'aide de la commande
PREPARE_VOLUME.
PREPARE_VOLUME
(PRPV)
Effectue la préparation d'un volume disque ou bande. La
préparation consiste en l'écriture des labels. Pour les
disques, elle comporte également le formatage, le contrôle
de surface et la déclaration des pistes défectueuses. Cette
commande n'est utilisable qu'en mode interactif. Pour
préparer un volume disque à partir d'un fichier de
commandes, utiliser PREPARE_DISK. Pour préparer un
volume bande à partir d'un fichier de commandes, utiliser
PREPARE_TAPE.
RESTORE_DISK (RSTD)
Restaure un volume disque natif à partir d'un fichier bande
natif créé par une commande SAVE_DISK
SAVE_DISK (SVD)
Sauvegarde un volume disque natif dans un fichier bande
natif.
Pour plus de précisions sur ces commandes, consulter le manuel de référence de
l'utilisateur IOF.
47 F2 04UF Rev04
8-11
UFAS-EXTENDED - Guide de l'utilisateur
8.7
VISIBILITÉ DE L'ESPACE PHYSIQUE ET LOGIQUE AFFECTÉ AUX
FICHIERS DISQUE UFAS
Dans l'espace adresses 1 d'un fichier disque UFAS, sont précisés le nombre de CI
affectés et le nombre de CI (affectés) formatés.
Cette information apparaît dans la liste USAGE de LIST_FILE[SET] ou de LIST_VOLUME
(équivalents JCL : FILLIST ou VOLIST), si l'option USAGE est spécifiée.
A la création d'un fichier disque UFAS, les fragments (extents) physiques (répertoriés par
l'option SPACE) correspondent étroitement aux informations logiques (répertoriées par
l'option USAGE).
Lorsqu'un fichier disque UFAS fait l'objet d'une extension via la commande GCL
MODIFY_FILE_SPACE (ou PREALLOC avec l'option EXTEND), l'espace adresse 1 ne
peut être immédiatement mis à niveau. Les données de type USAGE restent donc
également inchangées (maximum, taux d'accès, nombre de CI affectés par espace
adresses). En revanche, les informations de type SPACE fournissent tous les fragments
physiques.
L'espace physique supplémentaire non encore décrit logiquement dans l'espace
adresses 1 fera l'objet d'une description dès que l'espace actuellement décrit logiquement
dans l'espace adresses 1 deviendra insuffisant dans au moins un autre espace adresses,
lors de l'ajout ou de la modification d'un article sous contrôle des méthodes d'accès
UFAS.
La restauration ou la copie d'un fichier d'entrée vers un fichier de sortie plus grand que
nécessaire provoque le même résultat. L'espace adresses de sortie 1 étant une simple
copie de l'espace adresses d'entrée 1, il ne prend pas en compte l'espace de sortie en
trop. En revanche, si la taille du fichier de sortie est inférieure à celle du fichier d'entrée,
soit le fichier de sortie est étendu automatiquement ou, si c'est impossible, l'opération est
abandonnée.
Cet impact peut se propager si des fichiers de ce type sont sauvegardés/restaurés ou
dupliqués vers d'autres fichiers, existants ou non.
8-12
47 F2 04UF Rev04
A. Fichiers relatifs - Randomisation
A.1
TECHNIQUES DE RANDOMISATION
Comme indiqué au chapitre 3, un fichier relatif est une suite de positions d'article
identifiées chacune par une adresse relative appelée numéro relatif d'article (RRN). Les
numéros relatifs d'articles peuvent s'obtenir en appliquant un algorithme de randomisation
aux valeurs de clés. Après randomisation, les numéros relatifs d'articles sont convertis en
adresses disque par le système.
Les différentes techniques de randomisation visent à obtenir une distribution égale des
articles dans l'espace disponible pour le fichier. Suivant la technique employée, le taux
d'occupation de l'espace disque peut atteindre 90 %. Toutefois, plus ce taux est élevé,
plus le nombre de synonymes (clés générant la même adresse relative) risque d'être
important, ce qui influera sur les temps d'accès. Le choix de la technique à adopter doit
donc assurer un équilibre correct entre le taux d'occupation et le nombre de synonymes.
Les techniques de randomisation décrites ici sont les suivantes :
• division par un nombre premier,
• élévation au carré, pliage et extraction,
• changement de base de numérotation,
• analyse des fréquences.
Pour choisir l'une ou l'autre de ces techniques, l'utilisateur doit prendre en compte les
critères suivants :
• taux d'occupation de l'espace disque,
• fréquence et distribution des synonymes,
• temps de traitement requis pour la randomisation,
• distribution uniforme des numéros relatifs d'article à l'intérieur du fichier.
47 F2 04UF Rev04
A-1
UFAS-EXTENDED - Guide de l'utilisateur
A.2
DIVISION PAR UN NOMBRE PREMIER
La division par un nombre premier constitue la méthode la plus largement utilisée pour la
conversion des valeurs de clé en adresses relatives. Un nombre premier est un nombre
divisible uniquement par 1 ou par lui-même. Le nombre à utiliser est le nombre premier
immédiatement inférieur au nombre total de positions d'articles possibles du fichier. Plus
le nombre premier est grand, moins il y aura de synonymes.
Tableau A-1. Nombres premiers
1. N om b res p rem ie rs, de trois e n trois, com pris e ntre 2 et 2 939
5
13
23
37
47
61
73
89
103
113
137
151
167
181
197
223
233
251
269
281
307
317
347
359
379
397
419
433
449
463
487
503
523
557
571
593
607
619
643
659
677
701
727
733
761
787
811
827
853
863
883
911
937
953
977
997
1 019
1 033
1 051
1 069
1 093
1 109
1 129
1 163
1 187
1 213
1 229
1 249
1 279
1 291
1 303
1 321
1 367
1 399
1 427
1 439
1 453
1 481
1 489
1 511
1 543
1 559
1 579
1 601
1613
1627
1663
1693
1709
1733
1753
1783
1801
1831
1867
1877
1901
1931
195 1
198 7
199 9
201 7
203 9
206 9
208 7
211 1
213 1
214 3
217 9
221 3
223 9
226 7
22 81
22 97
23 33
23 47
23 71
23 83
23 99
24 23
24 47
24 73
25 31
25 49
25 79
26 09
2633
2659
2677
2689
2707
2719
2741
2767
2791
2803
2837
2857
2887
2909
2.N o m bre s pre m iers, de cinq en cinq, com p ris en tre 295 3 e t 80 33
295 7
300 1
304 1
308 3
313 7
318 7
322 1
325 9
331 3
334 3
337 3
343 3
346 7
351 7
354 1
358 1
361 7
365 9
369 7
373 3
377 9
382 3
386 3
391 1
393 1
400 1
402 1
407 3
411 1
415 3
421 1
424 1
427 1
432 7
436 3
442 1
44 57
45 07
45 47
45 91
46 39
46 63
47 21
47 59
47 99
48 61
49 09
49 43
4973
5009
5051
5099
5147
5189
5233
5281
5333
5393
5419
5449
55 01
55 27
55 73
56 41
56 59
57 01
57 43
58 01
58 39
58 61
58 97
59 53
6 029
6 067
6 101
6 143
6 199
6 229
6 271
6 311
6 343
6 373
6 427
6 481
6551
6577
6637
6679
6709
6763
6803
6841
6883
6947
6971
7001
704 3
710 9
715 9
721 1
724 3
730 7
734 9
741 7
747 7
750 7
754 1
757 3
7 603
7 649
7 691
7 727
7 789
7 841
7 879
7 927
7 963
7 991
8 009
8 027
C'est le reste de la division, et non le quotient, qui fournit l'adresse.
A-2
47 F2 04UF Rev04
Fichiers relatifs - Randomisation
Exemple :
Soit un fichier de 800 articles dont la plage de clés va de 0 à 999 999 999. L'espace
réservé pour ce fichier correspond à 1 000 positions d'article. Le diviseur sera donc 997,
nombre premier immédiatement inférieur à 1 000. Sur les 1 000 positions réservées, trois
seulement seront inutilisées.
Si par exemple, la clé à traiter est 777 775 925, on aura :
777 775 925 divisé par 997 = 780 116
reste 273
L'article considéré sera enregistré à l'adresse relative 273.
Remarque :
47 F2 04UF Rev04
Lorsque les clés sont alphabétiques, ou alphanumériques, elles peuvent
être converties en nombre binaire qui sera divisé par le nombre binaire
correspondant au nombre premier à utiliser. La suite des calculs est
également effectuée en binaire pour obtenir une adresse relative
exploitable.
A-3
UFAS-EXTENDED - Guide de l'utilisateur
A.3
ELEVATION AU CARRE, PLIAGE ET EXTRACTION
Dans cette méthode de randomisation, la clé est élevée au carré, puis le résultat est
partagé en deux moitiés égales qui sont additionnées. Le nombre requis de chiffres pour
l'adresse est ensuite extrait au milieu du résultat. Normalement, les deux caractères de
poids faible (caractères de droite) sont ignorés, et l'extraction commence au troisième
caractère de poids faible.
Exemple 1 :
Soit un fichier de 8 000 articles, dont la plage de clés va de 0 à 999 999 999. L'espace
réservé pour ce fichier correspond à 10 000 positions d'article.
La clé à traiter est 493 725 816.
Elévation au carré : 243 765 181 384 865 856
Pliage :
243 765 181 + 384 865 856
628 6 31 037
E xtra ction :
86 310
(ad resse relative d e l'article)
Ce résultat est trop élevé pour un fichier de 10 000 articles. Il conviendrait dans le cas peu probable - d'un fichier de 99 999 articles. Pour cet exemple, il aurait fallu extraire
seulement quatre chiffres, ce qui donne une adresse maximum possible de 9 999. Ce
résultat serait également inadapté pour un fichier de 7 000 articles.
Exemple 2 :
Soit un fichier de 4 000 articles, dont la plage de clés va de 0 à 999 999 999. L'espace
réservé pour ce fichier correspond à 6 000 positions d'article.
Si la clé à traiter est 493 725 816, comme dans l'exemple précédent, le résultat extrait
(quatre chiffres) fournirait une adresse relative de 6 310.
Indépendamment du fait que cette adresse relative ne convient pas pour un fichier de
6 000 positions d'article, on remarque que l'adresse maximum possible est encore de
l'ordre de 9 999.
Dans un tel cas, le résultat de l'extraction doit être réduit à l'aide d'un coefficient suffisant
pour que la plus haute valeur possible soit adaptée à l'espace disponible dans le fichier.
Ici, on obtient l'effet souhaité en multipliant le résultat de l'extraction par 0,6 :
6 310 * 0,6 = 3 786 (adresse relative de l'article)
A-4
47 F2 04UF Rev04
Fichiers relatifs - Randomisation
A.4
CHANGEMENT DE BASE DE NUMERATION
Cette technique s'applique à des clés exprimées dans une base autre que 10. La clé est
convertie chiffre par chiffre en base 10. La somme des valeurs ainsi obtenues comporte
le nombre de chiffres requis pour en extraire l'adresse relative d'article. L'extraction
commence par les caractères de droite. Le résultat extrait peut ensuite être adapté à
l'espace disponible dans le fichier de même manière qu'au point précédent (multiplication
par un coefficient).
Exemple :
Soit un fichier de 6 000 articles, dont la plage de clés va de 0 à 99 999. La place réservée
à ce fichier correspond à 7 500 positions d'article.
La clé à traiter est 14 623 en base 11.
Conversion en base 10 et somme des valeurs obtenues :
(1*11**4) + (4*11**3) + (6*11**2) + (2*11**1) + (3*11**0) =
(1*14 641) + (4*1 331) + 6*121) + (2*11) + (3*1) =
14 641 + 5 324 + 726 + 22 + 3 = 20 716
Extraction : 0716
Adaptation à l'espace disponible dans le fichier :
(0716*0,75) = (0)537 (adresse relative de l'article)
47 F2 04UF Rev04
A-5
UFAS-EXTENDED - Guide de l'utilisateur
A.5
ANALYSE DES FREQUENCES
• En premier lieu, l'analyse des fréquences fournit un schéma de distribution des chiffres
0 à 9 dans les différentes positions de la clé pour l'ensemble du fichier. Cette technique
met en évidence les meilleures positions pouvant servir de base au calcul d'adresse et
permet ainsi de choisir la méthode de randomisation la mieux adaptée.
• En second lieu, sous sa forme étendue, l'analyse des fréquences peut elle-même
constituer une méthode de randomisation pour transformer les clés en adresses
relatives.
Aide au choix d'une méthode de randomisation
L'analyse des fréquences consiste à établir, pour chaque position de la clé, le nombre
d'occurrences des chiffres 0 à 9, sur l'ensemble du fichier.
Ainsi par exemple, dans un fichier de 16 045 articles :
•
•
•
•
•
le chiffre 0 pourra figurer dans la 5ème position de la clé pour 5 168 articles,
le chiffre 1 pour 5 638 articles,
le chiffre 2 pour 4 958 articles,
le chiffre 3 pour 281 articles,
les chiffres 4 à 9 pour aucun article.
Si la distribution était régulière, chaque chiffre figurerait le même nombre de fois. Comme
il y a 10 chiffres, pour un fichier de 16 045 articles, chaque chiffre devrait apparaître
approximativement 1 605 fois dans chaque position de la clé.
Pour déterminer l'écart par rapport à cette distribution homogène, il faut d'abord calculer
pour chaque chiffre, la différence entre le nombre d'occurrences idéal et le nombre
d'occurrences réel dans chaque position de la clé.
Par exemple, si le chiffre 0 apparaît dans la 5ème position de la clé pour 5 168 articles,
l'écart sera de :
5 168 - 1 605 = 3 563
• L'écart total pour chaque position s'obtient en cumulant les écarts calculés pour les dix
chiffres (0 à 9).
• Cet écart total peut ensuite être exprimé en pourcentage du nombre total d'articles.
Plus ce pourcentage est faible, plus la distribution est régulière.
Dans notre exemple, un écart total de 0 % ne serait obtenu pour une position de clé que
si elle présentait exactement 1 605 occurrences de chaque chiffre sur l'ensemble du
fichier.
A-6
47 F2 04UF Rev04
Fichiers relatifs - Randomisation
Tableau A-2. Table des fréquences
P osition s de clé
C hiffres
1
2
3
4
5
6
7
0
1604 5
0
0
185 2
5 168
180 7
1738
26610
1
0
0
440 8
314 7
5 638
212 0
1748
17061
2
0
21 98
379 2
117 4
4 958
174 5
1743
15610
3
0
5 76
223 1
272 4
281
168 4
1610
9106
4
0
11 95
245 9
119 4
0
137 8
1617
7843
5
0
120 76
315 5
126 7
0
164 7
1688
19833
6
0
0
0
124 3
0
156 0
1660
4409
7
0
0
0
122 8
0
132 9
1450
4007
8
0
0
0
122 7
0
141 5
1411
4053
9
0
0
0
98 9
0
136 0
1434
3783
2888 5
221 33
1 604 5
582 1
21 903
196 1
1035
T otal articles fichier 1604 5
160 45
1 604 5
1604 5
16 045
1604 5
1 6045
1 38
10 0
36
137
12
6
E ca rt
total
E ca rt total
en %
18 0
Total
occurren ces
Une fois établie, la table des fréquences permet de déterminer les meilleures positions à
utiliser pour servir de base au calcul d'adresse.
A noter que l'écart total obtenu pour la position 3 (100 % du nombre total d'articles) est
l'effet du hasard.
47 F2 04UF Rev04
A-7
UFAS-EXTENDED - Guide de l'utilisateur
A.5.1
Transformation clé-adresse relative
Le processus de randomisation est le suivant :
• Calcul du nombre total d'occurrences de chaque chiffre dans l'ensemble des positions
de la clé (colonne de droite dans la figure A-2).
Ex : Le chiffre 0 apparaît 26 610 fois dans l'ensemble de la clé.
• Conversion du nombre d'occurrences de chaque chiffre dans chaque position de la clé
en pourcentage du nombre total d'articles du fichier (16 045 articles, dans l'exemple
considéré).
Ex : Le chiffre 0 apparaît 16 045 fois dans la position 1, donc le pourcentage est 100 %.
Tableau A-3. Développement d'une adresse relative
P ositions d e clé
C hiffres
0
1
2
3
4
5
6
7
8
9
A-8
T otal
occu rre nce s
1
2
3
4
5
6
7
%
C on stante
10 0
3 991 5
2661 0
2 661 0
12
2 820 7
32
3 0868
11
2 807 4
11
2 8074
26 610
%
C on stante
1 706 1
1706 1
27
1 936 4
20
1 876 7
35
2 0047
13
1 817 0
11
1 7999
17 061
%
C on stante
1 561 0
14
1670 3
24
1 748 3
31
7
1 615 6 180 30
11
1 646 9
11
1 6469
15 610
%
C on stante
91 06
4
928 8
14
974 3
17
988 0
2
91 97
10
956 1
10
9561
910 6
%
C on stante
78 43
7
811 8
15
843 1
7
811 8
78 43
9
819 6
10
8235
784 3
%
C on stante 198 33
75
2727 0
20
2 181 6
11
10
2 082 5 2092 4
1983 3
8
2 062 6 198 33
%
C on stante
4 409
440 9
440 9
8
458 5
4 409
10
462 9
10
4629
44 09
%
C on stante
40 07
400 7
400 7
8
416 7
40 07
8
416 7
9
4187
400 7
%
C on stante
40 53
405 3
405 3
8
421 5
40 53
9
423 5
9
4235
405 3
%
C on stante
37 83
378 3
378 3
6
389 6
37 83
8
393 4
9
3953
378 3
47 F2 04UF Rev04
Fichiers relatifs - Randomisation
A partir de ces totaux et de ces pourcentages, calcul d'une constante pour chaque chiffre
dans chaque position de la clé, au moyen de la formule suivante :
Constante = ((Kn% / 2) * dT) + dT
Avec
dT = Nombre total d'occurrences du chiffre
considéré pour l'ensemble des positions de la clé
Kn% = Pourcentage calculé pour le chiffre considéré.
Exemple de calcul de constante :
Pour le chiffre 1 dans la position 5, on aura :
Constante =
=
=
=
(17 061 + (( 35% / 2) * 17 061 )
17 061 + 2985,7
20 046,7
20 047
arrondi à l'entier supérieur
Après avoir associé chaque chiffre à une constante (arrondie) pour chaque position de la
clé (voir Figure A-3), procéder comme suit pour chaque clé de l'article :
• Effectuer le cumul des constantes associées aux chiffres constitutifs de la clé en
fonction de leur rang : on obtient une constante globale pour la clé considérée,
• Pour chaque clé, noter la constante la plus élevée et la constante la moins élevée,
• Construire une table des clés comme dans l'exemple fourni ci-dessous :
Tableau A-4. Table des clés
V a leur m a xim um *
C hiffre
C o nstan te
V aleur m in im um *
C hiffre
C onsta nte
C lé 1
0
399 15
0
3991 5
C lé 2
5
272 70
4
811 8
C lé 3
5
218 16
4
843 1
C lé 4
0
282 07
9
389 6
C lé 5
0
308 68
3
919 7
C lé 6
0
280 74
9
393 4
C lé 7
0
280 74
9
395 3
2 042 24
7744 4
* V aleurs arron dies à l'entier le plus p roche .
47 F2 04UF Rev04
A-9
UFAS-EXTENDED - Guide de l'utilisateur
Cumuler les constantes les plus élevées (valeurs maximum), puis les constantes les
moins élevées (valeurs minimum) en vue d'obtenir une plage de valeurs utilisables pour la
transformation clé-adresse relative :
204 224 - 77 444 = 126 780
Dans l'exemple considéré, on aura donc 126 780 adresses possibles.
Pour un fichier relatif de 16 045 articles, il semble convenable de réserver 20 000
positions d'article, d'où la nécessité d'ajuster à ce nombre la plage de valeurs obtenue.
Pour définir le coefficient d'ajustement, procéder comme suit :
Nombre d'articles = 20 000 = 0,157
Plage de valeurs
126 780
Appliquer ensuite ce coefficient à la plage de valeurs :
126 780 * 0,157 = 19 904
arrondi à l'entier inférieur
On aura ainsi seulement 96 positions inutilisées sur les 20 000 allouées.
En appliquant ce coefficient à la borne inférieure de la plage de valeurs, on obtient :
77 444 * 0,157 = 12 159
204 224 * 0.157 = 32 064
arrondi à l'entier supérieur
arrondi à l'entier supérieur
La valeur 12 159 pourra être utilisée comme constante standard à soustraire des
constantes globales de clé (ajustées) pour les transformer en adresses relatives. Les 96
positions inutilisées pourront servir pour les adjonctions éventuelles d'articles présentant
des clés situées hors de la plage définie à partir de l'analyse des fréquences.
Exemple de transformation clé-adresse relative :
Clé d'article = 0451185
Constantes (positions) = 39 915+8118+21 816+18 767+20 047+4235+20 924=133 822
Constante globale (clé) = 133 822
Constante globale ajustée = (133 822 * 0,157) = 21 011 arrondi à l'entier supérieur
Adresse relative d'article = 21 011 - 12 159 = 8 852
L'avantage de cette méthode réside dans le fait que le placement des articles s'effectue
en fonction de la fréquence moyenne des combinaisons des chiffres dans la clé, même si
la distribution résultante risque d'être diffuse.
Par exemple, la combinaison la plus probable, 0511110, générera l'adresse relative
14 675, tandis que la moins probable, 0339399, générera l'adresse relative 6.
L'inconvénient majeur est le risque d'un nombre élevé de synonymes (qui nuisent aux
temps d'accès dans le programme utilisateur). Mais ce risque est fonction des
combinaisons de clés existant réellement dans le fichier.
Une autre technique de transformation clé-adresse relative consiste à tronquer la
constante globale de clé. Par exemple, pour la clé 0451185, la constante globale
correspondante 133 822 sera réduite à 33 822, en éliminant le 1 à droite. Il suffit ensuite
d'appliquer le coefficient 0,2 au nombre maximum de possibilités 99 999 pour pouvoir
générer des adresses relatives adaptées à un fichier de 20 000 articles.
A-10
47 F2 04UF Rev04
Fichiers relatifs - Randomisation
A.6
CLES NON NUMERIQUES
Lorsque les clés contiennent des caractères non numériques (alphabétiques ou
spéciaux), d'autres moyens doivent être employés. Par exemple, une technique utilisable
consiste à transformer les clés en nombres binaires pour pouvoir leur appliquer des
calculs binaires ; on réduit ainsi les risques de synonymes.
Une autre technique consiste à convertir chaque caractère de la clé en deux chiffres, au
moyen d'un algorithme. La clé résultante est ensuite soumise à des calculs en décimal,
variables suivant la méthode de randomisation. Cette technique s'avère utile lorsque les
calculs en binaire sont impraticables, mais elle présente l'inconvénient de doubler la
longueur des clés.
47 F2 04UF Rev04
A-11
UFAS-EXTENDED - Guide de l'utilisateur
A-12
47 F2 04UF Rev04
B. Volumes bande - Formats et labels
standard
B.1
GENERALITES
Les systèmes DPS 7 disposent d'une large gamme de dérouleurs offrant une grande
variété de densités d'enregistrement et de débits. Ces dérouleurs acceptent des bandes 7
pistes ou 9 pistes, en mode d'enregistrement non retour à zéro (NRZI) ou modulation de
phase (PE). Le choix de l'utilisateur peut s'établir sur le rapport coûts/performances, mais
également sur la possibilité de traiter des bandes d'autres constructeurs.
Sous GCOS 7, il existe deux formats de bande standard pour la création et la lecture :
• GCOS 7/EBCDIC (bandes 7 ou 9 pistes, contrôle par clé d'imparité).
• GCOS 7/ASCII (bandes 9 pistes, contrôle par clé d'imparité).
Les caractéristiques du format GCOS 7/EBCDIC sont les suivantes :
• Présence de labels standard (décrits plus loin à la figure B-1), ou absence de labels
($NONE ou en JCL, LABEL = NONE), auquel cas la première marque de bande
indique la fin des données.
• Blocs d'articles de formats standard (F, FB, V, VB, U).
Les bandes GCOS 7/ASCII doivent comporter des labels et ne peuvent contenir des blocs
d'articles de type U (format indéterminé).
Les fichiers bande peuvent être catalogués ou non :
• Pour déclarer les fichiers catalogués au système et au catalogue, utiliser la commande
CREATE_MT_FILE (CRMTF) (voir chapitre 7).
• Pour les fichiers non catalogués, les informations nécessaires sont à fournir dans le
groupe de paramètres DEFn (voir chapitre 7).
47 F2 04UF Rev04
B-1
UFAS-EXTENDED - Guide de l'utilisateur
B.1.1
Relation volume (bobine)/fichier
Un fichier peut s'étendre sur une ou plusieurs bobines. S'il est implanté sur une seule
bobine, il est dit monovolume ; s'il est implanté sur plusieurs, il est dit multivolume (la
première partie du fichier est dans le volume 1, la deuxième dans le volume 2, etc.).
Remarques :
B.1.2
1.
Les bandes de format non standard et les bandes sans label ne
peuvent contenir que des fichiers monovolumes.
2.
L'utilisateur COBOL a la possibilité de forcer une fin de volume
(option CLOSE REEL), et pour un fichier multivolume, de rendre
visible la fin de bobine (voir manuel de référence COBOL 85 05UL).
Organisation des fichiers
Les fichiers bande ont une organisation séquentielle, c'est-à-dire que les articles, triés ou
non, sont toujours lus séquentiellement par le programme, et que tout accès direct est
impossible. A chaque nouvelle insertion ou suppression d'article, la totalité du volume
(bobine) doit être copiée. Il est impossible de lire un article en mode mise à jour, puis de
le réécrire au même endroit. La mise à jour implique la création d'une nouvelle version du
fichier à partir de l'ancienne.
B-2
47 F2 04UF Rev04
Volumes bande - Formats et labels standard
B.1.3
Organisation des données
BLOCS
Les blocs peuvent se composer d'un ou plusieurs articles, suivant la longueur d'article
spécifiée, et sont de longueur fixe ou variable (voir chapitre 7).
Les longueurs de bloc maximum et minimum sont conditionnées par les caractéristiques
du matériel et du logiciel, ainsi que par l'utilisation éventuelle de la bande pour l'échange
d'informations avec d'autres systèmes.
CONTRAINTES MATERIELLES ET LOGICIELLES
Le matériel autorise une longueur minimum de bloc de 18 caractères. Le tampon le plus
petit doit avoir au moins cette taille.
Le matériel et le logiciel ne fixent pas de limite à la longueur maximum de bloc. Ce sont le
langage employé et la quantité d'espace mémoire disponible pour les tampons qui
déterminent cette limite.
NORMES ANSI (American National Standards Institute)
Pour les bandes d'échange, les normes ANSI admettent une longueur minimum de bloc
de 18 caractères et une longueur maximum de bloc de 2 048 caractères. Tous les
systèmes GCOS 7 peuvent créer et lire des blocs de données dans ces limites.
ARTICLES
Les articles peuvent être de format fixe, variable ou indéterminé (GCOS 7/EBCDIC
seulement). Pour les bandes d'échange, la longueur maximum d'article doit être limitée à
la longueur maximum de bloc autorisée par les normes ANSI (2048 caractères).
TASSEMENT
Il est possible de demander un tassement des caractères espace dans les données des
fichiers bande.
Pour ce faire, le paramètre COMPACT = 1 doit être spécifié dans la commande
CREATE_MT_FILE. Cette valeur devient une caractéristique permanente du fichier,
enregistrée dans son label.
Dans ce cas, le fichier est soumis aux contraintes suivantes :
•
Seul le format variable est autorisé pour les articles.
•
La longueur de bloc indiquée par l'utilisateur (BLKSIZE) doit être au moins égale à la
longueur de l'article (RECSIZE) + 4 octets, avec un octet de gestion supplémentaire
tous les 128 caractères de données.
47 F2 04UF Rev04
B-3
UFAS-EXTENDED - Guide de l'utilisateur
B.2
B.2.1
FORMATS ET LABELS STANDARD
Généralités
GCOS 7 permet la création et le traitement des bandes de formats EBCDIC et ASCII.
LABELS
Les labels sont des blocs spéciaux de 80 caractères, permettant au système d'identifier
les bobines (volumes), ainsi que les fichiers et les parties de fichier qui s'y trouvent
enregistrés.
Tous les labels sont identifiés par leurs quatre premiers caractères :
• les trois premiers caractères indiquent le type du label,
• et le quatrième, le numéro du label
HDR2 = deuxième label début de fichier).
pour
le
type
considéré
(exemple :
Le tableau B-1 indique les différents types de labels, leur signification et leur nombre
maximum par bobine, fichier ou partie de fichier suivant les normes GCOS 7/EBCDIC et
GCOS 7/ASCII.
Tableau B-1. Types de labels
N o m b re m a x im u m
T yp es de
la bels
B-4
S ig n ifica tio n
G C O S 7/E B C D IC
8 p a r b o b in e
G C O S 7 /A S C II
1 p a r b o b in e
VO L
L a b e l d é b u t d e v o lu m e
UVL
L a b e l d é b u t d e v o lu m e
(u tilis a te u r)
HDR
L a b e l d é b u t d e fich ie r
8 p a r p a rtie d e
fic h ie r
9 p a r p a rtie d e
fic h ie r
UHL
L a b e l d é b u t d e fich ie r
(u tilis a te u r)
8 p a r p a rtie d e
fic h ie r
2 6 p a r p a rtie d e
fic h ie r
EO V
L a b e l fin d e vo lu m e
8 p a r b o b in e
9 p a r b o b in e
EOF
L a b e l fin d e fich ie r
8 p a r fic h ie r
9 p a r fic h ie r
UTL
L a b e l fin d e fich ie r
(u tilis a te u r)
8 p a r p a rtie d e
fic h ie r
2 6 p a r p a rtie d e
fic h ie r
9 p a r b o b in e
47 F2 04UF Rev04
Volumes bande - Formats et labels standard
Le système lit tous les labels (voir figure B-1), mais ne traite que les labels VOL1, HDR1,
HDR2, EOF1, EOF2, EOV1 et EOV2. Les autres ne sont pas pris en compte. Pour la
création des bandes, GCOS 7 utilise les formats présentés à la figure B-2.
MARQUES DE BANDE
C'est le caractère hexadécimal 13 (équivalent du caractère ASCII DC3 et du caractère
EBCDIC TM) qui est utilisé comme marque de bande.
Le système écrit :
•
une marque de bande pour séparer les labels des données,
•
une pour indiquer une fin de bobine,
•
et deux pour indiquer la fin d'un fichier.
Comme elles ne sont pas placées dans le tampon d'entrée lors de leur lecture, le
programmeur n'a pas à s'en occuper dans le cas des bandes standard.
MARQUES REFLECHISSANTES
Deux marques réfléchissantes sont collées sur la face non magnétisable des bandes :
• La marque BOT signale le début de bande et se trouve à environ 3 mètres du début
physique de la bande ;
• La marque EOT indique la fin de bande et se trouve à environ 5,50 mètres de la fin
physique de la bande.
Ces marques sont détectées par un système de cellules photoélectriques.
FORMAT STANDARD GCOS 7/EBCDIC
C'est le format utilisé par le système pour traiter les bandes en code EBCDIC ou BCD
(décimal codé binaire).
47 F2 04UF Rev04
B-5
UFAS-EXTENDED - Guide de l'utilisateur
LABELS DEBUT
On appelle "labels début" les blocs d'identification précédant les données sur les bandes
de format standard GCOS 7/EBCDIC.
Tableau B-2. Label début de volume VOL1 (GCOS 7/EBCDIC)
Zone
B-6
P o sitio n L o n g u e u r
D e s c rip tio n
Id e ntifica te ur de la b e l
1
4
C o n tien t V O L 1 (ide n tifica tio n d u la b el
d é bu t d e vo lu m e ).
N u m é ro
d 'im m a tric u la tio n
d e vo lu m e
5
6
C o ntie n t d e s in fo rm a tio n s fo u rn ie s p a r le
p rog ra m m e u r p o ur id e ntifie r la b o b in e (1
à 6 ca ra c tè re s a lp h an u m é riq u es , c ad ré s
à g a u c h e , a ve c e sp a c e s à d roite ).
P ro tec tion d e vo lu m e
11
1
A c tu e lle m e n t in u tilis ée (p o sitio nn é e à 0 ).
R é se rv ée
12
30
C o n tie n t d e s e s p a ce s.
N o m du p ro p rié ta ire
42
10
C o n tie n t d e s d o nn é es fo u rn ie s p ar le
p rog ram m e u r p o u r id en tifie r le p ro p rié ta ire
d u v o lum e . T o u s les ca ra ctè re s a lph a n u m é riqu e s p e u v e nt ê tre u tilisé s.
R é s erv ée
52
29
C o n tie n t d e s e s p a ce s.
47 F2 04UF Rev04
Volumes bande - Formats et labels standard
VOL - Label début de volume
Chaque bobine constitue un volume et doit comporter un label début de volume (VOL1)
permettant de l'identifier. Ce label, qui est le premier bloc de données écrit sur la bande
par le système, contient les informations détaillées au tableau B-2 ci-dessus.
HDR - Labels début de fichier
Les labels début de fichier (HDR1 et HDR2) sont créés par le système lors de l'ouverture
d'un nouveau fichier ou d'une nouvelle partie de fichier. Ils sont automatiquement lus lors
de l'ouverture d'un fichier ou d'une partie de fichier existant déjà. Le label HDR1 contient
des informations destinées au système d'exploitation.
Tableau B-3. Label début de fichier HDR1 (GCOS 7/EBCDIC) (1/2)
Z on e
P osition Lon gueu r
D escrip tio n
Iden tifica te ur de
lab el
1
4
Iden tifica te ur de
fich ie r
5
17
N um éro d'im m a tricula tion d e
volum e
22
6
C ontient l'ide ntificateur du p rem ie r volu m e du
fich ier (1 à 6 cara ctère s alph anum ériqu es,
cadrés à ga uche, a ve c espaces à droite).
N um éro d'o rdre
de volum e
28
4
C ontient le num é ro d'ord re du présent volum e :
0 001 (d écim al) pou r un fichier m onovolum e e t
p our le prem ier volum e d 'un fich ier m ultivo lu m e.
N um éro d'o rdre
de fich ier
32
4
C ontient le num é ro d'ord re du fichie r dans un
e nse m ble m ultifichier : 0001 (décim al) po ur
u n fichier m on ovolum e et pou r le p rem ie r
fich ier d'un vo lum e m ultifichier.
N um éro de
gé nération
36
4
C ontient le num é ro de gé néra tio n du fichier
(1 à 9999 ). S i elle est inutilisée , cette zo ne
contien t la vale ur 00 01.
N um éro de
version
40
2
C ontient le num é ro de version du fichie r (0 à
9 9). S i elle est inutilisé e, cette zone contient
la valeur 0 .
47 F2 04UF Rev04
C ontient H D R 1 (id entification du lab el d ébut
d e fichier).
C ontient les 17 caractères de d roite du nom
d e fichier extern e. S i ce nom est d 'un e lo ngu eur
supé rieu re à 17 caractère s, le s ca ractè res en
e xcéde nt sont placés da ns H D R 2 .
B-7
UFAS-EXTENDED - Guide de l'utilisateur
Tableau B-3. Label début de fichier HDR1 (GCOS 7/EBCDIC) (2/2)
Zone
B-8
P o sitio n L o n g u e u r
D e s crip tio n
D a te d e
c ré atio n
42
6
C o n tie n t la d a te d e cré a tio n d u fic h ie r, s o u s la
fo rm e su iv a n te : e sp a ce s u iv i d e d e u x ca ra ctè re s n u m é riq u e s p o u r l'a n n é e , p u is d e tro is
c a ra c tè re s n u m é riq u e s p o u r le jo u r ca le n d a ire .
E x e m p le : 9 5 0 0 1 = 1 e r ja n vie r 1 9 9 5 .
D a te d e
p é re m p tio n
48
6
C o n tie n t la d a te lim ite d e v a lid ité d u fic h ie r,
so u s u n e fo rm e id e n tiq u e à c e lle d e la d a te d e
cré a tio n .
In d ica te u r d e
p ro tec tio n d u
fich ie r
54
1
C o n tie n t 1 (d é cim a l) s i le fic h ie r e st
ca ta lo g u é e t 0 d a n s le ca s c o n tra ire .
C o m p te u r d e
b loc s
55
6
In u tilis é e .
P o sitio n n é e à z é ro .
C o d e sy s tè m e
61
13
R é s e rvé e
74
7
C o n tie n t u n c o d e u n iq u e id e n tifia n t le s ys tè m e
d 'e x p lo ita tio n a y a n t c ré é le fic h ie r. L e fo rm a t d e
ce co d e e s t le su iv a n t : G C O S -4 6 4 n n n .
n n n e s t le n u m é ro d e ve rs io n d u s ys tè m e
(e xe m p le : 0 0 1 , 0 0 2 , e tc.).
C o n tie n t d e s e s p a c e s .
47 F2 04UF Rev04
Volumes bande - Formats et labels standard
Le label HDR2 contient des informations relatives à l'organisation du fichier. Lorsqu'une
bande d'entrée n'a pas de label HDR2, l'utilisateur doit déclarer les valeurs de BLKSIZE,
RECSIZE et RECFORM soit dans le programme d'application, soit dans le groupe de
paramètres DEFn (équivalent JCL = DEFINE).
Tableau B-4. Label début de fichier HDR2 (GCOS 7/EBCDIC) (1/2)
Z o ne
P ositio n Lo ngue ur
D escription
Identificateu r de
labe l
1
4
C o ntie nt H D R 2 (iden tifica tion d e la bel déb ut
de fichie r).
Identificateu r de
form a t d'article
5
1
C o ntie nt un seu l cara ctère : F , V o u U .
Lo ngue ur de
bloc
6
5
C o ntie nt la lon gueu r m axim um de bloc (B S N
non com pris).
Lon gueu r m inim um = 0 0018 .
Lo ngue ur
d'article
11
5
C o ntie nt la lon gueu r m axim um d'a rticle
(en -tête d'a rticle inclus).
D e nsité
d'enregistrem en t
16
1
C o de d'un octe t :
2 = D 8 00
3 = D 1 600
4 = D 6 250
Indicateur de
volum e initial
17
1
C o de d'un octe t :
0 = prem ier volum e d 'un fich ier m ultivo lu m e
1 = volum e au tre que le pre m ier.
Identificateu r
d'activité
18
17
A ctuellem e nt in utilisée. C on tien t de s espaces.
T echniq ue
d'enregistrem en t
35
2
C o ntie nt de s espaces in diqua nt qu e le fichier
est en E B C D IC /p arité im paire
47 F2 04UF Rev04
B-9
UFAS-EXTENDED - Guide de l'utilisateur
Tableau B-4. Label début de fichier HDR2 (GCOS 7/EBCDIC) (2/2)
Z o ne
B-10
P osition Lon gueu r
D escriptio n
In dica te ur de
ta ssem e nt
37
1
C on tien t C si les donn ées son t tassées, sinon
un espace.
In dica te ur de
BSN
38
1
C on tien t 1 s'il y a d es nu m éro s de blo cs (B S N )
et 0 da ns le cas contraire. S ou s G C O S 7, la
vale ur im plicite est 1.
C o de de form a t
de bloc
39
1
In dique si les article s du fichie r son t groupé s en
blocs ou no n.
E space = no n gro upés.
B = g roup és.
R é servé e
40
13
C on tien t de s espaces.
E xcéde nt du n om
de fichie r
53
27
C on tien t les 2 7 caractè res d e gauche du n om de
fichier extern e. S i la lon gue ur de ce nom est
infé rieu re ou ég ale à 17 octe ts, cette zo ne est à
esp aces.
R é servé e
80
1
C on tien t un e spa ce.
47 F2 04UF Rev04
Volumes bande - Formats et labels standard
LABELS FIN
On appelle "labels fin" les blocs d'identification qui suivent les données sur les bandes de
format standard GCOS 7/EBCDIC.
EOF - Labels fin de fichier
Le système génère des labels fin de fichier chaque fois qu'un fichier de sortie est fermé.
Dans un fichier d'entrée, les labels fin de fichier indiquent que toutes les données ont été
traitées (fin de fichier). Jusqu'à huit labels fin de fichier peuvent être lus, mais seuls les
deux premiers sont traités.
Le système compare le nombre de blocs comptabilisés dans ce label avec le nombre de
blocs lus au cours du traitement. S'il s'agit d'un fichier multivolume, le nombre figurant
dans le label corrrespond au nombre de blocs lus dans le dernier volume seulement. Le
comptage ne porte que sur les blocs de données ; il exclut donc les marques de bande et
les labels (système ou utilisateur). Le label EOF1 a le même format que le label HDR1, à
quelques différences près (voir tableau B-5).
Tableau B-5. Label fin de fichier EOF1 (GCOS 7/EBCDIC)
Zone
P o sitio n
Longueur
re la tiv e
Id e n tifica te u r d e
la b e l
1
4
A u tre s z o n e s
5
50
C o m p te u r d e
b lo c s
55
6
A u tre s z o n e s
61
20
D e s crip tio n
C o n tie n t E O F 1 (id e n tifica tio n d e la b e l fin d e
fic h ie r).
Id e n tiq u e s à H D R 1 .
C o n tie n t u n n o m b re d é c im a l in d iq u a n t le
n o m b re d e b lo c s d u fic h ie r (fic h ie rs m o n o vo lu m e s ) o u d e la p a rtie d e fich ie r c o n sid é ré e
(fic h ie rs m u ltiv o lu m e s).
Id e n tiq u e s à H D R 1 .
Le label EOF2 est identique au label HDR2, à l'exception de l'identificateur.
47 F2 04UF Rev04
B-11
UFAS-EXTENDED - Guide de l'utilisateur
EOV - Label fin de volume
Le système génère des labels fin de volume en fin de bobine, lorsque le fichier considéré
continue sur une autre bobine. Dans un fichier d'entrée, les labels fin de volume indiquent
que toutes les données d'une partie de fichier ont été traitées (fin de partie). Jusqu'à huit
labels fin de volume peuvent être lus, mais seul le premier est traité.
Le système compare le nombre de blocs comptabilisés dans ce label aux nombre de
blocs lus au cours du traitement de la partie de fichier considérée. Le comptage ne porte
que sur les blocs de données ; il exclut donc les marques de bande et les labels (système
ou utilisateur). Le label EOV1 a le même format que le label HDR1, à quelques
différences près (voir tableau B-6).
Tableau B-6. Label fin de volume EOV1 (GCOS 7/EBCDIC)
Zone
P o sitio n
Longueur
re la tiv e
Id e n tific a te u r d e
la b e l
1
4
A u tre s zo n e s
5
50
N o m b re d e
b lo c s
55
6
A u tre s zo n e s
61
20
D e s crip tio n
C o n tie n t E O V 1 (id e n tific a tio n d e la b e l fin d e
v o lu m e ).
Id e n tiq u e s à H D R 1 .
C o n tie n t u n n o m b re d é c im a l in d iq u a n t le
n o m b re d e b lo c s o cc u p é s p a r le fic h ie r d a n s le
v o lu m e .
Id e n tiq u e s à H D R 1 .
Le label EOV2 est identique au label HDR2, à l'exception de l'identificateur.
B-12
47 F2 04UF Rev04
Volumes bande - Formats et labels standard
FORMATS DE VOLUMES
La figure B-1 montre les formats de volumes reconnus conformes à GCOS 7/EBCDIC.
GCOS 7 lit tous les labels, mais ne traite que VOL1, HDR1, HDR2, EOF1, EOF2, EOV1
et EOV2, les autres n'étant pas pris en compte.
Lorsqu'un volume bande sans labels ($NONE) est accepté en entrée par la fonction AVR
(Automatic Volume Recognition = reconnaissance automatique de volume), le système
d'accès considère que la bande contient une série de blocs de données limitée par une
seule marque de bande indiquant la fin du fichier.
F ichie r m onovolum e ave c labe ls
VOL HDR UHL T
T EOF UTL T T
1-8 1-8 1-8 M B LO C S D E D O N N E E S D U F IC H IE R M 1 -8 1-8 M M
F ichie r m onovolum e san s labe ls ($N O N E )
B L O C S D E D O N N E E S D U F IC H IE R
T
M
F ichie r m ultivolum e
VOL HDR UHL T
1-8 1-8 1-8 M
B LO C S D E D O N N E E S D U
P R E M IE R V O L U M E
T EOV UTL T
M 1-8 1-8 M
VOL HDR UHL T
1-8 1-8 1-8 M
B LO C S D E D O N N E E S D U
D E R N IE R V O LU M E
T EOF UTL T T
M 1 -8 1-8 M M
V o lu m e m ultifichier
V O L H D R U H L T F ich ier T E O F
1-8 1-8 1-8 M
M 1-8
A
U T L T H D R U H L T F ichie r T E O F
M 1-8
B
1 -8 M 1-8 1-8 M
UTL T T
1 -8 M M
Figure B-1. Formats reconnus conformes à GCOS 7/EBCDIC (1/2)
47 F2 04UF Rev04
B-13
UFAS-EXTENDED - Guide de l'utilisateur
E nsem ble m u ltivolum e/m ultifichier
V O L H D R U H L T F ichier T E O F
A
1 -8 1-8 1 -8 M
M 1-8
UTL T HDR UHL T
1-8 M 1 -8 1-8 M
T EOV UTL T VOL HDR UHL T
M 1 -8 1-8 M 1-8 1-8 1 -8 M
EOF
1-8
D E R N IE R E
P A R T IE D U
F IC H IE R B
U T L T H D R U H L T F ichier T E O F
1-8 M 1-8 1 -8 M
C
M 1-8
P R E M IE R E P A R T IE D U
F IC H IE R B
T
M
UTL T T
1-8 M M
Figure B-1. Formats reconnus conformes à GCOS 7/EBCDIC (2/2)
Remarque :
B-14
Pour qu'un ensemble de labels soit reconnu conforme à GCOS
7/EBCDIC (ANSI=0 dans la commande CREATE_MT_FILE et
DATACODE=EBCDIC dans le groupe de paramètres DEFn) il doit
comprendre VOL1, HDR1, EOF1 et EOV1. HDR2, EOF2 ou EOV2
ne sont pas obligatoires, mais sont également traités s'ils existent.
47 F2 04UF Rev04
Volumes bande - Formats et labels standard
V o lu m e v id e a v e c la b e ls, a p rè s e x é c u tio n d e P R E P A R E _ T A P E (P R P T P )
VOL1 HD R1
T
M
V o lu m e c o n te n a n t u n fic h ie r m o n o v o lu m e o u la d e rn iè re p a rtie d 'u n fic h ie r m u ltivo lu m e .
VOL1 HD R1 HDR 2
T
M
T
M
B lo c s d e d o n n é e s
E O F1 E O F 2
T
M
EOV1 EOV2
T
M
V o lu m e c o n te n a n t u n e p a rtie in te rm é d ia ire d 'u n fich ie r m u ltivo lu m e .
VOL1 HD R1 HDR 2
T
M
T
M
B lo c s d e d o n n é e s
Fic h ie r m o n o vo lu m e sa n s la b e ls ($ N O N E ) : G C O S 7 /E B C D IC se u le m e n t.
T
M
B lo c s d e d o n n é e s
V o lu m e d 'u n e n s e m b le m u ltiv o lu m e /m u ltific h ie r
VOL1 H DR 1 HDR 2
T
M
B lo c s d e d o n n é e s d u fic h ie r A
B lo c s d e d o n n é e s d e la p re m iè re
p a rtie d u fich ie r B
T
M
T
M
EOF1 EOF2
EOV1 EOV2
T
M
HDR1HDR2
T
M
T
M
HDR1HDR2
T
M
T
M
V o lu m e m ultifich ier
T
V O L1 H D R 1 H D R 2 M
B lo c s d e d o n n é e s d u fic h ie r A
B locs d e do nn ée s d u fich ie r B
T
M
T
M
EOF1 EOF2
EO F1 EO F2
T
M
T
M
Figure B-2. Formats créés par GCOS 7
47 F2 04UF Rev04
B-15
T
M
UFAS-EXTENDED - Guide de l'utilisateur
B.2.2
Format standard GCOS 7/ASCII
C'est le format utilisé par le système pour traiter les bandes en code ASCII.
LABELS DEBUT
On appelle "labels début" les blocs d'identification précédant les données sur les bandes
de format standard GCOS 7/ASCII.
Tableau B-7. Label début de volume VOL1 (GCOS 7/ASCII)
Z o ne
B-16
P osition Lon gue ur
D escriptio n
Ide ntificate ur de
la bel
1
4
C ontient V O L1 (ide ntificatio n du labe l dé but de
volum e ).
N um é ro d'im m atriculation de
volum e
5
6
C ontient un co de d'iden tification u nique , fo urn i
p ar l'u tilisate ur (1 à 6 cara ctères alph anu m ériques cad rés à gauche, avec espaces à
d roite).
A ccès au
volum e
11
1
C ontient un ca ractère alp hanu m ériq ue indiq uant les re strictio ns d'accè s au volum e. U n
e spa ce ind ique l'absence de re striction s.
R éservée
12
26
C ontient des e sp ace s.
N om du
p rop riétaire
38
14
C ontient des caractères a lp han um ériques
id entifian t le proprié ta ire.
V ale ur im plicite = e spa ces.
R éservée
52
28
C ontient des e sp ace s.
V ersio n d e la
n orm e régissa nt
le s labe ls
80
1
3 = version 1 974 de la no rm e internationa le
(IS O /100 1).
C 'e st la version actuellem e nt g énérée par
G C O S 7.
1 ,2 = version s antérieures de la no rm e
in ternationa le.
47 F2 04UF Rev04
Volumes bande - Formats et labels standard
VOL - Label début de volume
Chaque bobine constitue un volume et doit comporter un label début de volume (VOL1)
permettant de l'identifier. Ce label, qui est le premier bloc de données écrit sur la bande
par le système, contient les informations détaillées au tableau B-7 ci-dessus.
HDR - Labels début de fichier
Les labels début de fichier (HDR1 et HDR2) sont créés par le système lors de l'ouverture
d'un nouveau fichier ou d'une nouvelle partie de fichier. Ils sont automatiquement lus lors
de l'ouverture d'un fichier ou d'une partie de fichier existant déjà. Le label HDR1 contient
des informations destinées au système d'exploitation.
Tableau B-8. Label début de fichier HDR1 (GCOS 7/ASCII) (1/2)
Z o ne
P osition
Lon gue ur
relative
D escriptio n
Id entificateur d e
labe l
1
4
C ontient H D R 1 (id entification du labe l d ébut de
fich ier)
Id entificateur d e
fichier
5
17
C ontient le n om de fichie r externe. P o ur les
fich iers b ande A S C II, ce n om ne peu t excé der
1 7 caractères.
N u m éro d 'im m atricu latio n de vo lum e
22
6
C ontient l'ide ntificate ur du prem ier volum e d u
fich ier.
N u m éro d 'ordre
de volum e
28
4
C ontient le n um éro d'ordre du prése nt volum e :
0 001 (d écim a l) pou r un fichier m o novolum e e t
p our le prem ier volum e d'un fich ier
m u ltivolum e.
N u m éro d 'ordre
de fichie r
32
4
C ontient le n um éro d'ordre du fichie r dans un
e nse m ble m ultifichier : 0001 p our un fich ier
m o novolum e e t pou r le p rem ie r fichier d 'un
volum e m u ltifich ie r.
N u m éro d e
gén éra tion
36
4
C ontient le n um éro de gén éra tio n d u fichier
(0001 à 9 999). La valeu r im plicite est 000 1
(pas d e géné rations).
N u m éro d e
ve rsio n
40
2
C ontient le n um éro de ve rsion du fichie r (00 à
9 9). S i elle est inutilisé e, cette zone est à zé ro.
D a te de cré atio n
42
6
C ontient la d ate de création du fich ier, sou s la
form e suivante : e spa ce suivi de de ux cara ctères nu m ériq ues p our l'anné e, p uis de trois
cara ctères nu m ériq ues p our le jou r cale ndaire.
47 F2 04UF Rev04
B-17
UFAS-EXTENDED - Guide de l'utilisateur
Tableau B-8. Label début de fichier HDR1 (GCOS 7/ASCII) (2/2)
Z one
B-18
P ositio n
Lo ngue ur
relative
D escription
D a te d e
pé rem p tion
48
6
C ontien t la date lim ite de validité du fichie r,
sou s une form e id entique à celle de la date de
cré atio n.
Indicateur de p rotection d u fichier
54
1
C ontien t 1 (dé cim a l) si le fich ier est catalogu é,
e t de s espaces da ns le cas contraire.
C o m pteur d e
blocs
55
6
Inu tilisée.
C ontien t 0.
47 F2 04UF Rev04
Volumes bande - Formats et labels standard
Le label HDR2 contient des informations relatives à l'organisation du fichier. Son format
est présenté dans le tableau B-9 ci-après.
Tableau B-9. Label début de fichier HDR2 (GCOS 7/ASCII)
Z one
P osition L ongu eur
D escription
Ide ntificate ur de
la bel
1
4
C o ntie nt H D R 2 (iden tifica tion d e label déb ut d e
fichier).
Ind icateu r de
form at d 'article
5
1
C o ntie nt u n seu l cara ctère : F p our lon gueu r
fixe, ou V po ur long ueu r variable.
L ongu eur d e
b loc
6
5
C o ntie nt la lon gueu r m axim ale de bloc, e n-tête
de blo c co m pris.
V aleur m in im um = 00 018.
L ongu eur d 'article
11
5
C o ntie nt la lon gueu r m axim um d'article, en-tê te
d'article com p ris.
R éservée
16
35
Ind icateu r de B S N
51
2
R éservée
53
28
C o ntie nt d es espaces.
Indiqu e la p résence ou l'a bsence de num é ros
de blo cs (B S N )
0 = pa s de B S N
6 = B S N de niveau 64 -66
5 = B S N de niveau 61 .
C o ntie nt d es espaces.
LABELS FIN
On appelle "labels fin" les blocs d'identification qui suivent les données sur les bandes de
format standard GCOS 7/ASCII.
EOF - Labels fin de fichier
Le système génère ces labels à la fermeture de chaque fichier de sortie. Dans un fichier
d'entrée, ils indiquent que toutes les données ont été traitées (fin de fichier). Jusqu'à 9
labels fin de fichier peuvent être lus, mais seuls les deux premiers sont traités.
Le système compare le nombre de blocs comptabilisés dans ce label au nombre de blocs
lus au cours du traitement. S'il s'agit d'un fichier multivolume, le nombre figurant dans le
label correspond au nombre de blocs lus dans le dernier volume seulement. Le comptage
des blocs ne porte que sur les blocs de données ; il exclut donc les marques de bande et
les labels (système ou utilisateur). Le label EOF1 a le même format que le label HDR1, à
quelques différences près (voir tableau B-10).
47 F2 04UF Rev04
B-19
UFAS-EXTENDED - Guide de l'utilisateur
Tableau B-10. Label fin de fichier EOF1 (GCOS 7/ASCII)
Z one
P ositio n Lo ngue ur
Identificateu r de
labe l
1
4
A utres zone s
5
50
C o m pteur d e blocs
55
6
A utres zone s
61
20
D escription
C on tien t E O F 1 (ide ntificatio n de labe l fin de
fichier).
Ide ntique à H D R 1 .
C on tien t un no m bre d écim a l in diqua nt le nom bre de b lo cs d u fichier (fichiers m ono vo lu m e)
ou de la partie de fich ier co nsidéré e (fichie rs
m ultivolum e s).
Ide ntique à H D R 1 .
Le label EOF2 est identique au label HDR2, à l'exception de l'identificateur.
EOV - Labels fin de volume
Le système génère des labels fin de volume en fin de bobine, lorsque le fichier considéré
(ou le dernier fichier d'un ensemble multivolume multifichier) continue sur une autre
bobine. Dans un fichier d'entrée, les labels EOV indiquent que toutes les données d'une
partie de fichier ont été traitées (fin de partie). Jusqu'à neuf labels fin de volume peuvent
être lus, mais seul le premier est traité.
Le système compare le nombre de blocs comptabilisés dans ce label au nombre de blocs
lus au cours du traitement de la partie considérée du fichier. Le comptage ne porte que
sur les blocs de données ; il exclut donc les marques de bande et les labels (système ou
utilisateur). Le label EOV1 a le même format que le label EOF1, à l'exception de
l'identificateur.
FORMATS DE VOLUMES
La figure B-3 ci-dessous montre les formats de volumes reconnus conformes à
GCOS 7/ASCII. Le système lit tous les labels, mais ne traite que VOL1, HDR1, HDR2,
EOF1, EOF2 et EOV1. Les autres labels ne sont pas pris en compte.
B-20
47 F2 04UF Rev04
Volumes bande - Formats et labels standard
F ichier m on ovolum e
VO L UVL HDR UHL T
1
1-9 1-9 1-2 6 M
B locs de do nnée s du fichie r
T EOF UTL T T
M 1 -9 1-26 M M
F ichier m ultivo lum e
VO L UVL HDR UHL T
T EOF UTL T
B locs de d onné es du p rem ie r volu m e
1
1-9 1-9 1-2 6 M
M 1 -9 1-26 M
VO L UVL HDR UHL T
T EOF UTL T T
B lo cs d e d onn ées d u dern ier volum e
1
1-9 1-9 1-2 6 M
M 1 -9 1-26 M M
V olum e m u ltifich ie r
V O L U V L H D R U H L T F ich ier T E O F U T L T H D R U H L T
A
1
1-9 1-9 1-2 6 M
M 1-9 1-2 6 M 1-9 1 -26 M
F ichier T E O F U T L T T
B
M 1 -9 1-26 M M
E nse m ble m ultivo lum e/m ultifichier
V O L U V L H D R U H L T F ich ier T E O F U T L T H D R U H L T
P rem iè re pa rtie d u fichier B
A
1
1-9 1-9 1-2 6 M
M 1-9 1 -26 M 1-9 1 -26 M
T E O F U T L T V O L U V L H D R U H L T D e rnière partie du T
M
1 -9 1-9 1 -26 M
fichier B
M 1-9 1-2 6 M 1
E O F U T L T H D R U H L T F ichier T E O F U T L T T
C
1 -9 1 -26 M 1 -9 1 -26 M
M 1 -9 1-26 M M
Figure B-3. Formats reconnus conformes à GCOS 7/ASCII
47 F2 04UF Rev04
B-21
UFAS-EXTENDED - Guide de l'utilisateur
B-22
47 F2 04UF Rev04
C. Fichiers séquentiels indexés Représentation hexadécimale des espaces
adresses
Les exemples fournis dans cette annexe doivent permettre à l'utilisateur d'analyser les
vidages en hexadécimal des différents espaces adresses de ses fichiers séquentiels
indexés, pour la mise au point des CI.
Error! Bookmark not defined.Ces exemples sont constitués de portions de vidage
significatives portant sur différents fichiers VBO. A noter que les fichiers FBO comptent un
octet supplémentaire avant chaque en-tête de CI et un autre en fin de CI.
47 F2 04UF Rev04
C-1
UFAS-EXTENDED - Guide de l'utilisateur
C I d'index (espaces adresses 3, 4, 6 et 7)
1
2
3
4
5
6
7
8
07DA0026 00000000 00C70000 0000C3C1 F1F1F8F1 00000100 C3C1F1F8 F8F70000
0200C3C1 F2F0F0F2 00000300 C3C1F2F2 F1F70000 0400C3C1 F2F2F9F2 00000500
C3C1F2F4 F4F20000 0600C3C1 F2F6F5F8 00000700 C3C1F2F7 F9F20000 0800C3C3
F0F0F6F8 00000900 C3C3F2F1 F3F60000 0A00C3C6 F0F7F4F7 00000B00 C3C6F2F1
F4F20000 0C00C3F6 F1F6F3F8 00000D00 C3F6F6F3 F5F10000 0E00C3F6 F8F9F0F4
00000F00 C3F7F2F6 F6F60000 1000C3F7 F3F2F9F8 00001100 C3F7F3F7 F8F40000
1200C3F7 F3F9F7F2 00001300 C3F7F4F1 F6F10000 1400C3F7 F4F2F8F2 00001500
C3F7F4F5 F1F30000 1600C3F7 F4F7F4F2 00001700 C3F7F4F9 F9F90000 1800C3F7
F5F2F3F0 00001900 C3F7F5F5 F1F80000
En-tête de CI (10 octets)
(1)
Espace occupé dans le CI : 2018 octets (2016 pour un fichier FBO)
(2)
Espace libre dans le CI (en octets) ; la taille de CI est de 2048 octets.
(3)
Type de clé : 00 = clé primaire (index primaire) ; 01 = céls secondaires (index
secondaire)
(4)
Numéro du CI dans l'espace adresses. Le Ci représenté ci-dessus est le 1er (N°
000000)
(5)
Numéro de la ligne du dernier article (rubrique d'index) actif du CI : numéro 00C7.
Rubrique d'index
(6)
Numéro du CI de niveau inférieur contenant la clé la plus élevée. Par exemple, un CI
d'index.
(7)
Etat du CI : 00 = le CI contient un ou plusieurs articles valides ; 80 = le CI ne contient
que des articles supprimés.
(8)
Valeur de clé la plus élevée du CI d'index de niveau immédiatement inférieur :
C3C1F1F1F8F1.
Il n'y a qu'un seul en-tête de CI, mais plusieurs rubriques d'index.
C-2
47 F2 04UF Rev04
Fichiers séquentiels indexés - Représentation hexadécimale des espaces adresses
CI de données (espace adresses 2)
1
2
3
4
5
6
7
8
9
075B00A5 00000000 00080008 0000 FFFF FF000001
10
11
12
100000CD 01404040 40404040
40404040 40404040 40404040 40404040
40100000 CD02C34B F3F44BF0 F3F8C340
40404040 40404040 40404040 4040F34B
F1404040 40404040 C3C1F0F3 F5F8C340
F2404040 404040C6 E6F6F0F7 404040C4
E8D5C1C4 4040D3D6 C1C4C9D5 C740E2D4
40404040 40404040 40404040 40404040
40404040 40404040 40404040 40401000
00CD03F1 C3F0F9F1 F2F0C3F0 F0F0F940
40404040 40404040 40404040 40404040
40404040 40C3C1F0 F4F0F940 E5F24040
40404040 C6E6F6F0 F3404040 E3C1E2D2
D440E2E3 C1C3D2D6 E540D9C9 D5C740F1
40404040 40404040 40404040 40404040 40404040 40404040 40404040 100000CD
40404040 4040C3C1 F0F8F7F6 40E5F340 FFE740D7 D961C3D9 40C961D6 40C6C1C9
40404040 40C6E6F6 F3F54040 40D6D7D9 D3C5C440 40404040 40404040 40404040
E3D94040 40404040 40404040 40404040 404040C3 C1F1F1F8 F1404040 40404040
40404040 40404040 40404040 40404040 4040C6E6 F6F0F240 4040D4C9 E9D6D740
40E6C8C5 D540C46B D76BD14B D74BE2E3
D54BE2E3 C54BE2D9 C16BD3C7 40404040
40404040 40404040 40404040 40404040
40404040 40404040 40000000 00000000 00000000 00000000 00000000 00000668
00000000 00000000 00000000 00000000 059B04CE 04010334 0267019A 00CD0000
15
47 F2 04UF Rev04
14
13
C-3
UFAS-EXTENDED - Guide de l'utilisateur
Les article ayant une largeur importante, seule une partie du CI de données est
représentée ici.
En-tête de CI (20 octets)
(1)
Espace occupé dans le CI (en octets).
(2)
Espace libre dans le CI (en octets).
(3)
Type de clé (toujours à 00).
(4)
Numéro du CI dans l'espace adresses. Le CI représenté ci-dessus est le 1er (N°
000000)
(5)
Numéro de ligne du dernier article enregistré (valide ou supprimé) du CI : 0008.
(6)
Numéro de ligne du dernier article valide du CI. Si le CI est vide, cette zone est à
FFFFFF.
(7)
Numéro de ligne du premier article du CI : 0000.
(8)
Réservé.
(9)
Numéro du CI suivant. Dans cet exemple, il s'agit du CI 000001. Si ce CI est le
dernier, la zone est à FFFFFF.
En-tête d'article (5 octets)
(10) Etat de l'article : 1 = article valide ; 0 = article supprimé.
(11) Longueur de l'article, en-tête compris : 205 octets.
(12) Numéro de l'article suivant. Si l'article a la valeur de clé la plus élevée du CI cette
zone est à FF.
Descripteurs d'articles (2 octets chacun)
(13)
Descripteur du premier article
(14)
Descripteur du deuxième article
(15)
Descripteur du troisième article.
Chaque descripteur indique le déplacement de l'article par rapport au début de la partie
donnée du CI.
C-4
47 F2 04UF Rev04
Fichiers séquentiels indexés - Représentation hexadécimale des espaces adresses
CI d'index dense (espace adresses 5)
1
8
9
2
3
4
5
6
7
00A6075A 01000000 00040000 0000C6E6 F5F4F700 00000000 000100C6 E6F6F0F7
00000000 00000200 C6E6F6F1 F8FFFFFF FF000003 00C6E6F6 F3F3FFFF FFFF0000
0400FFFF FFFFFFFF FFFFFF00 00050000 00000000 00000000 00000600 00000000
00000000 00000007 00000000 00000000 00000000 00000000 00000080 00000000
00090000 00000000 00000000 00000A00 00000000 00000000 0000000B 00000000
00000000 0000FFFF FF000000 00000000 000000FF FFFF0000 00000000 00000000
FFFFFF00 00000000 00000000 00FFFFFF 00000000 00000000 0000FFFF FF000000
00000000 000000FF FFFF0000 00000000 00000000 FFFFFF00 00000000 00000000
00FFFFFF 00000000 00000000 0000FFFF
47 F2 04UF Rev04
C-5
UFAS-EXTENDED - Guide de l'utilisateur
En-tête de CI (20 octets)
(1)
Espace occupé dans le CI (en octets)
En-tête d'article
(2)
Etat de l'article :
0001 (1) = article valide.
0000 (0) = article supprimé.
(3)
Réservé (12 bits).
(4)
Indicateur d'articles synonymes :
00
01
11
10
la valeur de clé est unique (aucun autre article n'a la même).
et article est le premier d'un groupe d'articles ayant la même valeur de clé.
et article est un article intermédiaire dans un goupe d'articles ayant la même
valeur de clé.
et article est le dernier d'un groupe d'articles ayant la même valeur de clé
(5)
Longueur de l'article en-tête compris
(6)
Numéro de l'article suivant. Si cet article a la clé la plus élevées du CI, la zone est à
FF.
(7)
Clé.
(8)
Rang de l'article dans le groupe ayant même valeur de clé, si l'indicateur figurant en
(4) est différent de 00.
(9)
Espace SFRA* de longueur variable. Contient les adresses des articles de données
ayant la même valeur pour la clé secondaire figurant en (7). SFRA = numéro de CI
données (3 octets) + numéor de ligne (1 octet) de l'article associé dans l'espace
adresse 2.
(SFRA = Simple File Relative Address - Méthode simple d'adressage relatif pour les
fichiers).
C-6
47 F2 04UF Rev04
D. Correspondance GCL/JCL
Les deux tableaux fournis dans cette annexe permettent d'établir la correspondance entre
ordres JCL et commandes GCL (et inversement).
Tableau D-1. Correspondances JCL/GCL (1/2)
JC L
47 F2 04UF Rev04
GCL
A bréviation
COM PARE
C O M P A R E _F ILE
C O M P A R E _F ILE S E T
CMPF
CM PFST
CREATE
LO A D _F ILE
LO A D _F ILE S E T
LD F
LD F S T
D E A LL O C
D E LE T E _ F IL E
D E LE T E _ F IL E S E T
D LF
D LF S T
F ILA LLO C
C R E A T E _F ILE
C R E A T E _F ILE S E T
CRF
CRFST
F ILD U P LI
C O P Y_ F IL E
C O P Y_ F IL E S E T
CPF
CPFST
F ILLIS T
LIS T _F ILE
LIS T _F ILE S E T
LIS T _F ILE _S P A C E
LS F
LS F S T
LS F S P
F ILM A IN T
M A IN T A IN _F ILE
MNF
F ILM O D IF
C LE A R _F ILE
M O D IF Y_ F ILE _ S T A T U S
M O D IF Y_ F ILE
C LR F
M DFSTAT
MDF
D-1
UFAS-EXTENDED - Guide de l'utilisateur
Tableau D-2. Correspondances JCL/GCL (2/2)
JC L
D-2
GCL
A bréviation
F ILR E S T
R E S T O R E _C A T A LO G
R E S T O R E _F ILE
R E S T O R E _F ILE S E T
RSTCAT
RSTF
RSTFST
F ILS A V E
S A V E _ C A T A LO G
S A V E _ F IL E
S A V E _ F IL E S E T
SVCAT
SVF
SVFST
LIB A L LO C
B U IL D _L IB R A R Y
B L IB
LIB D E LE T
C LE A R _L IB R A R Y
D E LE T E _ LIB R A R Y
C LR LIB
D LL IB
MERGE
M E R G E _F IL E
MRGF
P R E A LLO C
B U IL D _F ILE
C R E A T E _M T _F ILE
M O D IF Y_ F ILE _ S P A C E
BF
CRMTF
M DFSP
P R IN T
P R IN T _F ILE
P R IN T _F ILE S E T
PRF
PRFST
S E T LIS T
E X P A N D _F ILE S E T
EXPFST
SORT
S O R T _F ILE
SRTF
S O R T ID X
S O R T _IN D E X
S R T ID X
V O LL IS T
LIS T _V O L U M E
LS V
V O LM A IN T
M A IN T A IN _V O L U M E
MNV
V O LM O D IF
M O D IF Y_ D IS K
MDD
V O LP R E P
C LE A R _V O L U M E
P R E P A R E _D IS K
P R E P A R E _T A P E
C LR V
PRPD
PRPTP
V O LR E S T
R E S T O R E _D IS K
RSTD
V O LS A V E
S A V E _ D IS K
SVD
47 F2 04UF Rev04
Correspondance GCL/JCL
Tableau D-3. Correspondances GCL/JCL (1/2)
GCL
47 F2 04UF Rev04
A bré viation
JC L
B U IL D _ F ILE
BF
P R E A L LO C
B U IL D _ LIB R A R Y
B L IB
LIB A LL O C
C LE A R _ F IL E
C LR F
F IL M O D IF
C LE A R _ LIB R A R Y
C LR LIB
LIB D E LE T
C LE A R _ V O LU M E
C LR V
V O LP R E P
C O M P A R E _F ILE
CMPF
COMPARE
C O M P A R E _F ILE S E T
CM PFST
COMPARE
C O P Y _F ILE
CPF
F IL D U P L I
C O P Y _F ILE S E T
CPFST
F IL D U P L I
C R E A T E _F ILE
CRF
F IL A L LO C
C R E A T E _F ILE S E T
CRFST
F IL A L LO C
C R E A T E _C T _F IL E
CRCTF
P R E A L LO C
C R E A T E _M T _F ILE
CRMTF
P R E A L LO C
D E LE T E _F ILE
D LF
D E A LLO C
D E LE T E _F ILE S E T
D LF S T
D E A LLO C
D E LE T E _LIB R A R Y
D LL IB
LIB D E LE T
E X P A N D _ F IL E S E T
EXPFST
S E T L IS T
LIS T _ F IL E
LS F
F IL LIS T
LIS T _ F IL E S E T
LS F S T
F IL LIS T
LIS T _ F IL E _ S P A C E
LS F S P
F IL LIS T
LIS T _ V O LU M E
LS V
V O LLIS T
LO A D _ F IL E
LD F
CREATE
LO A D _ F IL E S E T
LD F S T
CREATE
D-3
UFAS-EXTENDED - Guide de l'utilisateur
Tableau D-4. Correspondances GCL/JCL (2/2)
GCL
D-4
A brévia tion
JC L
M A IN T A IN _ F ILE
MNF
F IL M A IN T
M A IN T A IN _ V O L U M E
MNV
V O LM A IN T
M E R G E _F ILE
MRGF
M ERGE
M O D IF Y_ D IS K
MDD
V O LM O D IF
M O D IF Y_ F IL E
MDF
F IL M O D IF
M O D IF Y_ F IL E _ S P A C E
M DFSP
P R E A L LO C
M O D IF Y_ F IL E _ S T A T U S
M DSTAT
F IL M O D IF
P R E P A R E _ D IS K
PRPD
V O LP R E P
PREPARE_TAPE
PRPTP
V O LP R E P
PREPARE_VOLUM E
PRPV
V O LP R E P
P R IN T _F ILE
PRF
P R IN T
P R IN T _F ILE S E T
PRFST
P R IN T
R E S T O R E _C A T A LO G
RSTCAT
F IL R E S T
R E S T O R E _D IS K
RSTD
V O LR E S T
R E S T O R E _F ILE
RSTF
F IL R E S T
R E S T O R E _F ILE S E T
RSTFST
F IL R E S T
S A V E _C A T A LO G
SVCAT
F IL S A V E
S A V E _D IS K
SVD
V O LS A V E
S A V E _F ILE
SVF
F IL S A V E
S A V E _F ILE S E T
SVFST
F IL S A V E
S O R T _F ILE
SRTF
SORT
S O R T _IN D E X
S R T ID X
S O R T ID X
47 F2 04UF Rev04
E. Opérations internes sur les tampons
Comme indiqué au chapitre 5, trois paramètres permettent à l'utilisateur d'optimiser la
gestion des tampons : POOLSIZE, NBBUF et BUFPOOL. La présente annexe fournit un
complément d'informations d'une part sur les opérations internes relatives aux tampons,
et d'autre part, sur les ressources mémoire impliquées.
Algorithme UFAS-EXTENDED de gestion des tampons
Error! Bookmark not defined.Pour chaque fichier ouvert, on a :
• 1 tampon actif (busy),
• 1 à n tampons mémorisés (remember),
• 1 à n tampons vides (empty).
Un tampon "actif" contient un CI en cours d'accès.
Un tampon "mémorisé" contient un CI conservé en mémoire en vue de sa réutilisation. La
réactivation d'un tampon mémorisé permet d'éviter une opération de lecture physique.
Un tampon "vide" contient des informations non pertinentes, par exemple après arrêt
prématuré d'une unité de consolidation.
Lorsqu'un programme doit traiter un article, UFAS-EXTENDED commence par
rechercher cet article dans les tampons mémorisés. S'il le trouve, il réactive le tampon qui
le contient. La recherche est terminée et l'article peut être traité. La réactivation a
l'avantage d'économiser une E/S physique, ou même deux s'il a fallu réécrire un CI
modifié.
47 F2 04UF Rev04
E-1
UFAS-EXTENDED - Guide de l'utilisateur
UFAS-EXTENDED comptabilise et imprime dans l'historique de travail (JOR) le nombre
d'accès effectués dans le tampon actif et dans les tampons mémorisés réactivés, c'est-àdire le nombre d'accès n'ayant pas nécessité d'opérations d'E/S physiques (rubrique
HITCOUNT).
Si l'article n'est pas dans un tampon mémorisé, le CI qui le contient doit être transféré du
fichier en mémoire principale.
Pour loger les CI à transférer (CI de données ou d'index), UFAS-EXTENDED recherche
la place nécessaire dans l'espace mémoire réservé aux tampons. L'algorithme simplifié
est décrit dans l'organigramme de la figure E-1.
Si le nombre maximum de tampons (NBBUF) n'est pas atteint, et s'il reste de la place en
mémoire tampon (valeur de POOLSIZE pas encore atteinte), UFAS-EXTENDED crée un
nouveau tampon. S'il ne reste plus de place en mémoire tampon (valeur de POOLSIZE
atteinte), UFAS-EXTENDED supprime un ou plusieurs tampons afin de libérer la place
nécessaire.
E-2
47 F2 04UF Rev04
Opérations internes sur les tampons
D é but recherch e d e C I
(+ 1 G E T C IC O U N T )
C I da ns le po ol
d e tam pons?
Oui
N on
N on
N on
B
N b m a xi
tam p ons (N B B U F )
a tteint?
T a ille m a xi
m é m oire tam p on
(P O O LS IZ E )
attein te?
O ui
O ui
•
Y -a -t-il u n tam pon
vide ou m é m orisé
de ta ille = ?
Y -a-t-il un tam p on
vide ou m ém orisé
de taille = ?
O ui
Non
A
Y -a-t-il u n tam p on
vide ou m é m orisé
d e ta ille > ?
Lire le C I
(+ 1 R E A D IO C T )
A
B
N on
(+ 1 H IT C O U N T )
S u pprim er un
tam p on de taille =
(+1 S E G D L )
C rée r un ta m pon
(+1 S E G C R )
N on
Y-a-t-il un tam po n
vide ou m ém o risé
de taille <?
O ui
N on
S upp rim er
n ta m pon s
(+ n
SEGDL)
Le contenu d u
nou ve au C I
re cou vre
celui de l'a ncie n
Lire le C I
(+ 1 R E A D IO C T )
B
BUFNAV ou CM W SOV
T raite m ent
Figure E-1. Opérations internes sur les tampons
47 F2 04UF Rev04
E-3
Référence
i-4
F. Paramétrage des fichiers UFAS sous UFASEXTENDED
Error! Bookmark not defined.Cette annexe est destinée aux utilisateurs souhaitant
créer des fichiers UFAS sous UFAS-EXTENDED au moyen de PREALLOC avec
VERSION = PREVIOUS.
Compatibilité entre UFAS-EXTENDED et UFAS
Error! Bookmark not defined.Pour des raisons de compatibilité, UFAS-EXTENDED
accepte toujours les anciens fichiers UFAS. Il est cependant préférable de les convertir au
nouveau format à blocs fixes.
Des systèmes couplés doivent obligatoirement exploiter la même version UFAS,
car ni la fonction de partage dynamique des fichiers, ni la fonction de relance en
exploitation transactionnelle (TCRF) ne sont disponibles d'une version à l'autre
d'UFAS.
Si un fichier est instable dans une version donnée, il doit être reconstitué dans cette
version.
Depuis la version 6, VERSION = PREVIOUS ne peut être utilisé que dans l'ordre JCL
PREALLOC, mais pas dans la commande BUILD_FILE.
Caractéristiques d'UFAS
La taille d'un CI d'index peut être différente de celle d'un CI de données, car UFAS utilise
la valeur du paramètre CASIZE pour effectuer les calculs.
UFAS admet jusqu'à 18.500 tampons par application TDS lorsque VERSION =
PREVIOUS.
Le nombre maximum de fichiers partageables au niveau système est de 800, et le
nombre de fichiers pouvant être ouverts simultanément pour une application TDS de 500.
47 F2 04UF Rev04
F-1
UFAS-EXTENDED - Guide de l'utilisateur
CA (ZONE DE CONTROLE)
Error! Bookmark not defined.Le CA (Control Area) est constitué d'un ou plusieurs CI
(Control Intervals). C'est l'unité d'extension des fichiers séquentiels indexés. Dans un
fichier donné, tous les CA contiennent le même nombre de CI. Seuls les CI des espaces
adresses 2 (données) et 5 (index secondaires niveau dense) sont regroupés en CA. Le
nombre de CI par CA est défini par l'utilisateur à la création du fichier (voir ordre
PREALLOC). UFAS-EXTENDED affecte les CA au fur et à mesure des besoins.
Choix de CASIZE
CASIZE est le nombre de CI de données par CA. Cette valeur détermine le nombre de
rubriques contenues dans un CI d'index. La valeur de CASIZE doit en général être la plus
grande possible, dans les limites suivantes :
20 <= CASIZE <= 100
L'utilisateur peut néanmoins fixer une valeur supérieure à 100, si cela permet d'éliminer
un niveau d'index (donc de réduire le nombre d'opérations E/S au cours du traitement).
Supposons, par exemple, que CISIZE = 4096 et CASIZE = 100. Le tableau 6-1 montre
que pour une unité de disques MS/D500, il y a 144 CI par cylindre. Dans ce cas, un CA
correspondra donc à un cylindre environ.
Si CASIZE est omis, UFAS-EXTENDED lui affecte une valeur à la première ouverture du
fichier. Cette valeur est calculée pour que le CA tienne dans un cylindre moins deux
pistes, avec CAFSP=0.
Si l'utilisateur souhaite conserver un certain pourcentage d'espace libre dans chaque CA
lors du chargement initial, il doit spécifier le paramètre CAFSP de l'ordre PREALLOC. La
valeur de CAFSP correspond à un pourcentage du nombre de CI constituant le CA.
Insertion de masse
Error! Bookmark not defined.Ce processus n'est pas disponible pour les fichiers UFAS
avec VERSION = PREVIOUS.
F-2
47 F2 04UF Rev04
Paramétrage des fichiers UFAS sous UFAS-EXTENDED
Exemple de réservation de place pour un fichier UFAS (VERSION = PREVIOUS)
PREALLOC R.HANS:V1:MS/D500
Création du fichier R.HANS dans le volume
V1 sur MS/D500.
UFAS = INDEXED
SIZE = 5000 UNIT = RECORD
INCRSIZE = 1000
CISIZE = 2048
CIFSP = 25
Ce fichier a une taille de 5000 articles, un
incrément de 1000 articles, une taille de CI
de 2048 octets. Le CI comporte 25%
d'espace libre (pour insertion ultérieure de 4
articles). La longueur d'article est de 120
octets. La clé, d'une longueur de 4 octets,
commence à l'octet 1. Le fichier est au
format UFAS. Un CA contient 30 CI, et 10%
d'espace libre (pour insertion ultérieure
de 3 CI).
RECSIZE = 120
KEYLOC = 1
KEYSIZE = 4
VERSION = PREVIOUS
CASIZE = 30
CAFSP = 10;
47 F2 04UF Rev04
F-3
UFAS-EXTENDED - Guide de l'utilisateur
F-4
47 F2 04UF Rev04
G. Batch Booster (Optimiseur d'E/S
Traitement par lots)
Error! Bookmark not defined.Error! Bookmark not defined.G.1
PRESENTATION
L'option Batch Booster (Optimiseur d'E/S Traitement par lots) apporte une amélioration
importante au niveau des performances d'entrée/sortie. Elle permet en effet des E/S
disques multiblocs - et non plus bloc par bloc -, d'où un gain de temps ELAPSED (temps
total écoulé) et CPU (temps processeur).
Batch Booster est également appelé option BPB (blocks per buffer - blocs par tampon),
du nom du paramètre qui permet de l'activer. Dans cette annexe, les termes "Batch
Booster" et "traitement BPB" sont donc indifféremment employés.
Batch Booster est une option payante (MI) de GCOS 7 HPS AP et EXMS version V7.
Batch Booster est décrit plus en détail dans un manuel qui lui est spécifiquement
consacré.
G.1.1
Mise en oeuvre de Batch Booster
Les paragraphes qui suivent décrivent les différentes manières d'activer Batch Booster.
G.1.1.1
Lancement externe au programme
Batch Booster peut être activé dans une rubrique de description d'activité ou par un
utilitaire, comme indiqué ci-dessous.
Ordre JCL
Rubrique de description d'activité
Paramètre
DEFINE
Utilitaire
BPB
INDEF
OUTDEF
PRTDEF
BPB
47 F2 04UF Rev04
G-1
UFAS-EXTENDED - Guide de l'utilisateur
G.1.1.2
Lancement au sein d'un programme
En COBOL et en langage C, Batch Booster n'est pas programmable. En GPL, utiliser la
primitive H_FD ou H_DEFINE/H_DCFILE avec le paramètre BPB.
G.1.2
Mode d'exécution du traitement BPB
UFAS-EXTENDED transfère plusieurs CIs depuis ou vers les tampons en une seule
opération d'E/S. Le nombre de CIs transférés dépend de la valeur du paramètre BPB
(comprise entre 2 et 255).
UFAS-EXTENDED réduit automatiquement la valeur de BPB de sorte que :
BPB * CISIZE soit inférieur à 64Ko.
G.2
CONDITIONS D'EXECUTION DU TRAITEMENT BPB
Pour que BPB s'exécute correctement, l'environnement de travail doit remplir les
conditions suivantes :
•
•
•
•
•
accès au niveau article,
valeur du paramètre BPB supérieure à 1,
application en mode BATCH monoprocess,
organisation de fichier SEQUENTIAL ou RELATIVE,
affectation de fichier suivante :
ONEWRITE/SPREAD
ONEWRITE/SPWRITE
NORMAL/SPREAD
NORMAL/SPWRITE
NORMAL/READ
NORMAL/WRITE
ou MONITOR/READ avec READLOCK=STAT,
•
•
•
•
•
mode d'ouverture INPUT, OUTPUT, ou APPEND,
mode d'accès SEQUENTIAL,
version CURRENT,
pas de journalisation,
pas de fonction GAC (General Access Control).
Lorsque ces conditions ne sont pas remplies, BPB est inopérant ; la valeur affectée à
BPB est ignorée et, implicitement, l'exécution s'effectue comme si elle était égale à 1. En
général, le process ne s'arrête pas prématurément et aucun message d'erreur ou code
retour n'est émis. En revanche, une valeur de BPB supérieure à 1 avec multi SCB (par
exemple, en cas d'accès à des fichiers UFAS sous IQS) provoque l'émission du code
retour CONFLICT.
G-2
47 F2 04UF Rev04
Batch Booster (Optimiseur d'E/S Traitement par lots)
G.3
BPB ET UTILITAIRES DE GESTION DE DONNEES
BPB fonctionne avec les utilitaires de gestion de données travaillant au niveau article ciaprès :
G.3.1
COMPARE
Sur les deux fichiers d'entrée et le fichier
de sortie, à condition que ces fichiers ne
soient pas des fichiers relatifs traités en
accès direct.
CREATE
Sur le fichier d'entrée ou le fichier de sortie,
à condition que ce fichier ne soit pas un
fichier relatif traité en accès direct.
PRINT
Sur le fichier d'entrée.
FILSAVE
Sur le fichier de sortie, à condition que ce
fichier soit un fichier disque UFAS.
Transfert de fichiers
L'utilitaire de transfert de fichiers admet BPB sur le fichier local uniquement. Par
conséquent :
• si le site local est en émission, BPB fonctionne sur le fichier d'entrée,
• si le site local est en réception, BPB fonctionne sur le fichier de sortie.
47 F2 04UF Rev04
G-3
UFAS-EXTENDED - Guide de l'utilisateur
G.3.2
G.3.2.1
Utilitaires de Tri/Fusion (SORT/MERGE)
Tri
L'utilitaire de tri (SORT) faut appel à la méthode d'accès UFAS comme suit.
Tri monoprocess
Les fichiers indexés UFAS, SORT fait toujours appel à la méthode d'accès UFAS (mais
UFAS BPB ne s'applique pas dans ce cas).
Pour les fichiers UFAS d'entrée séquentiels et relatifs, SORT fait toujours appel à la
méthode d'accès UFAS dans les cas suivants :
• SHARE = FREE, DIR, ONEWRITE ou (SHARE=MONITOR et READLOCK=STAT)
• ou "tous les volumes ne sont pas montés pour le fichier",
• ou TRUNCSSF est spécifié,
• ou il y a concaténation,
• ou REPEAT et CKPTLIM,
• ou DSL contient KEYADDR ou ADDATA ou ADDROUT.
Pour les fichiers UFAS de sortie séquentiels et relatifs, SORT fait toujours appel à la
méthode d'accès UFAS dans les cas suivants :
• SHARE différent de NORMAL,
• ou "tous les volumes ne sont pas montés pour le fichier",
• ou REPEAT et CKPTLIM.
Remarque :
G-4
Pour SHARE = MONITOR, (READLOCK = STAT) ou (ACCESS =
SPREAD ou SPWRITE) sont obligatoires pour INFILE. Pour
OUTFILE, ACCESS = SPWRITE est obligatoire si SHARE =
MONITOR.
47 F2 04UF Rev04
Batch Booster (Optimiseur d'E/S Traitement par lots)
Tri multiprocess
Les fichiers indexés UFAS, SORT fait toujours appel à la méthode d'accès UFAS (mais
UFAS BPB ne s'applique pas dans ce cas).
Pour les fichiers UFAS d'entrée (mode INPUT) séquentiels et relatifs, SORT fait toujours
appel à la méthode d'accès UFAS dans les cas suivants :
SHARE = FREE, DIR, ONEWRITE ou (SHARE=MONITOR et READLOCK=STAT)
• ou "tous les volumes ne sont pas montés pour le fichier",
• ou TRUNCSSF est spécifié,
• ou il y a concaténation,
• ou DSL contient
(KEYADDR ou ADDATA ou ADDROUT)
et
(START
ou HALT
ou (((INVREC^=CONTINUE) ou (ERROPT^=IGNORE)) et (RECFORM=V))
Pour les fichiers UFAS de sortie séquentiels et relatifs, SORT fait toujours appel à la
méthode d'accès UFAS dans les cas suivants :
• SHARE différent de NORMAL,
• ou "tous les volumes ne sont pas montés pour le fichier".
Remarques :
G.3.2.2
Pour SHARE = MONITOR, (READLOCK = STAT) ou (ACCESS =
SPREAD ou SPWRITE) sont obligatoires pour INFILE. Pour
OUTFILE, ACCESS = SPWRITE est obligatoire si SHARE =
MONITOR.
Fusion
L'utilitaire de fusion (MERGE) fait appel à la méthode d'accès UFAS dans les mêmes
conditions que SORT (à ceci près que les conditions DSL ne s'appliquent pas).
47 F2 04UF Rev04
G-5
UFAS-EXTENDED - Guide de l'utilisateur
G.4
BPB EN ENVIRONNEMENT GCL
Cette annexe traite principalement de l'emploi de BPB en traitement par lots, donc en
environnement JCL, mais l'environnement GCL peut également bénéficier de BPB.
En GCL, BPB est utilisable avec la commande EXEC_PG et les commandes d'appel des
utilitaires GCOS 7.
Pour plus d'informations, se reporter au manuel Batch Booster.
G-6
47 F2 04UF Rev04
Index
BSN
BUFPOOL
BUILD_FILE
A
ACCESS
Affectation de fichiers
ALCn
Appareils
Pool d'~
APPEND (mode d'ouverture)
APPLY NO-SORTED INDEX ON
Article
de longueur fixe
de longueur variable
Définition
Descripteur d'~ (RDW)
Format d'~ (RECFORM)
Insertion d'~s
Longueur d'~ (RECSIZE)
Articles de longueur fixe
Définition
groupés en blocs
non groupés en blocs
Articles de longueur variable
Définition
groupés en blocs
non groupés en blocs
ASCII (code ~)
ASGn
5-18
5-5, 5-6
6-47
5-16
2-3
4-11
1-5, 7-5
1-5, 7-6
1-4
4-25, 7-6
7-4
4-20
6-19, 7-4
2-6
1-5
7-5
7-5
2-6
1-5
7-8
7-6
B-16
5-6
B
BLKSIZE
Bloc
de données
de fichier
Descripteur de ~ (BDW)
Longueur de ~ (BLKSIZE)
Numéro de ~ (BSN)
Unité d'affectation (BLOCK)
Bloc de données
BLOCK (unité d'affectation)
Blocking factor
Voir facteur de groupage:
47 F2 04UF Rev04
7-4, 7-9
1-4
1-4
7-6
7-4, 7-9
7-6
6-3
1-9
6-3
6-22
7-6
5-28
6-39
C
Capacité d'une bande
7-9
Cartouche (bande en ~)
7-1
CI (intervalle de contrôle)
Compactage
4-21
Définition
1-5
En-tête de ~
2-6, 3-7, 4-25
Espace libre par ~
4-19, 6-24
Fichier relatif
3-7
Fichier séquentiel
2-6
Fichier séquentiel indexé
4-25
Nb. de ~ par cylindre
6-6
Nb. de ~ par piste
6-6
Réorganisation incrémentale
4-22
Répartition des différents ~
1-7
Unité d'affectation (CI)
6-39
CIFSP
4-19, 6-24
CISIZE
Choix de ~
6-23
Valeurs recommandées
6-6
Clé
Définition
4-2
Clé primaire
Adjonction d'articles
4-10
Définition
4-2
Clé secondaire
Définition
4-2
Code
ASCII
B-16
EBCDIC
B-4
COMFILE
6-46
CREATE_CT_FILE
7-11
CREATE_FILE
6-44
CREATE_MT_FILE
7-11
CREATE_TAPE_FILE
7-11
CYL (unité d'affectation)
6-3
Cylindre
Capacité
6-7
Définition
1-10
i-1
UFAS-EXTENDED - Guide de l'utilisateur
Nombre de CI par ~
Unité d'affectation (CYL)
6-6
6-3
D
DEFn
Densité d'enregistrement
Descripteur
d'article (RDW)
de bloc (BDW)
Disque FSA
Capacité
Disque non-FSA
Capacité
DSL (langage ~)
DUPKEY
5-23, 6-49, 7-14
7-9
4-25, 7-6
7-6
6-7
6-7
8-7
5-50
E
EBCDIC (code ~)
B-6
Espace
Fichier relatif
6-19
Fichier séquentiel
6-14
Fichier séquentiel indexé
6-26
inutilisé
2-6, 3-7, 3-8, 4-25
libre (CIFSP)
4-19, 6-24
Espace adresses
Contenu de chaque ~
4-13
Définition
1-7
EXTEND
(mode d'ouverture)
2-3, 3-4, 4-5, 4-6
i-2
7-2
7-4
7-10
3-6
3-3
3-3
2-4
2-2
2-4
2-3
4-10
4-2
4-6
4-5
6-22
4-13
5-49
B-16
1-12, 6-3
G
Groupe de paramètres
ALCn (réservation d'espace)
6-47
ASGn (affectation de fichiers)
5-6
DEFn (définition de fichiers)
5-23, 6-49, 7-14
I
F
Facteur de groupage
FBO
Fichier
Affectation
Extension dynamique
Extension statique
Fragment
Intégrité
Journalisation
Labels début de ~
Migration VBO-FBO
multivolume
Paramétrage
Partage
permanent
Protection
relatif
Sauvetage (File Salvager)
séquentiel
séquentiel indexé
sur bande
temporaire
Fichier bande
Attributs
Création
Fichier relatif
1ère utilisation d'un ~
Mode d'accès
Mode d'ouverture
Fichier séquentiel
1ère utilisation d'un ~
Généralités
Mode d'accès
Mode d'ouverture
Fichier séquentiel indexé
1ère utilisation d'un ~
Généralités
Mode d'accès
Mode d'ouverture
Paramétrage
Structure
FLNAV
Format standard GCOS7/ASCII
(bande)
Fragment (de fichier)
6-22
1-9
5-5, 5-6
5-52, 6-12
5-52, 6-56
1-12, 6-3
5-48
5-46
B-7
8-6
5-12
6-22
5-18
7-2
5-46, 5-48
3-2
5-50
2-2
4-2
7-1, 7-2
INCRSIZE
Index
de niveau inférieur
de niveau supérieur
Définition
dense
primaire
secondaire
Index primaire
Structure
Index secondaire
Création
Mise à jour
Structure
Insertion de masse
5-52, 6-12
4-15
4-14
4-3
4-14
4-16
4-16
4-16
4-11
4-12
4-16
6-25
J
JCL-->GCL (correspondance)
Journal
D-1
47 F2 04UF Rev04
Index
Après
Avant
5-47
5-46
K
KEYLOC
KEYSIZE
6-31
6-31
L
Label
Informations
Label (bande)
Début de fichier
Début de volume
Fin de fichier
Types de ~
LIST_FILE
LIST_FILE_SPACE
LOAD_FILE
5-21
7-3
B-7
B-6
B-11
B-4
6-52
6-53
8-3
M
MAINTAIN_MIGRATION
8-6
Marques réfléchissantes
B-5
MAXXET
6-3
MNMIG
8-6
Mode d'accès
direct
3-5, 4-8
dynamique
3-6, 4-9
séquentiel
2-4, 3-4, 4-6
Mode d'accès et performances
6-22
Mode d'ouverture
Fichier relatif
3-3
Fichier séquentiel
2-3
Fichier séquentiel indexé
4-5
MODIFY_FILE
6-54
MODIFY_FILE_SPACE
6-56
MOUNT
5-14
Multivolume
Fichier ~ bande
5-14
Fichier ~ disque
5-14
Généralités
5-12
Mode d'ouverture d'un fichier ~
2-4
O
ONEWRITE
Optimisation (tuning)
Gestion des tampons
Organisation de fichier
Voir fichier:
Organisation relative
Accès direct
Accès dynamique
Accès séquentiel
Généralités
Organisation séquentielle
Accès séquentiel
Organisation séquentielle indexée
Accès direct
Accès dynamique
Accès séquentiel
Espace interbloc
5-18
5-40
1-3
3-5
3-6
3-4
3-2
2-2
2-4
4-2
4-8
4-9
4-6
7-9
P
Partage (de fichier)
5-18
Passage UFAS/UFAS-EXTENDED
8-5
Piste
Définition
1-10
POOL
5-3, 5-4, 5-16
Pool
d'appareils
5-16
de tampons
5-28
POOLSIZE
5-26
R
Randomisation
Analyse des fréquences
Changement base numération
Division par nombre premier
Elévation au carré/pliage/extraction
RDW
Règles de recouvrement
Réservation d'espace
Commandes de ~
Exemples avec BUILD_FILE
Exemples avec CREATE_FILE
RRN (numéro relatif d'article)
Randomisation
A-6
A-5
A-2
A-4
7-6
5-21
6-39
6-41
6-44
3-2
A-1
N
NBBUF
NORMAL
5-23, 5-31
5-18
S
Sauvetage
Fichier avec clés secondaires
Fichier sans clés secondaires
SCIDXNAV
47 F2 04UF Rev04
5-51
5-50
5-49, 5-51
i-3
UFAS-EXTENDED - Guide de l'utilisateur
SECIDX
SHARE
SIZE
SORT_INDEX
SPLIT
6-32
5-18
6-11
4-11, 5-49, 5-51
6-4, 6-11
T
Tampon
Définition
Gestion des ~s
Optimisation
Pool de ~s
5-24
5-24
5-40
5-28
U
Utilitaires
Niveau fichier
Niveau volume
8-8
8-11
V
VBO
Volume
Bande
de manoeuvre
Début de ~ bande
Formats de ~s bande
nommément désigné
Numéro d'immatriculation
Numéro d'ordre
résidant
Volume FBO
Organisation
Volume VBO
Adresse sur un ~
Organisation
VTOC
1-10
7-2
5-10
B-6
B-4, B-13
5-11
B-7
B-7
5-9
1-9
1-11
1-10
5-22
X
Xetent
Voir fragment:
i-4
6-3
47 F2 04UF Rev04