|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : mars 2004 Messages : 1 149 ![]() |
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. |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Inscription : octobre 2007 Messages : 449 ![]() |
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. |
|
|
00
|
|
|
#3 | ||
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 508 ![]() |
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 :
.
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ Dernière modification par Peut-êtreUneRéponse ; 14/09/2009 à 14h26. |
||
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : mars 2004 Messages : 1 149 ![]() |
Merci pour cette réponse complète.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com