Sur un PC (Windows), cela signifie généralement que votre disque dur est plein. Mais sur un Mainframe (z/OS), la logique est plus subtile : le disque n'est pas forcément plein, mais vous avez dépassé l'espace qui vous était alloué.
Voici comment comprendre et résoudre ce problème d'allocation d'espace, basé sur les conseils d'experts du forum.
1. Le Diagnostic : L'allocation d'espace sur Mainframe
Contrairement à Windows où un fichier grandit tant qu'il y a de la place, le Mainframe exige que l'espace soit défini à l'avance (pré-alloué) via des Extents.
Le système fonctionne en deux temps :
Allocation Primaire : Un gros bloc d'espace réservé au démarrage du job.
Allocations Secondaires : Des petits blocs supplémentaires que le système va chercher si le bloc primaire est plein (généralement limité à 15 ou 16 extensions).
2. Solution 1 : La Compression (Le réflexe immédiat)
Avant de demander plus d'espace disque à l'administration, essayez de réduire la taille de vos données. L'expert David suggère d'activer la compression binaire. Sur des données volumineuses comportant du texte ou des répétitions, cela peut réduire la taille de 50% à 80%.
/* Compression activée pour cette table spécifique */
data WORK.A (compress=yes);
set DB2.GRANDE_TABLE;
run;
/* OU activée globalement pour toute la session */
options compress=yes;
1
/* Compression activée pour cette table spécifique */
2
DATA WORK.A (compress=yes);
3
SET DB2.GRANDE_TABLE;
4
RUN;
5
6
/* OU activée globalement pour toute la session */
7
options compress=yes;
Note : Cela augmente légèrement l'usage CPU, mais réduit considérablement les I/O (Entrées/Sorties), ce qui est souvent bénéfique sur Mainframe.
3. Solution 2 : Modifier les Paramètres JCL (WORK)
Parfois, un seul disque physique (DASD volume) ne suffit pas pour contenir votre table temporaire, même en utilisant tout l'espace disponible (environ 4300 cylindres sur les anciens modèles 3390).
L'expert Chuck explique comment étendre la bibliothèque WORK sur plusieurs volumes physiques. Cela nécessite de modifier le JCL pour concaténer plusieurs allocations disques.
Note : Cette technique est réservée aux utilisateurs avancés ayant accès à la configuration JCL détaillée.
Si vous rencontrez l'erreur "File Full" sur Mainframe :
Comprimez (COMPRESS=YES) : C'est simple et souvent suffisant.
Augmentez l'allocation (WORK='Prim Sec') : Demandez plus de cylindres dans votre JCL.
Vérifiez le SMS : Parfois, la classe de stockage (Storage Management Subsystem) limite automatiquement la taille des fichiers. Il faudra alors contacter l'administrateur système.
Avertissement important
Les codes et exemples fournis sur WeAreCAS.eu sont à but pédagogique. Il est impératif de ne pas les copier-coller aveuglément sur vos environnements de production. La meilleure approche consiste à comprendre la logique avant de l'appliquer. Nous vous recommandons vivement de tester ces scripts dans un environnement de test (Sandbox/Dev). WeAreCAS décline toute responsabilité quant aux éventuels impacts ou pertes de données sur vos systèmes.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.