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 :

[z/OS] Plusieurs appels à un même sous-programme


Sujet :

Cobol

  1. #1
    Membre confirmé Avatar de toomsounet
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 481
    Points : 576
    Points
    576
    Par défaut [z/OS] Plusieurs appels à un même sous-programme
    J'ai une transaction CICS qui appelle un sous programme plusieurs fois de suite avec des EXEC CICS LINK (programme) en passant une commarea en paramètre.


    La première fois je l'appelle en lui passant des informations X, il me renvoie un code retour OK.

    La seconde fois je l'appelle en lui passant des informations Y (en réinitialisant la commarea juste avant), et boum il me sort un code erreur applicatif (je peux pas passer ce sous prog sous exped malheuresement).

    Si je fais qu'un de ces deux appels tout marche nickel.

    Il n'y aurait pas un buffer à vider par hasard? J'ai cru qu'avec ce système on en avait pas besoin.
    "Most Java programs are so rife with concurrency bugs that they work only by accident"

  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
    Salut.
    Il y a longtemps que je n'ai pas pas fait de Cobol Cics. Mais je pense que la règle est la même chez IBM.
    Un S/programme appelé reste dans la pile d'appel et EN L'ETAT jusqu'il soit arrêté par un cancel ou que le programme appelant s'arrête. Donc soit tu cancel le s/prog juste après son appel pour préparer l'appel suivant, soit tu reinitialise tout dans le s/prog (en plus des paramètres passés et de la commarea) : c'est à dire toutes les zones de travail, etc... (ché pas moi).
    AMHA c'est de là que vient ton problème.

    Cordialement
    Hédhili Jaïdane
    - - - - - - - - -

  3. #3
    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
    Pour moi un sous-programme applicatif n'a pas à avoir un comportement différent selon un contexte d'exécution ...

    Il me semble que le problème se situe bien dans le sous-programme lui-même ... mauvaise initialisation de variables ?

  4. #4
    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
    Nous sommes bien d'accord.
    Imaginez un peu ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ...
    77    I comp value 0.
    ...
    A1.
          add 1 to I.
          if I > 30 go a2.
          ....
          go to A1.
    Au premier appel du s/pgm I = 0 (initialisé au chargement), à l'appel suivant I = 31.
    Il faudrait systématiquement, dans le s/pgm, initialiser I par une instruction explicite du genre move 0 to I ou dans le prog appelant faire :
    call "MonSProg"
    cancel "MonSProg".


    Cordialement
    Hédhili Jaïdane
    - - - - - - - - -

  5. #5
    Membre confirmé Avatar de toomsounet
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 481
    Points : 576
    Points
    576
    Par défaut
    Merci les gars.

    Au debut ce sous prog était appelé par un call et effectivement,à chaque nouvel appel, le contexte d'execution est sauvegardé.

    Et en passant par un EXEC CICS LINK, j'ai lu que le sous-prog s'exécute dans un nouvel environnement d'exécution (moins performant que le call).
    Je vais essayer de voir si le cancel marche avec un call avant car j'ai pas trop envie de toucher au sous-prog utilisé par pas mal de monde.

    Encore merci.
    "Most Java programs are so rife with concurrency bugs that they work only by accident"

  6. #6
    Membre confirmé Avatar de toomsounet
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 481
    Points : 576
    Points
    576
    Par défaut
    Problème purement applicatif
    "Most Java programs are so rife with concurrency bugs that they work only by accident"

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/05/2010, 09h07
  2. Réponses: 3
    Dernier message: 19/04/2007, 17h19
  3. Appel sous programme
    Par sam.fet dans le forum Linux
    Réponses: 2
    Dernier message: 17/08/2006, 12h20
  4. Appel à un sous programme
    Par vince2005 dans le forum Langage
    Réponses: 4
    Dernier message: 13/07/2006, 13h44
  5. Plusieurs fois la même application sous JBoss
    Par veneto dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 26/04/2006, 14h05

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