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.

Plateforme Répertoire Mode MQSeries Mode Fichier Mode JMS

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 :

  1. 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
  2. Enlever les commentaires dans les instructions de compilation et d’impression dans la procédure
  3. 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.

Programme C Programme COBOL Exécutable Commentaires

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.

makefile Cible Appel externe

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.

Sous-cible Programme C Programme COBOL Exécutable Commentaire

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

  1. 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.
  2. Contrôler les options de compilation dans les onglets Configurations des Solutions et Plateformes des Solutions.
  3. Sélectionner le module à compiler dans la liste des modules disponibles.
  4. 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

  • en mode normal

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.

Exit / Appel externe Programme C Programme COBOL Exécutable Commentaire

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é.

  1. Copier les sources des exits de l'environnement courant vers le nouvel environnement sans changer les noms.
  2. 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.

  1. 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.
  2. 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

Avant Nouveau
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

Avant Nouveau
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

Related Links