IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

z/OS Discussion :

record smf pour fichier sequentiel


Sujet :

z/OS

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut record smf pour fichier sequentiel
    Bonjour à tous,

    je tente d'extraire des records smf pour savoir par quel traitement à été modifié un fichier sequentiel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //SELCSMF  EXEC PGM=IFASMFDP                                
    //SYSPRINT DD SYSOUT=*                                       
    //SMFSYST  DD DISP=SHR,DSN=ACF.XX.SMF,VOL=SER=258555      
    //SMFPRFA  DD DISP=(NEW,CATLG),DSN=CFFP.XX.SMF01,       
    //         SPACE=(CYL,(100,50),RLSE),  
    //         DCB=(RECFM=VBS,LRECL=32760,BLKSIZE=13004)         
    //SYSIN    DD *                                              
            INDD(SMFSYST,OPTIONS(DUMP))                          
            OUTDD(SMFPRFA,TYPE(14,15,60,61,63,65,66,67,234,235)) 
            USER2(PREPREFA)
    je ne parviens pas à browser le fichier résultat, j'ai le message suivant :

    LRECL and block size are inconsistent for RECFM=V data set


    ai-je manqué une étape ?

  2. #2
    Membre averti Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Points : 400
    Points
    400
    Par défaut
    Bonjour,

    Modifie le DCB de ton fichier de sortie comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DCB=(RECFM=VB,LRECL=32756,BLKSIZE=32760)
    S'il n'y a pas de solution c'est qu'il n'y a pas de problème.

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Ca marche pas, pas moyen de le lire,

    j'ai pratiquement tout essayé.

    Est-ce que quelqu'un à une idée...

  4. #4
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    Fais deux essais. 1 en virant le DCB je pense que ça devrait le faire,
    sinon, en le forçant en VB 8192 (et pas VBS).
    J'utise ce JCL par exemple qui fonctionne, pour des information statistiques de contrôle RACF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    //STEP001  EXEC PGM=IFASMFDP                         
    //SMFDATA1 DD  DISP=SHR,DSN=SYS1.MAN?                
    //OUTDD    DD  DSN=&SYSUID()..RACF.IRRADU00,         
    //             DISP=(,CATLG,DELETE),                 
    //             RECFM=VB,LRECL=8192,BLKSIZE=0,        
    //             UNIT=SYSALLDA,SPACE=(CYL,(10,5),RLSE) 
    //SMFOUT   DD  DUMMY                                 
    //SYSPRINT DD  SYSOUT=*                              
    //ADUPRINT DD  SYSOUT=*                              
    //SYSIN    DD  *                                     
     INDD(SMFDATA1,OPTIONS(DUMP))                        
     ABEND(NORETRY)                                      
     OUTDD(SMFOUT,TYPE(000:255))                         
     USER2(IRRADU00)                                     
     USER3(IRRADU86)                                     
    //                                                   
    //* DATE(2000255,2000256)                            
    //* START(1500)                                      
    //* END(2400)

  5. #5
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Pas moyen, ça fonctionne pas.

    Ca me forcce le DCB à

    PS VBS 32767 27998


    C'est le programme qui doit faire ça.

  6. #6
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    Ca doit venir du format de ta K7 en entrée.
    Regardes tes fichers SYS1.**.MAN1, MAN2 ... par un LISTCAT
    En principe ils sont en 4088, d'où le 4092 en sortie VB.
    (Tu peux vérifier celui qui est actif par une commande /D SMF).

    J'ai passé quelques vérifs par curiosité.
    Aucun pb directement depuis les fichiers MAN,
    Depuis une sauvegarde (j'ai tout par un REPRO en VB 32754) les SYSIN que j'utilise d'habitude ne vont plus). En attendant puisque le maxi dépend des enregistrements trappés dans SMF regardes si un REPRO d'un MAN actif sur un PS VB 32754 prend tout, Il manque qque chose dans le SYSIN et je continue à chercher, mais je pense quand même qu'il faut recopier ta casette de VBS sur du VB en step préalable. Reste à trouver le bon LRECL. un repro d'un SYS1.MAN actif t'éclairera. 32754 devrait coller. Sur le z/OS que j'utilise les enregistrements SMF trappés sont les défauts d'install.

  7. #7
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    le souci c'est que le fichier man date du jour présent,

    et le fichier qui m'interesse est une K7 créée fin janvier. Et c'est les données qui sont dans cette K7 qui m'intéresse.

    En effet, la K7 à le format suivant :

    RECFM = VBS LRECL = 032760 BLKSIZE= 013004


    Il faut que je trouve un moyen de rendre ce fichier lisible après l'avoir descendu su fichier séquentiel...

    Avec un sort filed copy peut-être...

  8. #8
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    Le pb est qu'il me semble que IFASMFDP est fait pour vider les MAN (option DUMP) avant de les réinitaliser ensuite (option CLEAR). Pas pour les lister.
    Si tu veux réutiliser IFASMFDP pour des extractions je n'ai pour le moment rien trouvé de mieux que de repasser par un VSAM de travail, ensuite depuis ce dernier plus de pb.
    Exemple de JCL (LRECL au maxi : 32756) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    //STEP001  EXEC PGM=IDCAMS                                           
    //SYSPRINT DD  SYSOUT=*                                              
    //IN1      DD DSN=SYS1.????.MAN1,DISP=SHR                            
    //OUT      DD DSN=MYUSERID.WORK.OUTPUT,                             
    //           DISP=(NEW,CATLG),UNIT=SYSALLDA,SPACE=(TRK,(45,45),RLSE),
    //           DCB=(BLKSIZE=0,LRECL=32756,RECFM=VB)                    
    //SYSIN    DD  *                                                     
      REPRO IFILE(IN1) OFILE(OUT)                                        
    //*---------------------------------------------------*              
    //* .                     DEFINITION DU VSAM DE TRAVAIL              
    //DEFIN01  EXEC PGM=IDCAMS                                           
    //SYSPRINT DD SYSOUT=*                                               
    //IND1     DD DSN=MYUSERID.WORK.OUTPUT,DISP=SHR                     
    //SYSIN    DD *                                                      
     DEL MYUSERID.SMFWORK.CW CLUSTER PURGE                               
     SET MAXCC = 0                                                       
     DEFINE CLUSTER                    -                                 
            (NAME (MYUSERID.SMFWORK.CW) -                                
             MODEL(SYS1.????.MAN1)     -                                 
             FREESPACE(0 0)            -                                 
             VOL(MYVOLD)               -                                 
             CYL(1 1) )                -                                 
         DATA                          -                                 
            (NAME (MYUSERID.SMFWORK.CW.DATA) -                           
            CISZ(4096))                                                  
     REPRO INFILE(IND1) OUTDATASET(MYUSERID.SMFWORK.CW)                  
    //*
    Tu auras sans doute besoin avant de passer le fichier de VBS en VB avant,
    Tu as un exemple par SORT dans la SYS1.SAMPLIB : CSFSMFJ
    NB, en regardant rapidement dans la SYS1.SAMPLIB j'ai aussi noté un REXX ou deux pour des extractions, mais je n'ai pas vérifié plus loin, chaque traitement sur un type d'enreg. SMF étant bien entendu un cas particulier.

  9. #9
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Merci beaucoup de passer du temps sur mon problème.

    Juste une dernière question avant que ja fasse des tests :

    Le fichier vsam que je vais obtenir, je le descends sur un fichier sequentiel calssique,

    c'est bien ça ?

  10. #10
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    c'est tout à fait ça, extraction pour un LRECL donné en fonction du ou des types d'enregistrements SMF voulus sur un fichier PS. La difficulté étant ensuite d'analyser ces enregistrements distincts pour chaque type. IBM fournit par exemple des modèles ICETOOL pour des listes détaillées RACF.
    un bon réflexe, faire une recherche (3.14 ou commande SRCHFOR) sur SYS1.SAMPLIB pour voir si des JCL ou des REXX ou autres utilitaires peuvent aider. Sinon comme d'hab, la doc.

  11. #11
    Candidat au Club
    Inscrit en
    Août 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Août 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Si tu as DFSORT on peut lire et sortir des records SMF vers un fichier en FB.

Discussions similaires

  1. compatibilité des réels avec pascal (pour fichier de record)
    Par jacquesberger dans le forum Langage
    Réponses: 2
    Dernier message: 12/08/2005, 19h58
  2. Réponses: 3
    Dernier message: 27/01/2004, 18h46
  3. Stocker un record dans un fichier
    Par ushu dans le forum Langage
    Réponses: 7
    Dernier message: 13/12/2002, 15h51
  4. [Kylix] Composant IBM pour fichiers XML
    Par Mister Nono dans le forum EDI
    Réponses: 1
    Dernier message: 29/09/2002, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo