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.
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.
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 ?
XCTL | LIEN |
---|---|
XCTL ne s’attend pas à ce que le contrôle revienne | LINK 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ée | Les 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 TO | Semblable à PERFORM, et le contrôle sera renvoyé à l’instruction qui suit |