Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > z/OS
z/OS Forum d'entraide sur z/OS et MVS (Multiple Virtual Storage), les systèmes d'exploitation des ordinateurs « mainframes » IBM : JCL, Tso, Ispf, Vsam, Racf, SMS, Cics, Ims, OPC, Ca-7, Control-M, Dialog Manager ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 09/09/2009, 14h49   #1
Membre confirmé
 
Inscription : mars 2004
Messages : 1 149
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 149
Points : 224
Points : 224
Par défaut concaténation de plusieurs de fichiers

Bonjour,

j'ai un trou...

Je sais qu'il est possible de concaténer des fichiers de DCB différents avec
ICEGENER (contrairement à IEBGENER).

mais quelle est la règle exactement.

On met les fichiers qui ont la plus grande longueur en premier et les plus petits
à la fin , c'est bien ça ?

Merci.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2009, 18h18   #2
Membre expérimenté
 
Avatar de Homer-ac
 
Inscription : octobre 2007
Messages : 449
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 449
Points : 518
Points : 518
A mon avis on ne peut pas concatenner des fichiers de LRECL différents, ni avec IEBGENER, ni avec ICEGENER, ni même avec un sort fields=copy trivial. Pour le blksize pas de pb mais pour le lrecl, il faut je pense passer par un step pour mettre au format du plus grand lrecl le plus petit.
ICEGENER est fait pour bénéficier des techniques de cache du controleur. Il est donc plus rapide qu'IEBGENER, encore que l'on peut faire en sorte à l'install qu'un EXEC IEBGENER execute DFSORT, mais il me semble cependant que dans certains cas de SYSIN, ICEGENER renvoie la balle à IEBGENER. Donc il est sans doute plus pratique d'utiliser le plus souvent un sort fields=copy qu'iebgener avec tous les bénéfices de la doc dfsort pour les erreurs et les cas particuliers. Pour avoir comparé les performances des deux et apprécier moyennement les techniques de ruptures sans tenir compte des doublons d'IEBGENER, il me semble qu'IEBGENER est à mettre au placard sauf à faire en sorte comme sur certains sites qu'il appelle DFSORT. Mais ce n'est qu'un avis personnel !

nb. j'ai un peu hésité avant d'ajouter cette remarque et je sais que je n'arriverai pas à être clair, mais pour revenr à concatener des LRECL différents, même en imaginant un PGM Assembleur spécial ça me semble impossible. le LRECL est dans le DCB du fichier et est nécessaire à la méthode d'accès. Pour du variable on peut toujours s'en sortir, mais pour du FB c'est IO erreur assuré en QSAM. Il faudrait imaginer un programme Assembleur de lecture BSAM par blocs mais alors comment calculer l'enregistement logique à rendre s'ils ne sont pas identiques ? En variable pas de pb, c'est dans le record. En fixe aucun autre moyen que de récupérer le LRECL à l'OPEN, donc c'est perdu d'avance. Bref, s'il existe un seul programme capable de lire des fichiers concaténés FB de LRECL différents, j'aimerai voir, ça me semble une prouesse technique assez invraissemblable.

Dernière modification par Homer-ac ; 11/09/2009 à 22h52.
Homer-ac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2009, 13h58   #3
Membre chevronné
 
Avatar de Peut-êtreUneRéponse
 
Homme Guillaume VENTRE
z/OS Technical Leader
Inscription : décembre 2006
Messages : 508
Détails du profil
Informations personnelles :
Nom : Homme Guillaume VENTRE
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : z/OS Technical Leader
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2006
Messages : 508
Points : 609
Points : 609
Il existe une possibilité, à mon sens à éviter en production, qui consiste à écrire les enregistrements du fichier dont le LRECL est le plus petit à la suite du fichier dont le LRECL est le plus grand :

Code :
1
2
3
4
5
//COPIE    EXEC PGM=ICEGENER                
//SYSUT1   DD  DSN=MON.FICHIER.LRECL080,DISP=SHR
//SYSUT2   DD  DSN=MON.FICHIER.LRECL120,DISP=MOD
//SYSIN    DD  DUMMY                        
//SYSPRINT DD  SYSOUT=*
Ce n'est pas à proprement parler d'une concaténation, sinon comme le dit Homer-ac il y aurait des pb de DCB, avec le renvoi d'un code 12.

.
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★

Dernière modification par Peut-êtreUneRéponse ; 14/09/2009 à 14h26.
Peut-êtreUneRéponse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2009, 14h02   #4
Membre confirmé
 
Inscription : mars 2004
Messages : 1 149
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 149
Points : 224
Points : 224
Merci pour cette réponse complète.
sam01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 18h05.


 
 
 
 
Partenaires

Hébergement Web