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

Cobol Discussion :

problème d'écriture dans un fichier


Sujet :

Cobol

  1. #1
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut problème d'écriture dans un fichier
    Bonjour,
    On rencontre un problème sérieux ce matin.
    En effet, on arrive pas à écrire dans un fichier via son logique.
    en mode débogage lors de l'écriture on a le statut 24.
    Sur Internet on lit que ce 24 signifie :

    "Relative and indexed files only. Indicates a boundary violation. Possible causes:
    Attempting to write beyond the externally defined boundaries of a file
    Attempting a sequential WRITE operation has been tried on a relative file, but the number of significant digits in the relative record number is larger than the size of the relative key data item described for the file."

    Mais je ne vois pas trop ce qu'on doit faire !
    Si vous avez une piste les amis.
    Merci d'avance.
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  2. #2
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    Il faudrait nous donner un peu plus de détails sur le fichier sur lequel tu as le plantage.

    Apparemment, le cas le plus fréquent, tu essaies d'écrire dans un fichier direct avec une valeur de la relative key dépassant le max autorisé (alloué) ou dans un indexé qui a atteint sa taille maximale et qu'il n'y a pas d'incrément possible. Je pense plus à ce deuxième cas puisque tu fais l'ajout à travers un logique. Si c'est le cas, fais un CHGPF du fichier physique en mettant plus d'enregistrements et d'incréments ou en mettant la taille à *NOMAX

    Donne nous les messages CPF associés au problème.

  3. #3
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Marrant, j'ai eu le même hier sur un VSAM. L'exploit a trouvé(j'étais assez sec, moi aussi) : on allouait un VSAM à une certaine taille(1,2M de lignes), et on écrivait par programme dedans, ligne à ligne. Comme on avait 1,24M lignes, boum. Ils ont agrandi le fichier VSAM alloué, et tout a bien marché.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  4. #4
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Et comment on agrandit sa taille ?
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  5. #5
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    ...boum. Ils ont agrandi le fichier VSAM alloué, et tout a bien marché.
    Salut el_slapper.

    En fait, le DB2 de l'AS/400 (et suivants) fait juste pchiiiiiiiit et demande ce qu'il faut faire pour ne pas perdre l'enregistrement en cours, sauf si on a interdit volontairement l'incrémentation de la taille.

    (DB2/400 est en fait basé sur des fichiers SAM, DAM, ISAM et même SRC et les index secondaires)

  6. #6
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Bonjour,
    il ne s'agit pas d'un problème de *NOMAX (le physique est déjà compilé avec le *NOMAX).

    Si tu peux m'expliquer ceci "tu essaies d'écrire dans un fichier direct avec une valeur de la relative key dépassant le max autorisé (alloué)" ?? Ce max est il paramétrable ? Comment ?

    Je n'ai pas de message, lorsque je débeugue le programme qui essaie d'écrire dans le fichier à problème, le statut du fichier est à 24 !


    Citation Envoyé par Hédhili Jaïdane Voir le message
    Bonjour.

    Il faudrait nous donner un peu plus de détails sur le fichier sur lequel tu as le plantage.

    Apparemment, le cas le plus fréquent, tu essaies d'écrire dans un fichier direct avec une valeur de la relative key dépassant le max autorisé (alloué) ou dans un indexé qui a atteint sa taille maximale et qu'il n'y a pas d'incrément possible. Je pense plus à ce deuxième cas puisque tu fais l'ajout à travers un logique. Si c'est le cas, fais un CHGPF du fichier physique en mettant plus d'enregistrements et d'incréments ou en mettant la taille à *NOMAX

    Donne nous les messages CPF associés au problème.
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  7. #7
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par JauB Voir le message
    Et comment on agrandit sa taille ?
    J'avais dit par la commande CHGPF :
    Si c'est le cas, fais un CHGPF du fichier physique en mettant plus d'enregistrements et d'incréments ou en mettant la taille à *NOMAX
    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
    Physical file  . . . . . . . . . > MONFICHIER    Name                        
      Library  . . . . . . . . . . . >   MABIBLIO    Name, *LIBL, *CURLIB        
    System . . . . . . . . . . . . .   *LCL          *LCL, *RMT, *FILETYPE       
    Source file  . . . . . . . . . .   *NONE         Name, *NONE                 
      Library  . . . . . . . . . . .                 Name, *LIBL, *CURLIB        
    Expiration date for member . . .   *SAME         Date, *SAME, *NONE          
    Maximum members  . . . . . . . .   *SAME         Number, *SAME, *NOMAX       
    Access path size . . . . . . . .   *SAME         *SAME, *MAX4GB, *MAX1TB     
    Access path maintenance  . . . .   *SAME         *SAME, *IMMED, *REBLD, *DLY 
    Access path recovery . . . . . .   *SAME         *SAME, *NO, *AFTIPL, *IPL   
    Force keyed access path  . . . .   *SAME         *SAME, *NO, *YES            
    Member size:                                                                 
      Initial number of records  . .   *SAME         1-2147483646, *NOMAX, *SAME 
      Increment number of records  .   *SAME         0-32767, *SAME              
      Maximum increments . . . . . .   *SAME         0-32767, *SAME              
    Allocate storage . . . . . . . .   *SAME         *NO, *YES, *SAME
    Soit tu mets "Initial number of records" à *NOMAX,
    soit tu modifies le "Maximum increments" et "Increment number of records". A la création du fichier, ces paramètres sont à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Member size:                                                           
      Initial number of records  . .   10000         1-2147483646, *NOMAX  
      Increment number of records  .   1000          Number                
      Maximum increments . . . . . .   3             Number
    En mettant "Initial number of records" à *NOMAX, tu ne contrôles plus la taille.

    A mon avis, le système t'a demandé via le programme ou l'utilitaire utilisé (DFU par exemple) si tu voulais faire une extension automatique pour l'enregistrement en cours ou pour un certain nombre d'enregistrements.

  8. #8
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    J'ai demandé "comment augmenter la taille "car j'ai cru qu'il y a autre chose à augmenter autre que le *NOMAX au niveau du Initial number of records !

    Donc je confirme qu'il ne s'agit pas du *NOMAX, il faut chercher sur autre chose !
    Si vous avez d'autres pistes, je suis testeur
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  9. #9
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Re,
    on a réorganisé le fichier à problème, lors de la réorganisation on a eu le message suivant :

    Limite mémoire atteinte pour membre MYFILE.
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  10. #10
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Re,
    on a réorganisé le fichier à problème, lors de la réorganisation on a eu le message suivant :

    Limite mémoire atteinte pour membre MYFILE01.

    N.B: MYFILE01 est un logique sur le physique MYFILE.
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  11. #11
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    - Tu n'as aucun message dans la joblog (DSPJOBLOG) où le programme s'exécute ?
    - Ton fichier physique (parent du logique), il a été crée comment ? Il n'a tout de même pas dépassé les 2.147.483.646 enregistrements ?

    Pour un fichiers direct, quand il est accédé en tant que tel par un programme cobol, si au moment du write la relative key contient un nombre supérieur à celui de la taille, il y a plantage et il n'y a pas de possibilité de l'agrandir automatiquement.

    Mais comme tu as déjà mis *NOMAX et que tu y accède par un logique, je ne vois pas ce cas arriver.

    Il reste peut être l'espace alloué aux chemins d'accès, paramètre ACCPTHSIZ dans la création du physique ou du logique, qui peut prendre les valeurs *MAX1TB ou *MAX4GB.

    Number of records contained in a file member 4,294,967,294 records
    .../...
    For files with keyed sequence access paths, the maximum number of records in a member varies and can be estimated using the following formula: 2,867,200,000 / (10 + (.8 x key length))

  12. #12
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Tiens jette un coup d'oeil les database file sizes en V5R3 :
    http://publib.boulder.ibm.com/infoce...bafoappmax.htm

  13. #13
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Comment je peux avoir cette relative key pour voir s'elle est vraiment supérieure à la taille du fichier ?
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  14. #14
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par JauB Voir le message
    Comment je peux avoir cette relative key pour voir s'elle est vraiment supérieure à la taille du fichier ?
    Attends, il faut savoir si tu as un traitement de ce genre. Est ce que ton programme qui plante ou un autre programme concurrent, accède au fichier physique, en même temps, en le déclarant ORGANIZATION RELATIVE... RELATIVE KEY ?

  15. #15
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Je suis sur le CHAT DVP si ça t'intéresse, tu peux m'y rejoindre

  16. #16
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Bon, il s'agit d'un progiciel utilisé par plusieurs gestionnaires. Toutes les transactions se passent correctement sur tous les fichiers à part un seul fichier où l'écriture ne se passe pas !!

    Le programme qui permet d'écrire dans ce fichier déclare le fichier comme :

    ORGANIZATION INDEXED
    ACCESS DYNAMIC


    !
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  17. #17
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    J'y suis maintenant sur Développement des applicatifs.

    Citation Envoyé par Hédhili Jaïdane Voir le message
    Je suis sur le CHAT DVP si ça t'intéresse, tu peux m'y rejoindre
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  18. #18
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    D'accord.

    Donc je pense que le fichier a atteint les limites permises par la version de ton OS.

    En attendant, tu peux le vider des enregistrements inutiles en le déplaçant dans un autre fichier ou un autre membre du même fichier, dans ce dernier cas, attention aux logiques ! Ils sont par défaut basés sur tous les membres du physique. Cette possibilité peut s'avérer intéressante : physiquement les données sont dans plusieurs membres, mais les logiques accèdent à toutes.

    Le multi-membre pose problème avec SQL (et l'intégrité référentielle). Pour SQL, il faut passer par les alias à chaque fois.

Discussions similaires

  1. problème d'écriture dans un fichier
    Par cartonol dans le forum Oracle
    Réponses: 12
    Dernier message: 17/08/2006, 17h08
  2. [FTP] problème d'écriture dans un fichier
    Par oops! dans le forum Langage
    Réponses: 14
    Dernier message: 08/08/2006, 16h52
  3. problème d'écriture dans un fichier
    Par seurjer dans le forum Langage
    Réponses: 8
    Dernier message: 01/06/2006, 09h15
  4. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  5. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28

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