Archives de catégorie : CICS Cours

CICS – Liste des transactions

Liste de certaines des transactions CICS importantes

CESN

CESN est connu sous le nom de CICS Execute Sign On.

  • CESN est utilisé pour se connecter à la région CICS.
  • Nous devons fournir l’ID utilisateur et le mot de passe donnés par l’administrateur CICS pour se connecter à CICS. La capture d’écran suivante montre à quoi ressemble l’écran de connexion –

CEDA

CEDA est connu sous le nom de CICS Execute Definition and Administration. Il est utilisé par les administrateurs système CICS pour définir les entrées de table CICS et d’autres activités d’administration.


CEMT

CEMT est connu sous le nom de CICS Execute Master Terminal. Il est utilisé pour demander et mettre à jour l’état des environnements CICS ainsi que pour d’autres opérations système.

  • En utilisant la commande CEMT, nous pouvons gérer les transactions, les tâches, les fichiers, les programmes, etc.
  • Pour obtenir toutes les options possibles, tapez CEMT et appuyez sur ENTER. Il affichera toutes les options.

CECI

CECI est connu sous le nom d’interpréteur de commandes d’exécution CICS. De nombreuses commandes CICS peuvent être exécutées à l’aide de CECI.

  • CECI est utilisé pour vérifier la syntaxe de la commande. Il exécute la commande, uniquement si la syntaxe est correcte.
  • Tapez l’option CECI sur l’écran CICS vide après vous être connecté. Elle vous donne la liste des options disponibles.
  • CEMT est essentiellement utilisé pour charger un nouveau programme dans le CICS ou pour charger une nouvelle copie du programme dans le CICS après la modification du programme ou du mapset.

CEDF

CEDF est connu sous le nom de CICS Execute Debug Facility. Il est utilisé pour déboguer le programme étape par étape, ce qui aide à trouver les erreurs.

Tapez CEDF et appuyez sur Entrée dans la région CICS. Le message Le terminal est en mode EDF s’affiche. Tapez maintenant l’identifiant de la transaction et appuyez sur la touche Entrée. Après l’initiation, à chaque touche d’entrée, une ligne est exécutée. Avant d’exécuter une commande CICS, il affiche l’écran dans lequel nous pouvons modifier les valeurs avant de continuer.


CCMC

CMAC est connu sous le nom de messages CICS pour les codes de fin anormale. Il est utilisé pour trouver l’explication et les raisons des codes de fin anormale CICS.


CESF

CESF est connu sous le nom de CICS Execute Sign Off. Il est utilisé pour se déconnecter de la région CICS.


CEBR

CEBR est connu sous le nom de CICS Execute Temporary storage Browse. Il est utilisé pour afficher le contenu d’une file d’attente de stockage temporaire ou TSQ.

CEBR est utilisé lors du débogage pour vérifier si les éléments de la file d’attente sont écrits et récupérés correctement. Nous discuterons plus de TSQ dans les prochains modules.

CICS – Programmes


Les programmes CICS sont écrits en langage COBOL dans les Mainframes. Nous discuterons de l’écriture d’un programme COBOL-CICS simple, de sa compilation, puis de son exécution.

Structure du programme d’application CICS

structure du programme de cics

Syntaxe générale de l’instruction CICS

