Procédures de compilation et d’édition des liens
Vue d’ensemble
Ces procédures de compilation et d'édition de liens sont livrées à titre d'exemple, elles sont adaptables selon les options de la machine. Elles permettent de compiler les exits que vous avez développés, et d'effectuer l’édition des liens avec le produit.
Selon le type de la vacation que vous avez installée, vous disposez d'une procédure spécifique.
MVS
|
&RDJEXEC..JCLLIB
|
CLEXIT
|
CLEXIT
|
|
UNIX
|
$RDJ_EXEC/exit
|
exitmqs.mak
|
exitfic.mak
|
exitjms.mak |
Windows
|
%RDJ_EXEC%\exit
|
DLL_MQS.sln
|
DLL_FIC.sln
|
DLL_JMS.sln |
Ces procédures contiennent les éléments requis pour compiler tous les exits (C et COBOL).
Deux méthodes sont disponibles où les scripts sont :
- soit adaptés de façon à ne compiler que les modules nécessaires
- ou exécutés tels qu’ils ont été livrés et tous les modules sont recompilés
Il est conseillé d’utiliser la deuxième méthode.
Implémentation MVS
La procédure CLEXIT permet de compiler et linker à la fois les exits en C et en Cobol.
Exécuter la procédure
Pour exécuter les exits disponibles en COBOL et en C :
- Mettre à jour les variables :
- COBLIB : Nom de la bibliothèque système du compilateur COBOL
- VERLGC : Version du compilateur système C (courant par défaut)
- LKDLIB : Nom de la bibliothèque système de l’éditeur de lien
- MQC370 : Nom de la bibliothèque système du compilateur MQSeries
- MQLOAD : Nom de la bibliothèque système de l’éditeur de lien MQSeries
- Enlever les commentaires dans les instructions de compilation et d’impression dans la procédure
- Modifier le nom de la bibliothèque d’exécution dans le JCL RDJEXP (situé dans la bibliothèque &RDJEXEC..JCLLIB) pour utiliser les exits pendant la traduction.
Exemple :
//STEPLIB DD DSN= &RDJEXEC..EXELIB,DISP=SHR
// …... DD DSN= &RDJHOME..EXELIB,DISP=SHR
|
Caution
|
Par défaut, l’option DLL est positionnée dans les procédures de compilation C et COBOL qui sont appelées par la procédure CLEXIT. Pour désactiver cette option, il faut remplacer : |
- La variable OLCDLL par la valeur NODLL dans la procédure ZCPLGC des exits C
- La variable OCBDLL par la valeur NODLL dans la procédure ZCPLGC des exits COBOL
Résultats
Les modules Exit sont créés dans la bibliothèque &RDJEXEC..EXELIB. Les exécutables sont sous forme de DLL.
EXAEENC ( + EXIDLLH)
|
|
EXAEENDL
|
Mode fichier uniquement
|
EXAEMEC + EXIDLLH) |
|
EXAEMEDL |
Mode fichier uniquement |
EXIEENC ( + PLGDLLH)
|
EXIEEN
|
EXIEENDL
|
|
EXIEMEC ( + PLGDLLH)
|
EXIEME
|
EXIEMEDL
|
|
EXIERGC ( + PLGDLLH)
|
EXIERG
|
EXIERGDL
|
|
EXIRMEC (+ EXIDLLH)
|
|
EXIRMEDL
|
Mode fichier uniquement
|
EXIRSTC (+ EXIDLLH)
|
EXIRST
|
EXIRSTDL
|
Mode fichier uniquement
|
EXITMQC (+ EXITMQH)
|
|
EXITMQDL
|
Mode MQSeries uniquement
|
|
ITR025
|
ITR025DL
|
Mode fichier uniquement
|
ITR501C (+ ITR501)
|
|
ITR501DL
|
|
|
ITR501
|
ITR501DL
|
|
|
ITR506
|
ITR506DL
|
|
|
ITR615
|
ITR615DL
|
Mode fichier uniquement
|
Implémentation UNIX
Exécuter la procédure
Positionner les variables d'environnement dans le répertoire $RDJ_EXEC/script
:
- Exécuter le script :
rdjenv
- Si COBOL cobolit exécuter le script :
cobol-it-setup-Axway.sh
Lancer le makefile
dans le répertoire $RDJ_EXEC/exit
pour :
- Supprimer l'exécutable et les objets exits :
make -f exitxxx.mak clean
- Compiler les exits et construire l'exécutable :
make -f exitxxx.mak <Target>
Où :
- xxx vaut :
- fic pour indiquer le mode fichier
- mqs pour indiquer le mode MQSeries
- jms pour indiquer le mode JMS.
- Target vaut une des valeurs indiquées dans le tableau.
Les makefiles exitfic.mak, , exitjms.mak et exitmqs.mak comportent des cibles qui appellent des sous-cibles pour chaque exit et créent les exécutables.
Lorsque vous sélectionnez une cible, tous les exits en C et COBOL qui correspondent au mode xxx sont générés. Toutefois, l’appel externe ITR501 est généré en fonction de la cible.
exitfic.mak
|
FIC_C
|
ITR501 en C
|
|
FIC_COB
|
ITR501 en COBOL
|
|
ORA_C
|
ITR501 en C avec accès à la base de données Oracle
|
exitmqs.mak
|
MQS_C
|
ITR501 en C
|
|
MQS_COB
|
ITR501 en COBOL
|
|
ORA_C
|
ITR501 en C avec accès à la base de données Oracle
|
exitjms.mak |
JMS_C |
ITR501 en C |
|
JMS_COB |
ITR501 en COBOL |
|
JMS_ORAC |
ITR501 en C avec accès à la base de données Oracle |
Résultats
Les modules Exit sont créés dans le répertoire $RDJ_EXEC/exit. Les exécutables sont des bibliothèques partagées dont le suffixe suff (sl,so), défini dans le fichier de livraison CONFIG.MACHINE, dépend du système d’exploitation.
Libexaeen
|
exaeenc.c ( + exidllh.h)
|
|
libexaeen.suff
|
Mode fichier uniquement
|
Libaxaeme
|
exaemec.c ( + exidllh.h)
|
|
libaxaeme.suff
|
Mode fichier uniquement
|
Libexieen
|
exieenc.c ( + plgdllh.h)
|
EXIEEN.cbl
|
libexieen.suff
|
|
Libexieme
|
exiemec.c ( + plgdllh.h)
|
EXIEME.cbl
|
libexieme.suff
|
|
Libexierg
|
exiergc.c ( + plgdllh.h)
|
EXIERG.cbl
|
libexierg.suff
|
|
Libexirme
|
exirmec.c ( + exidllh.h)
|
|
libexirme.suff
|
Mode fichier uniquement
|
Libexirst
|
exirstc.c ( + exidllh.h)
|
EXIRST.cbl
|
libexirst.suff
|
Mode fichier uniquement
|
Libexitmq
|
exitmqc.c ( + exitmqh.h)
|
|
libexitmq.suff
|
Mode JMS et MQSeries uniquement
|
libitr025*
|
|
ITR025.cbl
|
libitr025.suff
|
Mode fichier uniquement
|
libitr501Cob
|
|
ITR501.cbl
|
libitr501.suff
|
|
libitr501C
|
ITR501.c (ITR501.h)
|
|
libitr501.suff
|
|
libitr501OraC
|
ITR501.c (ITR501.h)
|
|
libitr501.suff
|
|
libitr506
|
|
ITR506.cbl
|
libitr506.suff
|
|
libitr615
|
|
ITR615.cbl
|
libitr615.suff
|
Mode fichier uniquement
|
Implémentation Windows
Prérequis
- Microsoft Visual Studio 2010
- Visual Cobol 2.1
Vous pouvez utiliser la méthode graphique ou manuelle.
Méthode graphique
- Double-clic sur le fichier DLL_FIC.sln, DLL_JMS.sln ou DLL_MQS.sln dans le répertoire %RDJ_EXEC%\exit.
Visual Studio affiche les modules exit du projet.
- Contrôler les options de compilation dans les onglets Configurations des Solutions et Plateformes des Solutions.
- Sélectionner le module à compiler dans la liste des modules disponibles.
- Exécuter le Build (ou Re-Build).
Méthode manuelle
Exécuter le makefile correspondant situé dans le répertoire %RDJ_EXEC%exit pour les modes fichier, JMS ou MQSeries.
Les procédures sont communes et ne doivent pas être modifiées.
Vous pouvez compiler l’exit :
- en mode debug pour le tester
msbuild DLL_FIC.sln /p:Configuration=Debug /p:Platform=x64
msbuild DLL_MQS.sln /p:Configuration=Debug /p:Platform=x64
msbuild DLL_JMS.sln /p:Configuration=Debug /p:Platform=x64
msbuild DLL_FIC.sln /p:Configuration=Release /p:Platform=x64
msbuild DLL_MQS.sln /p:Configuration=Release /p:Platform=x64
msbuild DLL_JMS.sln /p:Configuration=Release /p:Platform=x64
Résultats
Les modules Exit sont créés dans le répertoire %RDJ_EXEC%\exit. Les exécutables sont sous forme de DLL.
EXAEEN*
|
exaeenc.c ( + exidllh.h)
|
|
EXAEEN.dll
|
Mode fichier uniquement
|
EXAEME*
|
exaemec.c ( + exidllh.h)
|
|
EXAEME.dll
|
Mode fichier uniquement
|
EXIEEN
|
exieenc.c ( + plgdllh.h)
|
EXIEEN.cbl
|
EXIEEN.dll
|
|
EXIEME
|
exiemec.c ( + plgdllh.h)
|
EXIEME.cbl
|
EXIEME.dll
|
|
EXIERG
|
exiergc.c ( + plgdllh.h)
|
EXIERG.cbl
|
EXIERG.dll
|
|
EXIRME*
|
exirmec.c ( + exidllh.h)
|
|
EXIRME.dll
|
Mode fichier uniquement
|
EXIRST*
|
exirstc.c ( + exidllh.h)
|
EXIRST.cbl
|
EXIRST.dll
|
Mode fichier uniquement
|
EXITMQ**
|
exitmqc.c ( + exitmqh.h)
|
|
EXITMQ.dll
|
Mode JMS ou MQSeries uniquement
|
ITR025*
|
|
ITR025.cbl
|
ITR025.dll
|
Mode fichier uniquement
|
ITR501_C
|
ITR501.c (ITR501.h)
|
|
ITR501.dll
|
|
ITR501_COB
|
|
ITR501.cbl
|
ITR501.dll
|
|
ITR506
|
|
ITR506.cbl
|
ITR506.dll
|
|
ITR615*
|
|
ITR615.cbl
|
ITR615.dll
|
Mode fichier uniquement
|
Migrer vers une version DLL
Restrictions : Cette migration n’est disponible que pour les clients disposant :
- D’un encodage Latin
- De versions précédentes correspondant à celles spécifiées par plateforme dans les sections suivantes
Procédure de migration
Cette procédure s’applique à toutes les plateformes.
exits en COBOL
Les noms des sources n'ont pas changé.
- Copier les sources des exits de l'environnement courant vers le nouvel environnement sans changer les noms.
- Créer les sources des exits dans le nouvel environnement.
exits en C
Le nom des sources et des fonctions ont changé conformément à ce qui est indiqué dans les tables spécifiques des systèmes d’exploitation.
- Copier le contenu des fonctions et des sources des exits depuis l’environnement courant dans les fonctions et les sources des exits correspondants du nouvel environnement.
- Créer les sources des exits dans le nouvel environnement.
Migrer vers une version DLL sur MVS
Restriction : Rule Engine V1.1.0 et antérieure
Table des références croisées pour les sources des exits C
Exit source en C
|
Fonction Exit en C
|
Exit source en C
|
Fonction Exit en C
|
EXITC ( + EXITH)
|
EXAEEN
|
EXAEENC
|
EXAEEN_C
|
EXITC ( + EXITH)
|
EXAEME
|
EXAEMEC
|
EXAEME_C
|
PLGC ( + PLGH)
|
EXIEEN
|
EXIEENC
|
EXIEEN_C
|
PLGC ( + PLGH)
|
EXIEME
|
EXIEMEC
|
EXIEME_C
|
PLGC ( + PLGH)
|
EXIERG
|
EXIERGC
|
EXIERG_C
|
EXITC ( + EXITH)
|
EXIRME
|
EXIRMEC
|
EXIRME_C
|
EXITC ( + EXITH)
|
EXIRST
|
EXIRSTC
|
EXIRST_C
|
Migrer vers une version DLL sur Windows, bibliothèques partagées sur UNIX
Restrictions :
- Windows : Rule Engine V1.1.0 et antérieure
- UNIX : Rule Engine V1.1.0 et antérieure
Table des références croisées pour les sources des exits C
Exit source en C
|
Fonction Exit en C
|
Exit source en C
|
Fonction Exit en C
|
exitc.c ( + exith.h)
|
EXAEEN
|
exaeenc.c
|
EXAEEN_C
|
exitc.c ( + exith.h)
|
EXAEME
|
exaemec.c
|
EXAEME_C
|
plgc.c ( + plgh.h)
|
EXIEEN
|
exieenc.c
|
EXIEEN_C
|
plgc.c ( + plgh.h)
|
EXIEME
|
exiemec.c
|
EXIEME_C
|
plgc.c ( + plgh.h)
|
EXIERG
|
exiergc.c
|
EXIERG_C
|
exitc.c ( + exith.h)
|
EXIRME
|
exirmec.c
|
EXIRME_C
|
exitc.c ( + exith.h)
|
EXIRST
|
exirstc.c
|
EXIRST_C
|