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 :

Limite mémoire dans un programme


Sujet :

z/OS

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Limite mémoire dans un programme
    Bonjour,

    Je souhaiterais avoir la confirmation (via la doc d'ibm serait l'idéal) de l'espace mémoire maximum qui peut transiter dans une zone de communication entre un programme principal et un sous programme en mode batch.
    On m'évoque une limite à 32 ko sauf qu'en déclarant plus je n'ai pas de problème ni à la compil ni à l'execution, donc est-ce une limite au dela de laquelle il n 'y a plus de garantie de conservation des données ? ou est-ce une limite qui n'existe plus ?
    De plus peut on me confirmer (via la doc d'ibm serait l'idéal) que l'appel d'un programme en dynamique permet la conservation des données en working storage.

    Merci par avance pour tout.

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Quel langage et quelle version de compilateur ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Bonjour effectivement j'ai été un peu léger en info ... programmation cobol version 3.4.1 sur ZOS 1.9. Par contre la version du compilateur ?
    Si cela est toujours intéressant et si tu me dis où je peux trouver l'info j'irai la chercher.

    Merci par avance.

  4. #4
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    Bonjour
    A ce genre de question, je répond "ca dépend".
    Et "ca dépend c'est trop long"

    Plus sérieusement, regarde ces liens
    ws et addressabilite

    données et partage

  5. #5
    Membre averti
    Femme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 179
    Points : 350
    Points
    350
    Par défaut
    bonjour , ici tu parles de Linkage entre programmes , le programme appelant passe à l'appelé une adresse (en by reference biensur), la taille limite de ta linkage,(plutot des niveaux 01 de ta linkage) est en fait la taille limite acceptée par le compilateur sur les niveau 01 de la working du programme appelant.

    je n'ai plus les chiffres en tête, je t'invite à regarder dans le programing Guide de la version de ton compilateur Cobol, mais avec les derniers compilateurs cobol for enterprise on atteint largement plusieurs mega sur un niveau 01, en tout cas aucune limite à 32k.

  6. #6
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Enterprise COBOL for z/OS v3.4

    Limite de la Linkage Section :
    134 213 631 octets.

    Source :
    Enterprise COBOL for z/OS V3.4 Langage Reference - Appendix B Compiler limits

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Merci pour toutes ces réponses qui confirment ce que je pensais.

    Par contre je ne dois pas être doué et mon anglais limité car je n'arrive pas à obtenir la réponse sur la deuxième question : est ce qu'un appel à un sous programme (tout en cobol) en dynamique permet à ce sous programme de garder en mémoire proprement (working storage) les valeurs obtenues au précédent appel.

  8. #8
    Membre averti
    Femme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 179
    Points : 350
    Points
    350
    Par défaut
    bonjour,

    alors... ça dépend.. en général oui, sauf si
    1 - tu as mis un INITIAL dans le programme appelé
    2 - si entre l'appelant et l'appelé un programme non conforme LE est exécuté. (PG1 call PG no LE call PG2);
    ou plus généralement, tant que tes 2 programmes tournent dans la même enclave LE et que l'enclave n'est pas "cassée' normalement tu conserves tes valeurs en working)
    3 -si l'appelant fait un CANCEL de l'appelé

  9. #9
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Alors là tu me parles chinois !!!

    Déja je ne connais les ordres INITIAL/CANCEL (non utilisé chez nous) mais si effectivement il a pour but d'initialiser le contenu de la working effectivement sont contenu n'est plus accessible ...

    Ensuite et surtout comment un des programmes cobol peut ne pas être LE conforme ?
    Qu'est ce qu'une enclave LE et comment/par qui peut elle être cassée ?

    Merci par avance de tes réponses et de l'intéterêt porté à mon problème.

  10. #10
    Membre averti
    Femme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 179
    Points : 350
    Points
    350
    Par défaut
    bonjour,

    tu trouveras les principes LE ici
    http://publib.boulder.ibm.com/infoce...appldev_91.htm

    un programme Cobol sera toujours LE sauf s'il a été compilé avec le vieux compilateur Cobol OS/VS ou les 1ere versions du COBOL II (on le repère avec les routines de type ILBO quand tu browse le load module). mais bon ça m'étonnerait qu'il en reste encore..
    un non conforme LE ce sera plutot un programme Assembleur (ou on n'a pas inclus les macro CEEBENTRY ce qui est souvent le cas) ou un METAL C/C++.

    Pour résumer Le cassage d'une enclave LE, ça arrive surtout avec Cobol. Une enclave LE est initié à l'exécution d'un 1er COBOL dans un Run, si un des autres programmes dans cette enclave appelle un programme non LE qui lui même appelle un Cobol, alors une seconde enclave sera créé parce que cobol considéra ce cobol comme un Main. c'est très très mauvais pour les performances puisque si en plus c'est en boucle beaucoup d'allocation/free mémoire sont faites a chaque fois.. ce n'est qu'un résumé, pour plus de détails et compléments tu peux consulter toutes la documentation LE qui aujourd'hui est très complète à partir du lien que je t'ai donné

  11. #11
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci bien pour ce complément d'info qui me suffit largement.

    Dorénavant il vaut meiux que passe par ce site que par ma filière officielle.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. libération de la mémoire dans un programme C
    Par callsty dans le forum Débuter
    Réponses: 11
    Dernier message: 25/12/2012, 16h08
  2. Détection de faille mémoires dans un programme java
    Par stacre dans le forum Tests et Performance
    Réponses: 3
    Dernier message: 09/02/2009, 12h10
  3. Réponses: 4
    Dernier message: 01/06/2006, 15h55
  4. [] Utiliser AVI d'une DLL dans mon programme
    Par seb.49 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/05/2003, 14h52
  5. [langage] Commande DOS dans un programme
    Par Jibees dans le forum Langage
    Réponses: 15
    Dernier message: 23/04/2003, 12h08

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