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