EXEC CICS function
 	[(option (argument value)]
        [(option (argument value)]
END-EXEC.

Étapes de base du développement d’un programme d’application CICS

  1. Traduire, compiler et lier un programme d’application CICS dans la bibliothèque de programmes d’application CICS (LOADLIB).
  2. Définir Trans-ID en PCT avec le nom du programme associé
  3. Définir le programme en PPT
  4. Enregistrer le terminal dans TCT
  5. Enregistrez l’utilisateur dans SNT (table de connexion)
  6. D’autres tables CICS, par exemple FCT, JCT, DCT, doivent être préparées pour la programmation de l’application si nécessaire
  7. Connectez-vous à CICS et entrez Trans-ID.

En plus des procédures de base ci-dessus, l’environnement système CICS détaillé doit être correctement préparé par les programmeurs système ou les programmeurs d’application.

  • Le terminal doit être enregistré au TCT.
  • L’identificateur d’utilisateur CICS doit être enregistré dans le SNT.
  • D’autres tables CICS (à savoir FCT, JCT et DCT) doivent être préparées pour le programme d’application, si nécessaire.

Exemple 1 – Programme COBOL-CICS

Vous trouverez ci-dessous un programme COBOL-CICS simple qui affiche le message “Bienvenue dans la communauté IBMMainframer” sur l’écran de sortie CICS.

IDENTIFICATION DIVISION.
PROGRAM-ID. IBMMFPGM.

DATA DIVISION.
FILE SECTION.

WORKING-STORAGE SECTION.
01 WS-DISP-MESSAGE PIC X(40).
01 WS-DISP-LENGTH  PIC S9(4) COMP.

PROCEDURE DIVISION.
0000-MAIN-PARA.
   MOVE 'WELCOME TO IBMMAINFRAMER COMMUNITY' TO WS-DISP-MESSAGE
   MOVE '+34' TO WS-DISP-LENGTH

   EXEC CICS SEND TEXT
      FROM (WS-MESSAGE)
      LENGHT(WS-LENGTH)
   END-EXEC

   EXEC CICS
      RETURN
   END-EXEC.

Ce programme simple utilise les commandes CICS SEND TEXT, qui sont utilisées pour envoyer des données sans mappage au terminal et la commande RETURN est utilisée pour retourner le contrôle du programme.


Exemple 2 – Programme COBOL-CICS

Cet exemple de programme utilise trois commandes CICS de base RECEIVE, SEND et RETURN.

Ce programme va :

  • Lire un message du terminal.
  • Renvoyez le message avec accusé de réception.
  • Terminez la transaction.

Notez la partie de gestion des erreurs après la commande EXEC CICS RECEIVE.

IDENTIFICATION DIVISION.
PROGRAM-ID. IBMMFPGM.

DATA DIVISION.
FILE SECTION.

WORKING-STORAGE SECTION.
77 WS-LONGUEUR     PIC S9(4) COMP.
77 WS-RESP         PIC S9(4) COMP.
01 WS-INPUT.
   05 WS-TRAN-ID   PIC X(4).
   05 FILLER       PIC X.
   05 WS-IN-DATA   PIC X(15).
01 WS-OUTPUT. 
   05 WS-MSG-DESC  PIC X(17).
   05 FILLER       PIC X.
   05 WS-OUT-DATA  PIC X(15).
LINKAGE SECTION.
01 DFHCOMMAREA.
   05 LS-COMMAREA  PIC X.
PROCEDURE DIVISION.
   MOVE 40         TO WS-LONGUEUR
   MOVE LOW-VALUES TO WS-INPUT
   EXEC CICS RECEIVE
      INTO (WS-INPUT)
      LENGHT(WS-LONGUEUR)
      FROM (WS-RESP)
   END-EXEC.

   IF WS-RESP = DFHRESP(NORMAL)
      MOVE LOW-VALLUES   TO WS-OUTPUT
      MOVE WS-IN-DATA    TO WS-OUT-DATA
      MOVE 'MSG RECU EST :' 
                         TO WS-MSG-DESC
      MOVE 53 TO WS-LONGUEUR
   ELSE
      MOVE LOW-VALLUES   TO WS-OUTPUT
      MOVE WS-IN-DATA    TO WS-OUT-DATA
      MOVE 'ERREUR DANS TXN :' 
                         TO WS-MSG-DESC
      MOVE 53 TO WS-LONGUEUR
   END-IF.

   EXEC CICS SEND
      FROM (WS-OUTPUT)
      LENGHT(WS-LONGUEUR)
   END-EXEC.

   EXEC CICS
      RETURN
   END-EXEC.

CICS – Composants

Composants CICS – Tables de contrôle et blocs de contrôle

Le noyau central de CICS se compose de programmes de contrôle et de leurs tables de contrôle correspondantes :

  • La partie principale ou le noyau de CICS se compose de programmes de contrôle fournis par IBM et de tables de contrôle CICS correspondantes définies par l’utilisateur.
  • Les programmes de contrôle CICS exécutent leur tâche principale en fonction des entrées des tables de contrôle CICS correspondantes définies par l’utilisateur.
  • Les programmeurs peuvent modifier les entrées de la table de contrôle en fonction des besoins.

Programmes de contrôle :

Le noyau CICS est construit par les programmes de contrôle et les tables de contrôle correspondantes. Il offre des avantages uniques. Cela rend le système CICS très flexible et donc facile à entretenir. Voici les programmes de contrôle importants de CICS.

TCP – Terminal Control Program
(Programme de contrôle des terminaux)
  • TCP est utilisé pour recevoir des messages du terminal.
  • Il maintient les exigences de communication matérielle.
  • Il demande à CICS de lancer les tâches.
KCP – Task Control Program
(Programme de contrôle des tâches)
  • KCP est utilisé pour contrôler simultanément l’exécution des tâches et ses propriétés associées.
  • Il gère tous les problèmes liés au multitâche.
PCP –  Program Control Program
(Programme de contrôle du programme)
  • PCP est utilisé pour localiser et charger des programmes à exécuter.
  • Il transfère le contrôle entre les programmes et à la fin, il renvoie le contrôle au CICS.
FCP – File Control Program
(Programme de contrôle des fichiers)
  • FCP est utilisé pour fournir aux programmes d’application des services tels que lire, insérer, mettre à jour ou supprimer des enregistrements dans un fichier.
  • Il garde un contrôle exclusif sur les enregistrements afin de maintenir l’intégrité des données lors des mises à jour des enregistrements.
SCP – Storage Control Program
(Programme de contrôle du stockage)
  • Il est utilisé pour contrôler l’allocation et la désallocation de la mémoire dans une région CICS.

Tableaux de contrôle :

CICS se compose de programmes et de tables de contrôle CICS fournis par IBM. Ces tables doivent être mises à jour en conséquence avec les informations d’application pour une exécution réussie des programmes d’application CICS. Voici les tables de contrôle importantes.

TCT – Terminal Control Table
(Tableau de contrôle des bornes)
  • Lorsque nous nous connectons à un terminal CICS, une entrée est effectuée dans la table TCT.
  • TCT contient les ID de terminal connectés à la région CICS actuelle.
  • Le programme de contrôle du terminal ainsi que la table de contrôle du terminal reconnaissent les données entrantes du terminal.
PCT – Program Control Table
(Tableau de contrôle du programme)
  • Il contient les ID de transaction (TRANSID) et les noms de programme ou ID de programme correspondants.
  • TRANSID est unique dans la table PCT.
PPT – Processing Program Table
(Tableau du programme de traitement)
  • PPT contient le nom du programme ou le nom de l’ensemble de cartes, le compteur d’utilisation des tâches, la langue, la taille, l’adresse de stockage principale, l’adresse de la bibliothèque de chargement, etc.
  • Le nom du programme ou de l’ensemble de cartes est unique dans une table PPT.
  • CICS reçoit la transaction et un nom de programme correspondant est attribué à la transaction depuis le PCT. Il vérifie si le programme est chargé ou non. S’il est chargé, le compteur d’utilisation de la tâche est augmenté de 1. Si le programme n’est pas chargé, le programme est d’abord chargé et le compteur d’utilisation de la tâche est défini sur 1. Il obtient l’adresse de la bibliothèque de chargement à partir de la table PPT.
FCT – File Control Table
(Tableau de contrôle des fichiers)
  • Il contient les noms de fichier, le type de fichier, la longueur d’enregistrement, etc.
  • Tous les fichiers utilisés dans un programme CICS doivent être déclarés dans FCT et ils sont ouverts et fermés par CICS lui-même.
DCT – Destination Control Table
(Table de contrôle des destinations)

Les files d’attente de données transitoires doivent être prédéfinies dans la table de contrôle de destination. Le programme de données transitoires fait référence à DCT.

TST – Temporary Storage Table
(Table de Stockage Temporaire)

Si vous souhaitez récupérer des files d’attente de stockage temporaire lors d’un plantage du système, elles doivent être enregistrées dans la table de stockage temporaire.

RCT – Region Control Table
(Tableau de contrôle des régions)

Si des commandes DB2 sont utilisées dans le programme, le PLAN doit être enregistré ici.

SNT – Sign-On-Table

L’ID utilisateur et le mot de passe doivent être enregistrés dans Sign-On-Table.

PLT – Program List Table
(Tableau de la liste des programmes)

Tous les programmes qui doivent être démarrés automatiquement lors du démarrage et de l’arrêt de CICS doivent être répertoriés dans le tableau de la liste des programmes.

JCT – Journal Control Table
(Tableau de contrôle des journaux)

Les informations de contrôle des journaux système et des fichiers journaux sont stockées dans la table de contrôle du journal. Journal Control Program fait référence à JCT.

CICS – Transaction

Lancement de la transaction CICS :

Il existe cinq manières de lancer des transactions CICS.

  1. Par un identifiant de transaction saisi dans un terminal avec la touche ENTER. Il s’agit de la manière la plus courante d’initier une transaction CICS.
  2. Par un identifiant de transaction associé à un terminal de pseudo-conversation. C’est une manière typique de réaliser une pseudo-conversation.
  3. Par la commande START, qui lance une transaction spécifiée dans le paramètre.
  4. Par le lancement automatique de tâche (ATI). L’entrée de la table de contrôle de destination (DCT) pour une file d’attente de données transitoires intrapartition peut avoir un paramètre de niveau de déclenchement et la transaction CICS associée à lancer si le niveau de déclenchement est atteint.
  5. Par un identifiant d’attention 3270. Pour les terminaux de type IBM 3270, n’importe laquelle des clés PF pourrait être définie dans PCT pour initier une transaction.

Transaction:

Lorsqu’un identifiant de transaction TXN1 est saisi sur le terminal CICS, celui-ci vérifie d’abord s’il existe un programme associé à cet identifiant de transaction dans la table PCT. S’il en trouve un, il vérifie dans la table PPT pour trouver l’emplacement du programme pour l’exécuter.

Si le programme est déjà disponible dans la mémoire, il commence à exécuter ce programme particulier ; sinon, il charge le programme dans la mémoire à partir du stockage secondaire, puis commence à l’exécuter.

Transaction CICS

Cycle de vie des transactions :

Le cycle de vie de la transaction comporte les étapes suivantes :

Étape 1

L’opérateur du terminal lance la transaction en saisissant un identifiant de transaction de 1 à 4 caractères et en appuyant sur la touche ENTER.

Étape 2

Le programme de contrôle des terminaux (TCP) vérifie périodiquement tous les terminaux pour l’entrée. Lorsqu’un message est reçu, il fait ce qui suit –

  • Ordonne au programme de contrôle de terminal (SCP) de créer une zone d’entrée/sortie de terminal (TIOA).
  • Place le message dans la zone d’entrée/sortie du terminal (TIOA).
  • Passe le contrôle au programme de contrôle des tâches (KCP).
Étape 3

Le KCP prend le contrôle du programme de contrôle du terminal (TCP) et effectue les opérations suivantes :

  • Valide l’ID de transaction et la sécurité.
  • Ordonne au programme de contrôle du stockage (SCP) de créer une zone de contrôle des tâches.
  • Attribue la priorité à la tâche en fonction de la priorité du terminal (définie dans la table de contrôle du terminal (TCT)), de la priorité de l’opérateur (définie dans la table de connexion (SNT)) et de la priorité de transaction (définie dans la table de contrôle du programme (PCT)).
  • Ajoute la tâche à la file d’attente des programmes en attente.
  • Distribue les programmes en attente dans l’ordre de priorité.
  • Passe le contrôle au programme de contrôle du programme (PCP).
Étape 4

Le programme de contrôle du programme (PCP) prend le contrôle du programme de contrôle du programme (KCP) et effectue les opérations suivantes :

  • Localise le programme et le charge, si nécessaire.
  • Transfère le contrôle au programme d’application.
Étape 5

Le programme d’application prend le contrôle du programme de contrôle du programme (PCP) et effectue les opérations suivantes :

  • Demande au Terminal Control Program(TCP) de placer le message dans la zone WORKING STORAGE du programme.
  • Demande au programme de contrôle des fichiers (FCP) de récupérer les enregistrements des fichiers.
Étape 6

Le FCP prend le contrôle du programme d’application et effectue les opérations suivantes :

  • Demande une zone de travail Fichier à partir du programme de contrôle du stockage (SCP).
  • Informe le programme de contrôle des tâches (KCP) que cette tâche peut attendre que les E/S soient terminées.
Étape 7

Le programme de contrôle des tâches (KCP) effectue les opérations suivantes :

  • Distribue la tâche suivante dans la file d’attente.
  • Redistribue l’ancienne tâche lorsque les E/S sont terminées.
  • Transfère le contrôle au programme de contrôle de fichiers (FCP).
Étape 8

Le programme de contrôle de fichiers (FCP) rend le contrôle au programme d’application.

Étape 9

Le programme d’application effectue les opérations suivantes :

  • Traite les données du fichier.
  • Demande au programme de contrôle du terminal (TCP) d’envoyer un message d’E/S.
  • Renvoie le contrôle au programme de contrôle du programme (PCP).
Étape 10

Le programme de contrôle du programme (PCP) renvoie le contrôle au programme de contrôle du programme (KCP) en lui demandant de terminer la tâche.

Étape 11

Le programme de contrôle du programme (KCP) demande au programme de contrôle du stockage (SCP) de libérer tout le stockage alloué à la tâche (sauf TIOA).

Étape 12

Le programme de contrôle de terminal (TCP) effectue les opérations suivantes :

  • Envoie la sortie au terminal.
  • Demande au programme de contrôle du stockage (SCP) de libérer le TIOA

CICS – Système d’affichage

Terminal IBM 3270 :

Le système d’affichage d’informations 3270 est une famille de terminaux d’affichage et d’impression. 3270 terminaux étaient utilisés pour se connecter au mainframe via des contrôleurs IBM. Aujourd’hui, un logiciel d’émulation 3270 est disponible, ce qui signifie que même des PC normaux peuvent être utilisés comme terminaux 3270. Les terminaux 3270 sont des terminaux muets et n’effectuent aucun traitement eux-mêmes. Tout le traitement doit être effectué par le programme d’application.

Les terminaux IBM sont constitués des composants suivants :

Moniteur CRT :

Le moniteur CRT affiche la sortie ou les champs d’entrée du programme d’application. Une capture d’écran d’un modèle 3278 de moniteur CRT est illustrée ci-dessous. Il a les caractéristiques suivantes :

  1. Il est capable d’afficher 1920 caractères.
  2. Chacune de ces positions de 1920 caractères est adressable individuellement.
  3. Un programme d’application COBOL peut envoyer des données à toutes les positions de l’écran.
  4. Les caractéristiques d’affichage telles que l’intensité, le champ protégé, non protégé peuvent être définies à l’aide de BMS, dont nous discuterons en détail dans les modules à venir.

Clavier:

Les touches du clavier IBM sont divisées en deux catégories :

  1. Touches non AID – Toutes les autres touches pour les lettres, les chiffres, la ponctuation et les caractères spéciaux. sont des clés non-aide. Lorsque l’utilisateur tape du texte ou des chiffres à l’aide de touches non auxiliaires, CICS ne saura même pas si l’utilisateur tape quelque chose ou non.
  2. Clés AID – Les clés AID sont connues sous le nom de clés d’identification d’attention. CICS ne peut détecter que les clés AID. Après avoir tapé toutes les entrées, uniquement lorsque l’utilisateur appuie sur l’une des touches AID, CICS prend le contrôle. Touches AID : ENTER, PF1 à PF24, PA1 à PA3, CLEAR.Les clés AID sont divisées en deux catégories :
    • Touches PF – Les touches PF sont appelées touches de fonction. Les clés PF permettent le transfert de données du terminal vers CICS. Les touches PF sont ENTER et PF1 à PF24.
    • Clés PA – Les clés PA sont appelées clés d’accès au programme. Les clés PA ne permettent pas le transfert de données entre le terminal et CICS. Les touches PA sont PA1 à PA3 et CLEAR.

CICS – CICS LINK

Commande CICS LINK :

Passer le contrôle à un programme à un niveau logique inférieur en s’attendant à ce que le contrôle revienne au programme au niveau logique supérieur.


Lorsqu’un programme est lié à un autre, le premier programme reste dans la mémoire principale pendant que le second programme est en cours d’exécution.

Lorsque le deuxième programme (lié à) se termine et rend le contrôle, le premier programme reprend au point après l’instruction LINK. Le programme LINKed to est considéré comme fonctionnant à un niveau logique inférieur au programme LINKing.

Commande de contrôle LINK CICS

Le diagramme ci-dessus explique le processus d’appel d’un programme lié à partir du programme principal – Niveaux logiques inférieurs.

LINK doit être utilisé pour les programmes qui doivent retourner au programme qui l’a appelé. Tous les programmes liés aux programmes doivent avoir une commande RETURN.


Syntaxe:

EXEC CICS LINK
    PROGRAM(nom)
    COMMAREA(ws-espace)
    LENGTH(ws-longueur)
END-EXEC.
  • PROGRAM
    Spécifie le nom du programme auquel doit être lié. Si le nom est un littéral, il doit être placé entre guillemets. Le nom du programme peut comporter jusqu’à huit caractères. Le programme doit être défini dans le PPT.
  • COMMAREA
    Paramètre facultatif, spécifiant la zone de données contenant les données à transmettre au programme LINKed to. Cette option n’est requise que si vous souhaitez transmettre des informations au programme auquel vous êtes lié.
  • LENGTH
    Spécifie la longueur de COMMAREA. Ce paramètre est requis uniquement si COMMAREA est présent. Comme les paramètres de longueur dans d’autres commandes, il doit s’agir d’un binaire d’un demi-mot.

Ws-longueur est la longueur de ws-espace et ws-espace contient les informations qui doivent être transmises au programme LINK.


Transmission de données à l’aide de la commande LINK :

Les données du programme de liaison au programme lié peuvent être transmises à l’aide de l’option COMMAREA.

Si l’OPTION COMMAREA est utilisée dans le programme LINKing, la zone doit être définie dans la section de stockage de travail. Dans le programme LINKed, la zone doit être définie comme la première zone de la section de liaison, sous le nom réservé DFHCOMMAREA.

Transmission de données à l’aide de la commande LINK CICS

La COMMAREA est partagée entre les deux programmes. Lorsque le programme LINKing reprend le contrôle, toutes les modifications apportées à la COMMAREA par le programme LINKed to sont accessibles.

La section WORKING STORAGE du programme LINKing est conservée jusqu’à la fin de son exécution. Mais la mémoire de travail du programme LINKed to est automatiquement libérée après la commande RETURN.

La liaison et les programmes liés s’exécutent sous la même tâche.


Exemple:

L’exemple ci-dessous montre comment utiliser la commande de contrôle Link pour passer le contrôle à un autre programme.

IDENTIFICATION DIVISION.
PROGRAM-ID. PROG000A.
WORKING-STORAGE SECTION.
01 WS-COMMAREA    PIC X(70).
PROCEDURE DIVISION.

EXEC CICS LINK
   PROGRAM('PROGRAM')
   COMMAREA(WS-COMMAREA)
   LENGTH(70)
END-EXEC.

Question importante de l’entretien d’embauche avec le SCIC :

Différence entre LINK et XCTL ?
XCTLLIEN
XCTL ne s’attend pas à ce que le contrôle revienneLINK s’attend à ce que le contrôle revienne
Les conditions de handle dans le programme principal ne sont pas disponibles pour le programme appelé. Établir de nouvelles conditions de poignéeLes conditions de traitement dans le programme appelant sont à nouveau nécessaires. Utilisez donc les commandes PUSH et POP pour les restaurer à nouveau
XCTL n’attend pas de retour de contrôle et donc moins de surcharge sur les ressources système comme la mémoire, etc.LINK s’attend à ce que le contrôle revienne et, par conséquent, la surcharge est davantage dans ce cas sur la mémoire, etc.
Similaire à GO TOSemblable à PERFORM, et le contrôle sera renvoyé à l’instruction qui suit

CICS – CICS XCTL

Commande CICS XCTL :

Pour passer le contrôle à un autre programme au même niveau sans s’attendre à ce que le contrôle soit rendu.


Lorsqu’un programme XCTL passe à un autre, c’est-à-dire qu’il transfère le contrôle, le premier programme est considéré comme terminé et le second programme fonctionne au même niveau que le premier programme.

Commande de contrôle XCTL CICS

Le diagramme ci-dessus explique le processus d’appel d’un programme XCTL à partir du programme principal – Même niveau logique.

Lorsque l’exécution du deuxième programme se termine, le contrôle n’est pas rendu au premier programme, mais à un programme qui est à un niveau logique supérieur ou à CICS, si le premier programme a été appelé directement sous CICS.


Syntaxe:

EXEC CICS XCTL
    PROGRAM(name)
    COMMAREA(ws-zone)
    LENGTH(ws-longueur)
END-EXEC.
  • PROGRAM
    Nom du programme auquel nous souhaitons transférer le contrôle. Si le nom est un littéral, il doit être placé entre guillemets. Le nom du programme peut comporter huit caractères et doit être défini dans PPT.
  • COMMAREA
    Un paramètre facultatif. Lorsqu’il est spécifié, c’est le nom de la zone contenant les données à transmettre. Cette option est requise uniquement si vous souhaitez transmettre des informations à XCTLed pour programmer.
  • LENGTH
    Spécifie la longueur de la zone de virgule. Ce paramètre est obligatoire uniquement COMMAREA est présent. Comme les paramètres de longueur dans d’autres commandes, il doit s’agir d’un demi-mot binaire.

Ws-longueur est la longueur de ws-zone et ws-zone contient les informations qui doivent être transmises au programme XCTL.


Transmission de données à l’aide de la commande XCTL :

Les données du programme XCTLing au programme XCTLed peuvent être transmises à l’aide de l’option COMMAREA.

Si la COMMAREA est utilisée dans le programme qui exécute le XCTL, la zone doit être définie dans la section de stockage de travail. Dans le programme appelé, la zone doit être définie comme la première zone dans la LINKAGE SECTION, à l’aide de DFHCOMMAREA. Seule une copie des données est transmise et non l’adresse.

Transmission de données à l’aide de XCTL commande

Ce diagramme explique le processus interne d’appel d’un programme XCTL à partir du programme principal.

Les programmes XCTLing et XCTLed s’exécutent sous la même tâche.


Exemple:

L’exemple ci-dessous montre comment utiliser la commande XCTL pour passer le contrôle à un autre programme.

IDENTIFICATION DIVISION.
PROGRAM-ID. PROG000A.
WORKING-STORAGE SECTION.
01 WS-COMMAREA    PIC X(70).
PROCEDURE DIVISION.

EXEC CICS XCTL
   PROGRAM('PROGRAM1')
   COMMAREA(WS-COMMAREA)
   LENGTH(70)
END-EXEC.

Cette commande XCTL ci-dessus transfère le contrôle à transmettre au programme ‘PROGRAM1’ avec 70 octets de données. COMMAREA est un paramètre facultatif et est le nom de la zone contenant les données à transmettre ou la zone à laquelle les résultats doivent être retournés.


Question importante de l’entretien d’embauche avec le SCIC :

Différence entre XCTL et LINK ?
XCTLLIEN
XCTL ne s’attend pas à ce que le contrôle revienneLINK s’attend à ce que le contrôle revienne
Les conditions de handle dans le programme principal ne sont pas disponibles pour le programme appelé. Établir de nouvelles conditions de poignéeLes conditions de traitement dans le programme appelant sont à nouveau nécessaires. Utilisez donc les commandes PUSH et POP pour les restaurer à nouveau
XCTL n’attend pas de retour de contrôle et donc moins de surcharge sur les ressources système comme la mémoire, etc.LINK s’attend à ce que le contrôle revienne et, par conséquent, la surcharge est davantage dans ce cas sur la mémoire, etc.
Similaire à GO TOSemblable à PERFORM, et le contrôle sera renvoyé à l’instruction qui suit

CICS – CICS CALL

Commande CICS CALL :

Pour effectuer un appel COBOL d’un programme CICS vers un autre programme COBOL.

Le programme appelé doit être édité en lien avec le programme appelant. Si de nombreux programmes appellent le même programme, cela entraînera une plus grande occupation de la mémoire.

Le programme peut être appelé de deux manières :

  1. CALL statique
  2. CALL dynamique

CALL statique :

Un programme appelé statiquement ne nécessite pas d’être enregistré dans PPT.

Commande d’appel statique CICS

L’appelant et le programme appelé doivent être édités ensemble en un seul module de chargement.


CALL dynamique :

L’appel dynamique est disponible uniquement dans VS-COBOL II et CICS 2.1 ou version ultérieure. Les programmes appelés dynamiquement sont des modules de chargement distincts et peuvent donc être partagés par plusieurs appelants. Lors de l’exécution, CICS chargera dynamiquement le programme appelé.

Commande d’appel dynamique CICS

Le programme appelé dynamiquement nécessite d’être enregistré dans PPT.


Transmission de données en CALL :

Voici un exemple de programme COBOL utilisant un appel statique. Le format décrit pour la transmission des paramètres s’applique également aux appels dynamiques.

  • Les deux premiers paramètres du CALL doivent être DFHEIBLK et DFHCOMMAREA (dans cet ordre), puis les variables définies par l’utilisateur suivront.
  • Le traducteur insère toujours DFHEIBLK dans la LINKAGE SECTION.
  • Le programme appelé doit émettre un GOBACK pour revenir à l’appelant.

Question importante de l’entretien d’embauche avec le SCIC :

Différence entre CALL et XCTL/LINK ?
CALLXCTL/LIEN
Le programme CALL’ed (appelé) est édité en lien avec le module principal.Le ou les programmes XCTLed/LINKed (liés) sont compilés séparément et édités en lien.
Taille de module plus élevée et besoin de mémoire plus élevéLe chargement dynamique peut ralentir la vitesse d’exécution
Toute modification du programme CALL nécessite la compilation de tous les autres modules à l’aide du programme CALL.Les modifications apportées au(x) programme(s) XCTLed/LINKed n’affecteront pas les autres modules utilisant ce

CICS – CICS RETURN

Commande CICS RETURN :

La commande RETURN passe le contrôle au niveau supérieur suivant. Lorsque le programme est au niveau logique le plus élevé sous CICS (niveau 1), la commande RETURN redonne le contrôle à CICS.

Syntaxe:

EXEC CICS
           RETURN
           [TRANSID(next-id)]
           [COMMAREA(comm-area)]
           [LENGTH(longueur)]
END-EXEC.
  • TRANSID
    Spécifie le prochain identifiant de transaction à exécuter à partir du terminal associé à la transaction en cours. Il s’agit de la transaction qui est exécutée la prochaine fois que le terminal envoie une entrée. Cela ne peut être émis que par des transactions au niveau logique 1.
  • COMMAREA
    Un paramètre facultatif. C’est le nom de la zone contenant les données à transmettre à la prochaine transaction qui sera exécutée sur ce terminal. LENGTH spécifie la longueur de la COMMAREA.

Lorsque le contrôle est rendu à CICS, deux options supplémentaires de la commande RETURN peuvent être spécifiées :

  • La prochaine transaction peut être spécifiée pour être exécutée lorsque la prochaine entrée provient du même terminal. Cette option permet de développer des applications en mode pseudo conversationnel dont il sera question plus loin.
  • Les données à transmettre à la transaction suivante peuvent être spécifiées.

Exemple:

Retour simplifié :

Le sous-programme vient d’émettre un RETURN sans aucune option comme ci-dessous.

EXEC CICS
    RETURN
END-EXEC.

Par exemple, si certaines données doivent être renvoyées au programme appelant, elles peuvent être renvoyées via commarea. Pour cela, les données requises doivent être remplies dans DFHCOMMAREA avant d’émettre la déclaration.

MOVE WW-CUST-DATA TO DFHCOMMAREA.
EXEC CICS
    RETURN
END-EXEC.

Option de retour avec ID de transaction :

EXEC CICS RETURN
     TRANSID(WS-TRAN-ID)
     COMMAREA(WS-COMM-AREA)
     LENGTH(WS-COMM-LGTH)
END-EXEC.

Cette option est généralement utilisée dans les programmes impliquant des écrans. Une fois que l’écran initial renvoie le contrôle à l’écran et lorsque l’utilisateur saisit des clés d’identification d’attention, l’identifiant de transaction spécifié devient actif et la commarea envoyée sera utilisée dans ce processus.

CICS – Commandes de contrôle de programme

C’est une bonne pratique de développer plusieurs modules fonctionnels plutôt que de construire un long programme qui fait toutes les fonctions. Cela rend le programme difficile à maintenir, à comprendre et à déboguer. La taille du programme sera importante et il occupera également plus de ressources. Le fractionnement fonctionnel des sous-modules et l’appel ou le transfert du contrôle à ceux-ci sont réalisés par des commandes de contrôle de programme.

Les commandes de contrôle sont :

  1. CICS LINK
    Passer le contrôle à un programme à un niveau logique inférieur en s’attendant à ce que le contrôle revienne au programme au niveau logique supérieur.
  2. CICS XCTL
    Pour passer le contrôle à un autre programme au même niveau sans s’attendre à ce que le contrôle soit rendu.
  3. CICS RETURN
    Pour revenir au programme de niveau supérieur logique suivant ou à CICS.
  4. CICS CALL
    Pour effectuer un appel COBOL d’un programme CICS vers un autre programme COBOL.
  5. CICS LOAD
    Pour charger un programme dans l’espace d’adressage CICS.
  6. CICS RELEASE
    Pour libérer le programme de l’espace d’adressage CICS.

Les programmes d’application sous CICS s’exécutent sous différents niveaux logiques. Au plus haut niveau se trouve CICS (niveau 0). Tous les programmes d’application s’exécutent à des niveaux logiques inférieurs.

  • Un programme lié s’exécute au niveau logique inférieur suivant à partir du programme de liaison.
  • Un programme XCTL s’exécute au même niveau logique que le programme XCTL.
  • La commande RETURN redonne toujours le contrôle au programme à un niveau logique supérieur.
Niveaux Logiques de programme CICS

Le visuel explique le flux de contrôle entre les programmes.

  • Le programme A est au niveau logique le plus élevé sous CICS (niveau 1).
  • RETURN du programme A provoque le retour du contrôle vers CICS (niveau 0).
  • Lorsque le programme A envoie XCTL au programme B, le programme B sera au même niveau logique (niveau 1).
  • Lorsque le programme A émet un LIEN vers le programme C, le programme C sera au niveau 2.
  • Le RETURN du programme C passe la commande au niveau 1 (programme A).
  • RETURN du programme B passe le contrôle au niveau 0 (CICS).