samples mq – cics (base du call out)21 mise en œuvre...

57
Mise en œuvre Hercules & z/OS - Page - 1 - Mise en œuvre Hercules Mise en œuvre Hercules....................................................................................................................................... 1 Démarrage hercules ......................................................................................................................................... 5 Duplication & refresh de hercules ............................................................................................................... 5 Lancement de hercules - IPL z/OS – et tous les sous systèmes ...................................................................... 5 Démarrage de la console z/OS et IPL .......................................................................................................... 6 Lancement et arrêt manuel des sous systèmes ............................................................................................. 6 Arrêt complet de z/OS avec ses sous systèmes ............................................................................................ 7 Démarrage de IMS ........................................................................................................................................... 7 démarrage manuel de IMSConnect .................................................................................................................. 8 Etapes de la construction de IMS..................................................................................................................... 8 exemples de transactions IMS ......................................................................................................................... 8 Arrêt de IMS ................................................................................................................................................ 8 Stopper / starter les regions IMS.................................................................................................................. 9 Arrêt de z/OS ................................................................................................................................................... 9 DB2 ...................................................................................................................................................................... 9 Installation WebSphere MQ for Z/OS ................................................................................................................. 9 Setup Guide MQ for z/OS.............................................................................................................................. 10 Ajouter les libraries .................................................................................................................................... 10 Mise à jour LPA et LINKLST ................................................................................................................... 10 Mettre à jour ADCD.ZOSV14S.PARMLIB(PROGIM)........................................................................... 10 ajouter les MODULES(CSQ3EPX,CSQ3INI)dans ADCD.ZOSV14S.PARMLIB(IEALPADI) ............. 10 Mise à jour de la PPT................................................................................................................................. 11 Mise à jour de la table des sous systems .................................................................................................... 11 Command name prefix............................................................................................................................... 11 Procedure de démarrage de MQ ................................................................................................................ 11 Arret MQ.................................................................................................................................................... 11 Administration MQ via le user P390 commande CSQOREXX .................................................................... 11 Ajouter la définition de la transmission queue .......................................................................................... 12 Browse des Queues MQ............................................................................................................................. 12 CICS................................................................................................................................................................... 15 Mise en œuvre de CICSA .............................................................................................................................. 15 Installer Type3 SVC .................................................................................................................................. 15 ajouter la librairie de LPA CICS à MVS ................................................................................................... 15 Démarrage de CICS ...................................................................................................................................... 16 arrêt de CICS.................................................................................................................................................. 16 Activation du bridge MQ-CICS..................................................................................................................... 16 activer TCPIP dans CICS........................................................................................................................... 16 définition de DFHBRNSF dans le démarrage de CICS............................................................................. 17 Autoinstall du bridge.................................................................................................................................. 17 définition du CICS Gateway .......................................................................................................................... 18 compilation CICS - exemple pour Call Out ................................................................................................... 20 Lancer la connexion avec le bridge par CKQC ......................................................................................... 20 Lancement des Samples MQ ......................................................................................................................... 20 Paramétrage des clists dans CSQ531.SCSQCLST .................................................................................... 21 Mise en œuvre Hercules & z/OS - Page - 2 - SAMPLES MQ – CICS (base du call out)................................................................................................. 21 CICS BMS reverse utility .......................................................................................................................... 21 Test du Call Out depuis CICS........................................................................................................................ 22 Définition des ressources CICS ................................................................................................................. 22 Définition des ressources MQ pour Call Out ............................................................................................. 22 Test du call out .......................................................................................................................................... 22 IMS IVP Sample Application ............................................................................................................................ 23 Transactions de test sous IMS........................................................................................................................ 23 Transaction IVTCX ................................................................................................................................... 23 Transaction IVTNV ................................................................................................................................... 23 IMS Sample Inventory ............................................................................................................................... 24 Transaction de test IMS-DB2 DSN8CS ................................................................................................ 26 Interface IMS - DB2 et installation du sample .............................................................................................. 27 Activation du bridge MQ-IMS....................................................................................................................... 27 DISPLAY résumé des class FACILITY pour le Bridge :.......................................................................... 28 Définir le Bridge IMS dans le CSQ1MSTR .............................................................................................. 29 Définition des ressources MQ pour le bridge MQ-IMS ............................................................................ 29 Définitions RACF obligatoires pour le Bridge MQ-IMS .......................................................................... 31 Activation de la sécurité RACF pour IMS..................................................................................................... 32 Lancer un archive pour IMS .......................................................................................................................... 32 IMS810.JOBS(GENJCL)............................................................................................................................... 32 IMS : Ajout de transactions et programmes de test ....................................................................................... 32 Définition de codes transactions nouveaux................................................................................................ 33 Création de formats nouveaux et online change ........................................................................................ 34 Mise en place de DFSINSX ....................................................................................................................... 35 Purger msg sur term async : ....................................................................................................................... 35 IMS ne démarre plus .................................................................................................................................. 35 IMSJAVA installation & mise en oeuvre ...................................................................................................... 35 Mount ......................................................................................................................................................... 35 installer imsjava81 ..................................................................................................................................... 36 Verifier le JDK 1.3..................................................................................................................................... 36 Démarrage et arrêt de IMSJAVA .............................................................................................................. 37 Doc de référence IMSJAVA ...................................................................................................................... 37 CICS transactions de test ................................................................................................................................... 39 Transaction ACCT ......................................................................................................................................... 39 assemblage des maps ................................................................................................................................. 40 compilation ................................................................................................................................................ 40 Installation.................................................................................................................................................. 40 installer automatiquement le goupe DFH$ACCT dans le startup de CICS............................................... 41 Programmes de test SCORT ...................................................................................................................... 41 compilation/link ......................................................................................................................................... 41 Samples CICS DB2........................................................................................................................................ 41 Activation de la sécurité dans CICS .............................................................................................................. 42 SAMPLES LABOPHARM ........................................................................................................................... 42 CICS TCPIP EZA Samples ........................................................................................................................... 43 Compilation de EZACICSS et EZACICCS............................................................................................... 43 Mise en œuvre Link3270 ............................................................................................................................... 45 Installation transaction NACT ................................................................................................................... 45 Installation automatique de ressources CICS ........................................................................................... 45 Installation du Bridge Passthrough pour Link3270 ....................................................................................... 46

Upload: others

Post on 27-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 1 -

Mise en œuvre Hercules Mise en œuvre Hercules....................................................................................................................................... 1

Démarrage hercules ......................................................................................................................................... 5 Duplication & refresh de hercules ............................................................................................................... 5

Lancement de hercules - IPL z/OS – et tous les sous systèmes...................................................................... 5 Démarrage de la console z/OS et IPL.......................................................................................................... 6 Lancement et arrêt manuel des sous systèmes ............................................................................................. 6 Arrêt complet de z/OS avec ses sous systèmes............................................................................................ 7

Démarrage de IMS........................................................................................................................................... 7 démarrage manuel de IMSConnect.................................................................................................................. 8 Etapes de la construction de IMS..................................................................................................................... 8 exemples de transactions IMS ......................................................................................................................... 8

Arrêt de IMS ................................................................................................................................................ 8 Stopper / starter les regions IMS.................................................................................................................. 9

Arrêt de z/OS ................................................................................................................................................... 9 DB2...................................................................................................................................................................... 9 Installation WebSphere MQ for Z/OS ................................................................................................................. 9

Setup Guide MQ for z/OS.............................................................................................................................. 10 Ajouter les libraries.................................................................................................................................... 10 Mise à jour LPA et LINKLST ................................................................................................................... 10

Mettre à jour ADCD.ZOSV14S.PARMLIB(PROGIM)........................................................................... 10 ajouter les MODULES(CSQ3EPX,CSQ3INI)dans ADCD.ZOSV14S.PARMLIB(IEALPADI) ............. 10 Mise à jour de la PPT................................................................................................................................. 11 Mise à jour de la table des sous systems.................................................................................................... 11 Command name prefix............................................................................................................................... 11 Procedure de démarrage de MQ ................................................................................................................ 11 Arret MQ.................................................................................................................................................... 11

Administration MQ via le user P390 commande CSQOREXX .................................................................... 11 Ajouter la définition de la transmission queue .......................................................................................... 12 Browse des Queues MQ............................................................................................................................. 12

CICS................................................................................................................................................................... 15 Mise en œuvre de CICSA .............................................................................................................................. 15

Installer Type3 SVC .................................................................................................................................. 15 ajouter la librairie de LPA CICS à MVS ................................................................................................... 15

Démarrage de CICS ...................................................................................................................................... 16 arrêt de CICS.................................................................................................................................................. 16 Activation du bridge MQ-CICS..................................................................................................................... 16

activer TCPIP dans CICS........................................................................................................................... 16 définition de DFHBRNSF dans le démarrage de CICS............................................................................. 17 Autoinstall du bridge.................................................................................................................................. 17

définition du CICS Gateway.......................................................................................................................... 18 compilation CICS - exemple pour Call Out................................................................................................... 20

Lancer la connexion avec le bridge par CKQC ......................................................................................... 20 Lancement des Samples MQ ......................................................................................................................... 20

Paramétrage des clists dans CSQ531.SCSQCLST .................................................................................... 21

Mise en œuvre Hercules & z/OS - Page - 2 -

SAMPLES MQ – CICS (base du call out)................................................................................................. 21 CICS BMS reverse utility .......................................................................................................................... 21

Test du Call Out depuis CICS........................................................................................................................ 22 Définition des ressources CICS ................................................................................................................. 22 Définition des ressources MQ pour Call Out............................................................................................. 22 Test du call out.......................................................................................................................................... 22

IMS IVP Sample Application ............................................................................................................................ 23 Transactions de test sous IMS........................................................................................................................ 23

Transaction IVTCX ................................................................................................................................... 23 Transaction IVTNV ................................................................................................................................... 23 IMS Sample Inventory............................................................................................................................... 24 Transaction de test IMS-DB2 DSN8CS ................................................................................................ 26

Interface IMS - DB2 et installation du sample .............................................................................................. 27 Activation du bridge MQ-IMS....................................................................................................................... 27

DISPLAY résumé des class FACILITY pour le Bridge :.......................................................................... 28 Définir le Bridge IMS dans le CSQ1MSTR .............................................................................................. 29 Définition des ressources MQ pour le bridge MQ-IMS ............................................................................ 29 Définitions RACF obligatoires pour le Bridge MQ-IMS .......................................................................... 31

Activation de la sécurité RACF pour IMS..................................................................................................... 32 Lancer un archive pour IMS .......................................................................................................................... 32 IMS810.JOBS(GENJCL)............................................................................................................................... 32 IMS : Ajout de transactions et programmes de test ....................................................................................... 32

Définition de codes transactions nouveaux................................................................................................ 33 Création de formats nouveaux et online change ........................................................................................ 34 Mise en place de DFSINSX....................................................................................................................... 35 Purger msg sur term async :....................................................................................................................... 35 IMS ne démarre plus.................................................................................................................................. 35

IMSJAVA installation & mise en oeuvre ...................................................................................................... 35 Mount......................................................................................................................................................... 35 installer imsjava81 ..................................................................................................................................... 36 Verifier le JDK 1.3..................................................................................................................................... 36 Démarrage et arrêt de IMSJAVA .............................................................................................................. 37 Doc de référence IMSJAVA...................................................................................................................... 37

CICS transactions de test ................................................................................................................................... 39 Transaction ACCT......................................................................................................................................... 39

assemblage des maps ................................................................................................................................. 40 compilation ................................................................................................................................................ 40 Installation.................................................................................................................................................. 40 installer automatiquement le goupe DFH$ACCT dans le startup de CICS............................................... 41 Programmes de test SCORT ...................................................................................................................... 41 compilation/link ......................................................................................................................................... 41

Samples CICS DB2........................................................................................................................................ 41 Activation de la sécurité dans CICS .............................................................................................................. 42 SAMPLES LABOPHARM ........................................................................................................................... 42 CICS TCPIP EZA Samples ........................................................................................................................... 43

Compilation de EZACICSS et EZACICCS............................................................................................... 43 Mise en œuvre Link3270 ............................................................................................................................... 45

Installation transaction NACT ................................................................................................................... 45 Installation automatique de ressources CICS ........................................................................................... 45

Installation du Bridge Passthrough pour Link3270 ....................................................................................... 46

Page 2: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 3 -

Liste des fichiers du SupportPack CA1E................................................................................................... 46 Ajouter la loadlib dans la proc de CICSA ................................................................................................. 46 Ajouter les ressources du fichier CICSTS22.CA1E.DEF dans le démarrage de CICS............................ 46 CICS BMS reverse utility .......................................................................................................................... 46

Test de samples PUT et GET MQ en batch................................................................................................... 47 Programmes Batch MQ pour Call Out............................................................................................................... 47

Compilation.................................................................................................................................................... 47 Exécution du call out en batch ....................................................................................................................... 47

compiliation ............................................................................................................................................... 47 Exécution ................................................................................................................................................... 48

Test de samples PUT et GET MQ sous ......................................................................................................... 48 Compilation et link-edit ............................................................................................................................. 48

Mise en place CALL OUT JRULES ................................................................................................................. 48 Définitions...................................................................................................................................................... 48

Objets MQ pour JRULES .......................................................................................................................... 49 Installation de jZOS (TOMCAT sur z/OS)........................................................................................................ 49

Download JZOS............................................................................................................................................. 49 Installer TOMCAT sur z/OS.......................................................................................................................... 50 Déployer l’application smart.......................................................................................................................... 51 Problems & TIPS on UNIX z/OS .................................................................................................................. 51

Installation de WebSphere 4.0.1 ........................................................................................................................ 52 Mise en œuvre du passticket .............................................................................................................................. 53

Exemple pour le passticket de TSO............................................................................................................... 54 Exemple pour le passticket des jobs batch..................................................................................................... 54 Exemple pour le passticket de IMS ............................................................................................................... 54

DIVERS JOBS et questions............................................................................................................................... 54 Mise à l’heure et timezone............................................................................................................................. 54 clear de la sys1.logrec .................................................................................................................................... 54 démarrage d'un INIT supplémentaire............................................................................................................. 55 Purge de tous les vieux sysouts dans JES ...................................................................................................... 55 récupérer des membres de PDS ou un fichier complet de load modules depuis un autre hercules ............... 55 Ajouter un Page data set ................................................................................................................................ 55 GTF Trace...................................................................................................................................................... 56 Création d’un nouveau volume pour hercules z/OS ...................................................................................... 57

MVS Frequently Asked Questions .................................................................................................................... 57 Console Operations........................................................................................................................................ 57

ANNEXES - Démarrage Hercules..................................................................................................................... 65 Toute la doc Hercules .................................................................................................................................... 65 Shéma général ................................................................................................................................................ 65 MVS TCPIP configuration using CTCI-W32................................................................................................ 66 Définitions réseau coté z/OS........................................................................................................................ 67 Définitions réseau coté Windows ................................................................................................................ 68 Définition du DNS SCORT dans Hercules.................................................................................................... 68

HOSTS.LOCAL......................................................................................................................................... 68 Stopper/relancer TCPIP ............................................................................................................................ 69

Source COBOL CICS pour test Call Out ...................................................................................................... 69 Source COBOL Batch pour test Call Out ...................................................................................................... 75 COPY CAREQH et CAREPH pour Call Out SCORT.................................................................................. 80 Samples CICS DB2 pour transaction D8SC.................................................................................................. 81

JOB DSNTEJ1 – création des objets DB2 et chargement des tables ........................................................ 81

Mise en œuvre Hercules & z/OS - Page - 4 -

JOB DSNTEJ5A – Compilation de la SQLCA formater routine ............................................................ 104 JOB DSNTEJ5C – Compilation des sources, MAPS, BIND, et GRANT du plan DB2 ......................... 107 Job DSNTEJ4C installaton de l’application IMS-DB2 sample.............................................................. 110

Page 3: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 5 -

Toute la doc livrée avec l’installation Hercules chez Scort

Démarrage hercules Avant de démarrer hercules, il faut installer \\vouvray\hercules\Installables\WinPcap_3_1.exe en local pour capturer les trames ethernet et les envoyer à hercules

Duplication & refresh de hercules 1. arrêter hercules pour faire cette opération 2. copier

a. le répertoire \\vouvray\hercules\Devices si on veut juste un refresh de z/OS b. tout \\vouvray\hercules\ pour une première installation c. obtenir une IP Virtuelle pour le nouvel hercule (pour une création) d. paramétrer hercules.cnf pour y mettre ses propres IP – cad celle de windows

+ l’IP virtuelle de z/OS (voir annexes) Comment dupliquer une machine hercules ? Les étapes de la duplication d’une source vers une cible

1. sauvegarder ou préparer les paramètres TCPIP de MVS (TCPIP.PROFILE.TCPIP) – pour cela s’il existe déjà et qu’on veut un refresh , il suffit de faire un transfert (receive from host) depuis la console TSO avant de faire shutdown du système cible

2. sélectionner les disques à dupliquer a. sélectionner les disques modifiés en comparant le répertoire

c:\hercules\DEVICES de la source et de la cible b. copier seulement les fichiers de taille différente

3. démarrer hercules et mettre à jour TCPIP a. connecter une console sur le port 3270 et l’IP de la machine windows b. faire IPL c. connecter un TSO sur le 3270 d. arrêter TCPIP e. reloader le fichier TCPIP.PROFILE.TCPIP ou le modifier à la main si pas de

copie du précédent f. restarter TCPIP

4. A noter qu’on ne peut pas connecter le DNS de HERCULE sur celui du domaine SCORT si on a pas réservé un nom pour chaque machine hercules (comme le nom z/OS HERCULES sur la machine windows VOUVRAY)

Lancement de hercules - IPL z/OS – et tous les sous systèmes Sur le répertoire d'installation c:\HERCMSVC taper hercules

L’initialisation de la dll TunTap32 indique la capture et le routage des adresses et des ports et de hercules.cnf vers z/OS Même si TCPIP de z/os n’est pas configuré, on peut se connecter sur le port 3270 pour avoir la mire VTAM

Hercules Version 3.03 (c)Copyright 1999-2005 by Roger Bowler, Jan Jaeger, and others Built on Dec 23 2005 at 11:51:05 Build information: Win32 (MSVC) build Modes: S/370 ESA/390 z/Arch Max CPU Engines: 8 …/… HHCTE003I Waiting for console connection on port 3270 …/… C:\HERCMSVC\TunTap32.dll version 3.1.7.852 initiated HHCCT073I 0E20: TUN device tun0 opened …/… HHCHT006I Waiting for HTTP requests on port 8081

Mise en œuvre Hercules & z/OS - Page - 6 -

(à cause de la directive CNSLPORT 3270) et l’adresse de la machine virtuelle z/OS (à cause de la directive 0E20.2 3088 CTCI <adresse virtuelle z/OS> <adresse Windows>)

Démarrage de la console z/OS et IPL démarrer une session vista port 3270 sur l’IP virtuelle de hercules (elle est dans le DNS Scort sous le nom hercules) IPL A80 (sur la session DOS ou on a démarré hercules) L’ipl charge tous les sous systèmes de z/OS sauf CICS, IMS, et MQ qui sont démarrés manuellement Lancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Cette commande enchaîne le démarrage de tous les sous –systèmes avec une séquence d’attente entre chaque

Lancement et arrêt manuel des sous systèmes Si on passe ces commandes depuis une connexion à TSO sous SDSF, il faut les faire précéder d’un « / » Démarrage de DB2 -START DB2 Et arrêt par -STOP DB2 MODE(FORCE) Démarrage manuel de MQ S STARTMQ Démarrage de la connexion du bridge MQ-IMS lors du démarrage de IMS ou s’il est déjà démarré par les commandes <reply>/STO OTMA <reply>/SECURE OTMA NONE <reply>/STA OTMA Et arrêt par %CSQ1 STOP QMGR MODE(FORCE) Démarrage de IMS S STARTIMS Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/NRE CHKPT 0 FMT ALL. Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/STA DC Pour stopper IMS Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/CHE FREEZE Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/STO DC P IMS81OM1 P IMS81RL1 P IMS81RM1 P IMS81SC1 Démarrage de IMS Connect (IMS doit être démarré) S IMSRDR,MBR=IMS81CON Et arrêt par P IMS81CON

Page 4: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 7 -

Démarrage de CICS S CICSA Et arrêt par F CICSA,CEMT PERF SHUT IMMED

Arrêt complet de z/OS avec ses sous systèmes F CICSA,CEMT PERF SHUT IMMED P IMS81CON Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/CHE FREEZE Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/STO DC P IMS81OM1 P IMS81RL1 P IMS81RM1 P IMS81SC1 -STOP DB2 MODE(FORCE) %CSQ1 STOP QMGR MODE(FORCE)

Puis faire logoff TSO et déconnecter tous les émulateurs (évite des complications dans l’arrêt) et sur la console z/OS sur VOUVRAY S SHUTDOWN Attendre le msg suivant: $HASP099 ALL AVAILABLE FUNCTIONS COMPLETE Puis passer la commande D A,L Qui doit donner ceci (uniquement JES2 actif)

Passer alors la commande $PJES2 Et attendre 10 secondes pour passer dans la session DOS ou l’on a lancé hercules et lancer la commande QUIT Qui demande une trentaine de secondes pour bien fermer tous les disques virtuels CKD

Démarrage de IMS (j'ai mis une procédure pour tout faire par une commande à la console MVS s STARTIMS qui fait ce qui suit: s imsrdr,mbr=ims81rl1 s imsrdr,mbr=ims81sc1 s imsrdr,mbr=ims81om1 s imsrdr,mbr=ims81rm1 s imsrdr,mbr=ims81cr1 démarrage de IMS Connect s imsrdr,mbr=ims81con (pas automatique, le faire à la main , voir plus loin) pour démarrer une transaction il faut ensuite répondre au reply IMS sur la console MVS comme suit: 02/nre chkpt 0 fmt all. /ERE CHECKPOINT 0 BUILDQ OVERRIDE. IMS ABEND au démarrage:

IEE114I 09.42.40 2007.092 ACTIVITY 759 JOBS M/S TS USERS SYSAS INITS ACTIVE/MAX VTAM OAS 00000 00001 00000 00027 00020 00000/00000 00001 JES2 JES2 IEFPROC NSW S

Mise en œuvre Hercules & z/OS - Page - 8 -

Cold start par: /ERE COLDSYS. 04/sta dc /xx/dis a (sous tso) IMS810.TCFSLIB(DFSTCF)

démarrage manuel de IMSConnect IMSCONNECT ne démarre pas tout seul car il faut d’abord fair le NRE et le start DC pour qu’il soit opérationnel lors de son démarrage S IMSRDR,MBR=IMS81CON

Etapes de la construction de IMS IMS810.INSTALIB(IV3C201J) � macros de définition du système IMS810.INSTALIB(IV3C202J) � JCL de preprocesseur IMS810.INSTALIB(IV3C203J) � Stage SYSDEF > gén_re un Syspunch IMS810.INSTALIB(IV3C301T) � 1 : PSBGEN � définir les PSB dans la PSBLIB 2 : IMSCOBOL � compiler & linkedit des pgm dans la PGMLIB 3 : ACBGEN � compilerr les ACB dans ACBLIB 4 : OLCUTL � préparer Online Change ACBLIB vers A ou B 5 : /Mod Prepare puis commit

exemples de transactions IMS part an960c10 disburse an960c10,28009126,u,100 dspinv an960c10,28009126 addpart an911c11,karsher,93 addinv an911c12,12345678 close an911c12,12345678,15,15 dspinv an911c12,12345678 dspalli an911c12 /for IVTCM permet de lancer une conversation dans la région IMS81JMP (région java), voir mise en œuvre plus loin

Arrêt de IMS xx/che freeze

DFS0739I LOGIC ERROR DDNAME=DFSOLP00 LOG SEQ=000000000 0000547 IVP1 DFS0739X ERROR READING IMS LOG RC=22 DDNAME=DFSOLP00 LOG SEQ=0000000000000547 IVP1 DFS629I IMS RST TCB ABEND - IMS 0175 IVP1

Page 5: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 9 -

xx/dis a (si nécessaire pour router les msg ims vers la console MVS) xx/sto dc p ims81sc1 p ims81om1 p ims81rl1 p ims81rm1 p ims81cr1 .... (autant de de proc actives dans D J,L)

Stopper / starter les regions IMS /IVP1DIS A REG /IVP1STO REG 1 2 3 4 Redémarrer /S IMSRDR,MBR=IMSMSG Ou démarrer une region seulement Soit par /S imsrdr,mbr=IMS81JMP Ou bien utiliser le command prefix de IMS /IVP1STA REG IMS81JMP /IVP1STO REG JOBNAME IMS81JMP

Arrêt de z/OS s shutdown f dlf,mode=quiesce (eventuellement au reply xxfstop) p dlf $pjes2 Puis sur la fenêtre DOS de Hercules la commande : quit Qui va couper la session sans l’émulateur de la console 3270

DB2 Start et stop DB2 -START DB2

-STOP DB2 MODE(QUIESCE) -STOP DB2 MODE(FORCE)

Installation WebSphere MQ for Z/OS instructions trouvées sur http://publibfp.boulder.ibm.com/epubs/pdf/i1025483.pdf fichier de distribution correspondant aux jcl d'installation CSQ531.ACSQINST procedure à suivre page 37 JCL de customisation CSQ531.ACSQINST(CSQ8SYSJ)

Mise en œuvre Hercules & z/OS - Page - 10 -

Setup Guide MQ for z/OS http://publibfp.boulder.ibm.com/epubs/pdf/csqsav02.pdf

Ajouter les libraries CSQ531.SCSQAUTH CSQ531.SCSQLINK à ADCD.ZOSV14S.PARMLIB(LPALSTIM)

Mise à jour LPA et LINKLST Les commandes suivantes sont dynamiques, après un IPL, elles sont prises en compte via SETPROG LPA,ADD,MODNAME=(CSQ3INI,CSQ3EPX),DSNAME=CSQ531.SCSQLINK SETPROG LPA,ADD,MODNAME=(CSQ3EcMX),DSNAME=csq531.sCSQsNLe SETPROG LPA,ADD,MASK=*,DSNAME=CSQ531.SCSQLINK pour cela ajouter LNKLST ADD NAME(LNKLST00) DSN(CSQ531.SCSQAUTH) VOLUME(S4RES1) LNKLST ADD NAME(LNKLST00) DSN(CSQ531.SCSQLINK) VOLUME(S4RES1) à la fin de ADCD.ZOSV14S.PARMLIB(PROGIM)

Mettre à jour ADCD.ZOSV14S.PARMLIB(PROGIM)

avec les STEPLIB de la proc CSQ1MSTR

ajouter les MODULES(CSQ3EPX,CSQ3INI)dans ADCD.ZOSV14S.PARMLIB(IEALPADI) sous la forme : INCLUDE LIBRARY(CSQ531.SCSQLINK) MODULES(CSQ3EPX, CSQ3INI) Normalement il faut aussi le faire pour (CSQ3EMX),DSNAME=CSQ531.SCSQLNLx où x est le langage local installé (pas sur hercules ADCD)

APF ADD DSNAME(CSQ531.SCSQLINK) VOLUME(S4RES1) APF ADD DSNAME(CSQ531.SCSQAUTH) VOLUME(S4RES1) APF ADD DSNAME(CSQ531.CSQ1.SCSQAUTH) VOLUME(S4RES1) APF ADD DSNAME(CSQ531.SCSQSNLE) VOLUME(S4RES1) APF ADD DSNAME(CSQ531.SCSQCICS) VOLUME(S4RES1) APF ADD DSNAME(CSQ531.SCSQANLE) VOLUME(S4RES1) APF ADD DSNAME(CSQ531.SCSQMVR1) VOLUME(S4RES1) APF ADD DSNAME(CSQ531.SCSQMVR2) VOLUME(S4RES1) APF ADD DSNAME(DSN710.SDSNLOAD) VOLUME(S4DB21)

Page 6: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 11 -

Mise à jour de la PPT Ajouter à la fin de ADCD.ZOSV14S.PARMLIB(SCHED00)

Mise à jour de la table des sous systems déjà faite dans ADCD.ZOSV14S.PARMLIB(IEFSSNIM) SUBSYS SUBNAME(CSQ1) /* MQ CSQ1 SUBSYSTEM */ INITRTN(CSQ3INI) INITPARM('CSQ3EPX,%CSQ1,M')

Command name prefix

/DISPLAY OPDATA donne le résultat suivant: (%CSQ1 est le préfixe de MQ)

Procedure de démarrage de MQ dans ADCD.ZOSV14S.PROCLIB(CSQ1MSTR) et CSQ1CHIN La commande de démarrage de MQ à la console MVS est %CSQ1 START QMGR %CSQ1 START CHINIT

Arret MQ par %CSQ1 STOP CHINIT %CSQ1 STOP QMGR MODE=FORCE

Administration MQ via le user P390 commande CSQOREXX maj de la proc de logon de P390 ADCD.ZOSV14S.PROCLIB(DBSPROC) par ajout des lib suivantes à ISPLLIB

RESPONSE=P390 IEE603I 12.46.27 OPDATA DISPLAY 113 PREFIX OWNER SYSTEM SCOPE REMOVE FAILDSP $ JES2 P390 SYSTEM NO SYSPURG %CSQ1 CSQ1 P390 SYSTEM NO PURGE

PPT PGMNAME(CSQYASCP) /* CSQ - THIS IS REQUIRED FOR WEBSPHERE MQ */ CANCEL /* CAN BE CANCELLED */ KEY(7) /* STORAGE PROTECTION KEY */ SWAP /* PROGRAM IS SWAPPABLE */ NOPRIV /* NOT PRIVILEGED */ DSI /* REQUIRES DATA SET INTEGRITY*/ PASS /* NOT ALLOWED TO BYPASS PASS PROT */ SYST /* SYSTEM TASK SO NOT TIMED */ AFF(NONE) /* NO PROCESSOR AFFINITY */ NOPREF /* NO PREFERRED STORAGE FRAMES */

Mise en œuvre Hercules & z/OS - Page - 12 -

Modifier le nom de la INITQ du bridge CICS dans CSQ531.CSQ1.SCSQPROC(CSQ4INYG) comme suit: (à la place de CICSA.INITQ) DEFINE QLOCAL( 'CICS01.INITQ' ) + QSGDISP( QMGR ) + on puut le faire en ligne de commande

Ajouter la définition de la transmission queue CSQ531.CSQ1.SCSQPROC(CSQ4CKBM) à partir du modèle fourni dans CSQ531.SCSQPROC(CSQ4CKBM) et ajouter ce membre dans le DDNAME CSQINP2 (définitions des ressources) de la proc CSQ1MSTR

Browse des Queues MQ Sous le user P390 option 6 lancer : ex 'csq531.SCSQclst(csq4rch1)' avec les infos suivantes :(attention case sensitive)

À noter que l’outil fait un MQOPEN en mode exclusif, donc ne partage pas l’ouverture simultanée avec un autre (code 2042: Object in use)

// DD DSN=CSQ531.CSQ1.SCSQAUTH,DISP=SHR // DD DSN=CSQ531.SCSQANLE,DISP=SHR // DD DSN=CSQ531.SCSQAUTH,DISP=SHR // DD DSN=CEE.SCEERUN,DISP=SHR // DD DSN=DSN710.SDSNLOAD,DISP=SHR

Define a Local Queue - 1 Complete fields, then press F8 for further fields, or Enter to define queue. More: + Queue name . . . . . . . . . CICS01.INITQ Disposition . . . . . . . . . Q G=Group, S=Shared, Q=Qmgr on CSQ1 Description . . . . . . . . . CKTI initiation queue Put enabled . . . . . . . . . Y Y=Yes, N=No Get enabled . . . . . . . . . Y Y=Yes, N=No Usage . . . . . . . . . . . . N N=Normal, X=XmitQ Storage class . . . . . . . . SYSVOLAT CF structure name . . . . . .

Queue Manager Name : CSQ1 : Queue Name : JRULES.TARGET.QUEUE :

Page 7: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 13 -

Placer le curseur sur une ligne pour voir son détail (PF8 pour la suite)

------------- IBM WebSphere MQ for z/OS -- Sample Programs - Row 1 to 13 of 15 COMMAND ==> Queue Manager : CSQ1 : Queue : CSQ1.DEAD.QUEUE : Message number 01 of 15 Total Msgs : 000000015 Msg Put Date Put Time Format User Put Application No MM/DD/YYYY HH:MM:SS Name Identifier Type Name 01 11/29/2006 12:51:53 MQDEAD START2 00000028 WebSphere MQ Client 02 11/29/2006 15:41:47 MQDEAD START2 00000028 WebSphere MQ Client

Mise en œuvre Hercules & z/OS - Page - 14 -

------------- IBM WebSphere MQ for z/OS -- Sample Programs - Row 1 to COMMAND ==> Queue Manager : CSQ1 : Queue : CSQ1.DEAD.QUEUE : Forward to Q Mgr : CSQ1 : Forward to Queue : AMQ.BFC7283E987B1000 : Action : : (D)elete (F)orward Message Content : ---------------------------------------------------------------------- Message Descriptor StrucId : 'MD ' Version : 000000001 Report : 000000000 MsgType : 000000001 Expiry : -00000001 Feedback : 000000000 Encoding : 000000785 CodedCharSetId : 000000500 Format : 'MQDEAD ' Priority : 000000004 Persistence : 000000000 MsgId : 'C3E2D840C3E2D8F14040404040404040BFC7283ECFC7D000'X CorrelId : '414D51214E45575F53455353494F4E5F434F5252454C4944'X BackoutCount : 000000004 ReplyToQ : 'AMQ.BFC7283E987B1000 ' ReplyToQMgr : 'CSQ1 ' UserIdentifier : 'START2 ' AccountingToken : '1A0FC3E2D8F1C3C8C9D5F0F9F3F8F8C3F3F00009388C30000000000000000000'X ApplIdentityData : ' ' PutApplType : 000000028 PutApplName : 'WebSphere MQ Client for Java' PutDate : '20061129' PutTime : '12515363' ApplOriginData : ' ' Dead Letter Header StrucId : 'DLH ' Version : 000000001 Reason : 000000411 DestQName : 'SYSTEM.CICS.BRIDGE.QUEUE DestQMgrName : 'CSQ1 Encoding : 000000785 CodedCharSetId : 000000500 Format : 'MQCICS ' PutApplType : 000000021 PutApplName : 'CICS CKBP ' PutDate : '20061129' PutTime : '12515300' Message Buffer : 188 byte(s) 00000000 : C3C9 C840 0000 0002 0000 00B4 0000 0000 'CIH ............' 00000010 : 0000 0000 4040 4040 4040 4040 0000 0000 '.... ....'

Page 8: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 15 -

CICS

Mise en œuvre de CICSA - problème de SVC 216 non installée (msg DFHKE014)

Installer Type3 SVC voir http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfhg4/dfhg4b0071.htm

1. copier de CICSTS22.CICS.SDFHLPA(DFHCSVC) vers ADCD.ZOSV14S.LPALIB(DFHCSVC) 2. Ajouter le module DFHCSVC dans ADCD.ZOSV14S.PARMLIB(IEALPADI) 3. ajouter la SVC 216 dans ADCD.ZOSV14S.PARMLIB(IEASVCIM)SVCPARM

216,REPLACE,TYPE(3),EPNAME(DFHCSVC) /* CICS SVC */ 4. Mettre la librarie de la SIT en APF (programmes autorisés) dans

ADCD.ZOSV14S.PARMLIB(PROGIM) 5. ajouter APF ADD DSNAME(CICSTS22.CICS.SDFHAUTH)

VOLUME(S4CIC1) 6. mettre a jour la linklst LNKLST ADD NAME(LNKLST00) DSN(CICSTS22.CICS.SDFHLPA)

VOLUME(S4CIC1) DFHKE0101 DBDCCICS DFHSIP IS NOT APF-AUTHORIZED. CICS WILL TERMINATE. Explanation: Part of CICS initialization must be done in an APF-authorized state. The kernel has detected that DFHSIP is not APF-authorized. During initialization, CICS may not have access to the user's applid coded in the SIT. If CICS produces this message in these circumstances, it uses the default applid value DBDCCICS.

ajouter la librairie de LPA CICS à MVS CICSTS22.CICS.SDFHLPA, dans ADCD.ZOSV14S.PARMLIB(LPALSTIM)

//IBMUSERB JOB (20,FB3),TRALEY,REGION=4M, // CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID,COND=(0,NE) //ST2 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //SYSUT3 DD UNIT=SYSDA,SPACE=(3120,(20,10)) //SYSUT4 DD UNIT=SYSDA,SPACE=(3120,(20,10)) //IN3 DD DISP=SHR,DSN=CICSTS22.CICS.SDFHLPA //OT3 DD DISP=SHR,DSN=ADCD.ZOSV14S.LPALIB //SYSIN DD * COPY INDD=((IN3,R)),OUTDD=OT3 S M=(DFHCSVC) S M=(DFHDSPEX) S M=(DFHDUMPX) S M=(DFHIRP) S M=(DFHSSEN) S M=(DFHSSGC) S M=(DFHSSWT) S M=(DFH99SVC)

Mise en œuvre Hercules & z/OS - Page - 16 -

Démarrage de CICS

S CICSA Cette procédure se trouve dans ADCD.ZOSV14S.PROCLIB(CICSA)

arrêt de CICS par 'F CICSA,CEMT PERF SHUT IMMED' ou directement CEMT PERF SHUT IMME sur un terminal connecté à CICS DFHKE0101 DBDCCICS DFHSIP IS NOT APF-AUTHORIZED It looks like your assembled SIT table's load module is not in the STEPLIB concatenation... j'ai vérifié, mais ça veut aussi dire que tous les modules soit ne sont pas autorisés, soit qu'il en manque, soit qu'ils ne sont pas en LPA, soit qu'on a pas encore fait IPL CLPA Pour faire IPL CLPA démarrer hercules une fois avec LOADPARM 0A82CS..

Activation du bridge MQ-CICS

activer TCPIP dans CICS activer TCPIP=YES dans CICSTS22.SYSIN(DFH$SIP1) CSV031I LIBRARY ACCESS FAILED FOR MODULE CEEEV003, RETURN CODE 24, REASON CODE 2 mettre REG='64M' dans les paramètres de démarrage du CICSA - ADCD.ZOSV14S.PROCLIB(CICSA) http://publib.boulder.ibm.com/infocenter/cicsts/v2r2/topic/com.ibm.cics.ts22.doc/dfhtm/dfhtmgm.htm#dfhtmgm

définir un fichier DFHBRNSF (unicité du token sur l'allocate à travers le bridge)

Page 9: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 17 -

définition de DFHBRNSF dans le démarrage de CICS CEDA DEF FILE(DFHBRNSF) GROUP(DFHBRVSL) interdite car c'est un nom réservé CEDA INSTALL FILE(DFHBRNSF) GROUP(DFHBRVSL) >>> INSTALL SUCCESSFUL CEDA ADD GROUP(DFHBRVSL) LIST(XYZLIST) pour le prendre en compte au prochain démarrage CEMT SET FILE(DFHBRNSF) OPEN ENABLED >>>>>>> OPEN/CLOSE FAILED Ajouté dans la proc de démarrage de CICSA

après redémarrage les 2 commandes ci dessus sont OK CEMT SET FILE(DFHBRNSF) OPEN ENABLED >>>>>>> NORMAL

Autoinstall du bridge Autoinstall du bridge par ajout de AIBRIDGE=YES dans CICSTS22.SYSIN(DFH$SIP1) Définition du service TCPIP pour rendre CICS accessible depuis une CTG CEDA DEF TCPIPSERVICE(montcp) GROUP(grscort) puis ajouter les caractériqtiques suivantes:

//DFHBRNSF DD DISP=SHR, // DSN=&INDEX2..DFHBRNSF //* DATASETS FOR LINK3270 support

//DEFDS JOB accounting info,name,MSGCLASS=A //TDINTRA EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=A //SYSIN DD * DEFINE CLUSTER(NAME(CICSTS22.CICS.DFHBRNSF)- INDEXED- TRK(1 1)- RECORDSIZE(384 384)- KEYS(13 20)- FREESPACE(0 50)- SHAREOPTIONS(2 3)- LOG(NONE)- VOLUME(S4CIC1)- CISZ(512)) - DATA (NAME(CICSTS22.CICS.DFHBRNSF.DATA)- CISZ(512)) - INDEX (NAME(CICSTS22.CICS.DFHBRNSF.INDEX)- CISZ(512)) /* //

Mise en œuvre Hercules & z/OS - Page - 18 -

Enfin ajouter la commande d'installation CEDA INS TCPIPSERVICE(montcp) GROUP(grscort) suivi d'un arrêt relance de CICS (??)

définition du CICS Gateway remplacer les ++hlq ... dans CSQ531.SCSQPROC(CSQ4S100) DESCRIPTION(CREDIT CHECK SAMPLE - ACCOUNT FILE) DSNAME(CICSTS22.CSQ1.ACCTFIL) LSRPOOLID(1) RECORDSIZE(80) KEYLENGTH(10) puis soumettre le job IBMUSER.LIB.JCL(DFHCSDUP) suivant: Activation de l’interface RACF CICS

RDEFINE STARTED CICSA.CICSA STDATA(USER(CICSA)) setropts raclist(started) refresh RDEFINE ACICSPCT(C*) UACC(READ)

ADDUSER CICSA DFLTGRP(SYS1) NAME(CICSUser) OWNER(IBMUSER) PASSWORD(SYS1) CICS

CEDA View TCpipservice( MONTCP ) TCpipservice : MONTCP GROup : GRSCORT DEscription : LISTENER TCP POUR CTG Urm : POrtnumber : 01435 1-65535 STatus : Open Open ! Closed PRotocol : Eci Iiop ! Http ! Eci TRansaction : CIEP Backlog : 00010 0-32767 TSqprefix : Ipaddress : ANY On a qu'une seule adresse dans TCPIP hercules SOcketclose : No No ! 0-240000 (HHMMSS) SECURITY SSl : No Yes ! No ! Clientauth Certificate : AUthenticate : No ! Basic ! Certificate ! AUTORegister + ! AUTOMatic

Page 10: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 19 -

activer MQCONN=YES dans CICSTS22.SYSIN(DFH$SIP1) ainsi que les paramètres de connexion suivants INITPARM=(CSQCPARM=’SN=CSQ1,TN=001,IQ=CICS01.INITQ’) ajouter les libraries de MQ à la proc ADCD.ZOSV14S.PROCLIB(CICSA)

une fois CICS démarré , se connecter à CICS et passer les commandes suivantes CEDA INSTALL GROUP(CSQCAT1) CEDA INSTALL GROUP(CSQKDQ1) CEDA INSTALL GROUP(CSQ4SAMP) CEDA INSTALL GROUP(CSQCKB) pour installer automatiquement les ressources CSQ dans le startup de CICS voir GRPLIST=(XYZLIST), dans CICSTS22.SYSIN(DFH$SIP1) CEDA ADD GROUP(CSQCAT1) list(XYZLIST) CEDA ADD GROUP(CSQKDQ1) list(XYZLIST) CEDA ADD GROUP(CSQ4SAMP) list(XYZLIST) CEDA ADD GROUP(CSQCKB) list(XYZLIST)

//IBMUSERB JOB (20,FB3),TRALEY,REGION=4M, // CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID,COND=(0,NE) //STEP1 EXEC PGM=DFHCSDUP,REGION=0M, // PARM='CSD(READWRITE),PAGESIZE(60),NOCOMPAT' //STEPLIB DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR //******************************************************************* //* DEFINITION DES GROUPES DE RESSOURCES CICS GATEWAY //* //* //******************************************************************* //* DD DSN=CICSTS22.CICS.USERLIB.TABLES,DISP=SHR //DFHCSD DD UNIT=SYSDA,DISP=SHR,DSN=CICSTS22.CICS.DFHCSD //SECNDCSD DD UNIT=SYSDA,DISP=SHR,DSN=CICSTS22.CICS.FILEA //*`INDD DD UNIT=SYSDA,DISP=SHR,DSN=EXTRACT.INPUT.DATASET //*OUTDD DD UNIT=SYSDA,DISP=SHR,DSN=EXTRACT.OUTPUT.DATASET //SYSPRINT DD SYSOUT=* //SYSIN DD DSN=CSQ531.SCSQPROC(CSQ4B100),DISP=SHR // DD DSN=CSQ531.SCSQPROC(CSQ4D100),DISP=SHR // DD DSN=CSQ531.SCSQPROC(CSQ4S100),DISP=SHR // DD * ADD GROUP(CSQCAT1) LIST(CICSGW) ADD GROUP(CSQKDQ1) LIST(CICSGW) ADD GROUP(CSQ4SAMP) LIST(CICSGW) //

//STEPLIB DD DSN=&INDEX2..SDFHAUTH,DISP=SHR // DD DSN=CEE.SCEERUN,DISP=SHR // DD DSN=CSQ531.SCSQAUTH,DISP=SHR // DD DSN=CSQ531.SCSQCICS,DISP=SHR //DFHRPL DD DSN=&INDEX2..SDFHLOAD,DISP=SHR // DD DSN=CEE.SCEECICS,DISP=SHR // DD DSN=CEE.SCEERUN,DISP=SHR // DD DSN=CSQ531.SCSQANLE,DISP=SHR

Mise en œuvre Hercules & z/OS - Page - 20 -

compilation CICS - exemple pour Call Out ADCD.ZOSV14S.PROCLIB(IGYWCL) ajout de //STEPLIB DD DSNAME=CICSTS22.CICS.SDFHLOAD,DISP=SHR JCL de Compilation : metre à jour le nom de programme en gras

Pour prendre en compte le nouveau module dans CICS faire CEMT SET PROG(CSQ4CVK2) NEWCOPY Avant de relancer la transaction

Lancer la connexion avec le bridge par CKQC option start name csq1 démarrage automatique : http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqsav.doc/csqsav0447.htm

Lancement des Samples MQ voir http://www-1.ibm.com/support/docview.wss?rs=203&uid=swg24000071&loc=en_US&cs=utf-8&lang=en Les librairies sont installées dans CSQ531.SCSQCLST CSQ531.SCSQCOBC CSQ531.SCSQCOBS CSQ531.SCSQLOAD

//CICSCOB JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // REGION=0M,NOTIFY=&SYSUID //CICSCOB EXEC DFHYITVL,OUTC=* //* //* PRECOMPILE, COMPILE, REBLOCK ET LINKEDIT DES SOURCES COBOL //* POUR SAMPLES MQ PUT ET GET SIMPLES EN COBOL //* PROCEDURE APPELEE: ADCD.ZOSV14S.PROCLIB(DFHYITVL) //* //* POUR MQ AJOUTER EN FIN DE SYSIN //* INCLUDE CSQSTUB(CSQBSTUB) //* //*TRN.SYSIN DD DISP=SHR,DSN=CSQ531.SCSQCOBS(CSQ4CVJ1) //TRN.SYSIN DD DISP=SHR,DSN=IBMUSER.LIB.COBOL(CSQ4CVK2) //* //* WEBSPHERE MQ FOR Z/OS LIBRARY CONTAINING CICS STUB //* //COB.SYSLIB DD DSN=CSQ531.SCSQCOBC,DISP=SHR // DD DSN=CICSTS22.CICS.SDFHCOB,DISP=SHR // DD DSN=IBMUSER.LIB.COBOL,DISP=SHR //LKED.CSQSTUB DD DSN=CSQ531.SCSQLOAD,DISP=SHR //LKED.SYSIN DD * INCLUDE CSQSTUB(CSQCSTUB) NAME CSQ4CVK2(R) /*

Page 11: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 21 -

Paramétrage des clists dans CSQ531.SCSQCLST ISPEXEC LIBDEF ISPLLIB DATASET ID('CSQ531.SCSQLOAD') ISPEXEC LIBDEF ISPPLIB DATASET ID('CSQ531.SCSQPNLA') ISPEXEC LIBDEF ISPMLIB DATASET ID('CSQ531.SCSQMSGE')

SAMPLES MQ – CICS (base du call out)

Les sources en gras ont servis pour faire le sample Call Out sous CICS

Table 35. CICS Put and Get samples

Member

name

For language Description Source

supplied in

library

Executable

supplied in

library

CSQ4CCK1 C Source program SCSQC37S SCSQCICS

CSQ4CCJ1 C Source program SCSQC37S SCSQCICS

CSQ4CVJ1 COBOL Source program

SCSQCOBS SCSQCICS

CSQ4CVK1 COBOL Source program

SCSQCOBS SCSQCICS

CSQ4S100 independent CICS system

definition data

set

SCSQPROC None

Lancement de la transaction sample PUT et GET ci-dessus MVPT,1,*,10,P,JRULES.TARGET.QUEUE insère un msg paddé à 10 ’*’ MVGT,1,B,S, JRULES.TARGET.QUEUE lit un msg sans le détruire MVGT,1,D,S, JRULES.TARGET.QUEUE lit un msg et le détruit

CICS BMS reverse utility pour décompiler des BMS format load vers un format source IBMUSER.LIB.JCL(DFHBMSUP) //RUNPROG EXEC PGM=DFHBMSUP,PARM='CSQ4CCM',REGION=2M //STEPLIB DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR //DFHRPL DD DISP=SHR,DSN=CSQ531.SCSQCICS //BMSOUT DD DISP=SHR,DSN=CICSTS22.BMSOUT(CSQ4CCM) //SYSUDUMP DD SYSOUT=*

Mise en œuvre Hercules & z/OS - Page - 22 -

Test du Call Out depuis CICS

Définition des ressources CICS

Transaction de test CSQ4CVK2 (inspirée de CSQ4CVK1) ouvre les 2 queues locales, écrit sur la TARGET et fait un GET WAIT pendant 5 sec sur la JRULES.REPLY.QUEUE indiquée en Reply-to-queue avec le même Correlation-id Définir la transaction de test via CEDA :

1. définir le PROGRAM CSQ4CVK2 2. copie de la transaction MVPT en SCPT dans le groupe CSQ4SAMP puis remplacer le PROGRAM

CSQ4CVK1 en CSQ4CVK2

Définition des ressources MQ pour Call Out

Définir un channel de type SVRCONN et 2 queues sur le central

Test du call out

Démarrer un répondeur connecté sur HERCULES, port 1414 sur la queue JRULES.TARGET.QUEUE Et lancer la transaction

* * DEFINITION DE LA LOCAL QUEUE FOR INQUIRE JRULES * DEF QL(JRULES.TARGET.QUEUE) QSGDISP(QMGR) REPLACE USAGE(NORMAL) - DESCR( 'TARGET QUEUE ON CSQ1 FOR JRULES') PUT(ENABLED) DEFPSIST(NO) - GET(ENABLED) SHARE DEFSOPT(SHARED) MSGDLVSQ(PRIORITY) - MAXDEPTH(10000) MAXMSGL(4000) * * DEFINITION DE LA LOCAL QUEUE FOR REPLY BY JRULES * DEF QL(JRULES.REPLY.QUEUE) QSGDISP(QMGR) REPLACE USAGE(NORMAL) - DESCR( 'TARGET QUEUE ON CSQ1 FOR JRULES') PUT(ENABLED) DEFPSIST(NO) - GET(ENABLED) SHARE DEFSOPT(SHARED) MSGDLVSQ(PRIORITY) - MAXDEPTH(10000) MAXMSGL(4000) * * DEFINITION DU CHANNEL RECEIVER FOR MQCLIENT * A FAIRE COTE JRULES UNIQUEMENT SI ON AVAIT UN QMGR COTE JRULES * *DEFINE CHANNEL(JRULES.TO.HOST) CHLTYPE(CLNTCONN) TRPTYPE(TCP) + *CONNAME(10.1.15.43) QMNAME(CSQ1) DESCR('CLIENT-CONNECTION TO CSQ1') * * DEFINITION DU CHANNEL RECEIVER SUR HOST CICS * DEFINE CHANNEL(JRULES.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) + DESCR('SERVER-CONNECTION FOR JRULES')

Page 12: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 23 -

IMS IVP Sample Application

Transactions de test sous IMS

Transaction IVTCX transaction conversationnelle décrite dans IMS810.SDFSEXEC(DFSIVA35) source MFS dans IMS810.SDFSISRC(DFSIVF35)

pour démarrer /for ivtcx ou ivtcx suivi de 2 blanc mini puis envoyer 4 blancs suivi de END suivi de 5 blancs mini (bbbbENDbbbbb)

Transaction IVTNV

Transaction Non Conversationnelle VSAM Appel sans MFS

APPLICATION : CONVERSATIONAL PROGRAM TRANSACTION : IVTCX PSB : DFSIVP35 DATABASE : DFSIVD2 INPUT: TELEPHONE DIRECTORY SYSTEM PROCESS CODE : CCCCCCC LAST NAME : XXXXXXXXXX FIRST NAME : XXXXXXXXXX EXTENTION£ : N-NNN-NNNN INTERNAL ZIP : XXX/XXX CCCCCC = COMMAND ADD = INSERT ENTRY IN DB DELETE = DELETE ENTRY FROM DB UPDATE = UPDATE ENTRY FROM DB DISPLAY = DISPLAY ENTRY TADD = SAME AS ADD, BUT ALSO WRITE TO OPERATOR END = TERMINATE CONVERSATION

SCPT,BUFFER on met ce qu’on veut

ivtnv dis ansart

Mise en œuvre Hercules & z/OS - Page - 24 -

Appel avec MFS

PSB IMS810.SDFSISRC(DFSIVP2) MFS IMS810.SDFSISRC(DFSIVF2) ASM IMS810.SDFSISRC(DFSIVA2)

IMS Sample Inventory

Transaction Online Function

PART Inquire about a part and its description.

DSPALLI Inquire about a part’s inventory, cycle count, and back-order information.

DSPINV Inquire about a part’s total inventory in all locations or by specific inventory location

ADDPART Add a new part and its description.

ADDINV Add part inventory information, by location, to an existing part description.

DLETINV Delete part inventory information, by location.

DLETPART Delete a part after deletion of all its subordinate part inventory information.

CLOSE Close a part order to increase the part inventory at a specific location.

/for ivtnv

Page 13: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 25 -

Exemples : dspalli AN960C10

part AN960C10

dspinv AN960C10,28009126

addpart AB960C10,RIVET,74 Part Number AB960C10 Added To Data Base addinv AB960C10,80091260 Inventory 80091260 Added To Part Number AB960C10 dspinv AB960C10,80091260

dletinv AB960C10,80091260 Inventory 80091260 Deleted From Part Number AB960C10 dletpart AB960C10

Part........... AN960C10; Desc........... WASHER Proc........... 74; Area........... 2 Inv Dept....... 80; Prj............ 091 Div............ 26; Price.......... 0.000 Stk Ct Date.... 513; Unit........... EACH Curr Reqmts.... 630; On Order....... 15 Total Stock.... 680; Disb Planned... 1053 Disb Unplanned. 104; Stk Ct Variance 0

Part=AN960C10; Desc=WASHER; Proc Code=74 Area Inv Proj Div Unit Current On In Total Count Back Dept CD Price Reqmts Order Stock Disburse Taken Ordr ---- ---- --- --- ----- ------ ----- ----- -------- ----- ---- 1. AA 165 11 0.000 146 20 126 104 No 0 2. AK 287 7F 0.000 88 0 88 37 No 0 3. 2 80 091 26 0.000 630 15 680 1157 No 0

Part........... AN960C10; Desc........... WASHER Proc Code...... 74; Inv Code....... 2 Make Dept...... 12-00; Plan Rev Num... Make Time...... 63; Comm Code...... 14

Part........... AB960C10; Desc........... RIVET Proc........... 74; Area........... 8 Inv Dept....... 00; Prj............ 912 Div............ 60; Price.......... 0.000 Stk Ct Date.... ; Unit........... Curr Reqmts.... 0; On Order....... 0 Total Stock.... 0; Disb Planned... 0 Disb Unplanned. 0; Stk Ct Variance 0

Mise en œuvre Hercules & z/OS - Page - 26 -

Part Number AB960C10 Deleted From Data Base close AN960C10,28009126,15,15 Update Complete dspinv AN960C10,28009126

disburse AN960C10,28009126,U,10 Update Complete dspinv AN960C10,28009126

Liste des Parts Numbers

AN960C10

7438995P002

3003806 *

7618032P101 *

3007228

922399-001

3013412

82125-869

652799

Transaction de test IMS-DB2 DSN8CS Transaction avec accès DB2 non conversationnelle démarrée par le transaction name ou par /for DSN8ICGO Le mode d’emploi est le même que sous CICS (documentation ci-jointe D8SC) Installation décrite en annexes

D8SC Sample

Transaction.doc

Part........... AN960C10; Desc........... WASHER Proc........... 74; Area........... 2 Inv Dept....... 80; Prj............ 091 Div............ 26; Price.......... 0.000 Stk Ct Date.... 513; Unit........... EACH Curr Reqmts.... 630; On Order....... 0 Total Stock.... 695; Disb Planned... 1053 Disb Unplanned. 104; Stk Ct Variance 0

Part........... AN960C10; Desc........... WASHER Proc........... 74; Area........... 2 Inv Dept....... 80; Prj............ 091 Div............ 26; Price.......... 0.000 Stk Ct Date.... 513; Unit........... EACH Curr Reqmts.... 630; On Order....... 0 Total Stock.... 685; Disb Planned... 1053 Disb Unplanned. 114; Stk Ct Variance 0

Page 14: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 27 -

Interface IMS - DB2 et installation du sample

IMS810.PROCLIB(DFSPBIV1) avec SSM=V810, IMS810.PROCLIB(IVP1V810) avec SST=DB2,SSN=DSN1,LIT=SYS1,ESMT=DSNMIN10,CRC=- IMS810.PROCLIB(IMS81CR1) avec // RGSUF=IV1,PARM1='SSM=V810',PARM2= Exécuter DSN710.SDSNSAMP(DSNTEJ4C) (voir annexes) En cas d’erreur SQL au démarrage de la transaction faire un start du subsystem à la console : R nn,/START SUBSYS DSN1

Activation du bridge MQ-IMS

Déclarer un sous système à IMS Dans IMS810.PROCLIB(DFSPBIV1) on a déclaré SSM=V810 Ce qui fait que dans dans IMS810.PROCLIB(IVP1V810) on va déclarer nos sous systèmes IMS SST=DB2,SSN=DSN1,LIT=SYS1,ESMT=DSNMIN10,CRC=- >> sous système DB2 SST=DB2,SSN=CSQ1,LIT=MQM1,ESMT=CSQQESMT,REO=R >> sous système MQ Assembler le source CSQ531.SCSQASMS(CSQQDEFV) contenant les littéraux CSQ1 et MQM1 avec la procédure CSQ531.SCSQPROC(CSQ4DEFV) Activation de la sécurité pour le bridge MQ-IMS RDEFINE STARTED CSQ1MSTR.CSQ1MSTR STDATA(USER(CSQ1MSTR)) Créer le user CSQ1MSTR nopassword noexpire et l’ajouter au goupe SYS1 Créer le profile IMSXCF.IVP1OTMA.CSQ1 dans la class FACILITY Ajouter le groupe SYS1 en accès READ sur IMSXCF.IVP1OTMA.IMSMEM Créer le profile IMSXCF.IVP1OTMA.IMSMEM dans la class FACILITY Ajouter le groupe SYS1 en accès READ sur IMSXCF.IVP1OTMA.IMSMEM setropts raclist(started) refresh

Mise en œuvre Hercules & z/OS - Page - 28 -

DISPLAY résumé des class FACILITY pour le Bridge :

Sur Hercules , la connexion du Bridge MQ-IMS ne fonctionne que avec un /SECURE OTMA NONE L’appel d’une transaction non sécurisée comme IVTNV est OK, mais une transaction DB2 comme DSN8CS n’est possible qu’après avoir commencé un premier accès réussi avec une signature sur IMS Connect Pour info : Sample JCL pour linkedit des applis IMS qui veulent appeler MQ Dynamiquement

CLASS NAME ----- ---- FACILITY IMSXCF.IVP1OTMA.IMSMEM LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING ----- -------- ---------------- ----------- ------- 00 P390 NONE NONE NO USER ACCESS ACCESS COUNT ---- ------ ------ ----- IBMUSER NONE 000000 SYS1 NONE 000000 CSQ1MSTR NONE 000000

CLASS NAME ----- ---- FACILITY IMSXCF.IVP1OTMA.CSQ1 LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING ----- -------- ---------------- ----------- ------- 00 P390 NONE ALTER NO USER ACCESS ACCESS COUNT ---- ------ ------ ----- P390 ALTER 000000 SYS1 READ 000000 START2 READ 000000 CSQ1MSTR READ 000000

Page 15: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 29 -

Définir le Bridge IMS dans le CSQ1MSTR

Créer un CSQ4ZPR2 en remplacement de CSQ4ZPRM (démarrage par défaut de MQ) pour ajouter les paramètres du bridge MQ/OTMA (le nom du groupe XCF à joindre au démarrage) CSQ531.SCSQPROC(CSQ4ZPRM)

Avec OTMACON=(IVP1OTMA,,DFSYDRU0,2147483647,CSQ), Et des options de linkedit suivantes : //SYSLIN DD * INCLUDE SYSP INCLUDE ARVP INCLUDE LOGP INCLUDE OLDLOAD(CSQZPARM) ENTRY CSQZMSTR NAME CSQZPAR2(R) Appelé par la commande de démarrage suivante : %CSQ1 START QMGR PARM(CSQZPAR2)

Définition des ressources MQ pour le bridge MQ-IMS

//DYNSTUB EXEC PGM=IEWL,PARM=’RENT,REUS,MAP,XREF’ //SYSPRINT DD SYSOUT=* //ACSQMOD DD DISP=SHR,DSN=thlqual.SCSQLOAD //IMSLIB DD DISP=SHR,DSN=ims.reslib //SYSLMOD DD DISP=SHR,DSN=private.load¹ //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,1) //SYSLIN DD * INCLUDE ACSQMOD(CSQQSTUB) INCLUDE IMSLIB (DFSLI000) ALIAS MQCONN,MQCONNX,MQDISC MQI entry points ALIAS MQGET,MQPUT,MQPUT1 MQI entry points ALIAS MQOPEN,MQCLOSE MQI entry points ALIAS MQBACK,MQCMIT MQI entry points ALIAS CSQBBAK,CSQBCMT MQI entry points ALIAS MQINQ,MQSET MQI entry points ALIAS DFSPLI,PLITDLI IMS entry points ALIAS DFSCOBOL,CBLTDLI IMS entry points ALIAS DFSFOR,FORTDLI IMS entry points ALIAS DFSASM,ASMTDLI IMS entry points ALIAS DFSPASCL,PASTDLI IMS entry points ALIAS DFHEI01,DFHEI1 IMS entry points ALIAS DFSAIBLI,AIBTDLI IMS entry points ALIAS DFSESS,DSNWLI,DSNHLI IMS entry points MODE AMODE(31),RMODE(ANY) Note RMODE NAME CSQQDYNS(R) /*

Mise en œuvre Hercules & z/OS - Page - 30 -

Figure 1: Définition de la Storage Class associée au groupe XCF de IMS

Figure 2: définition de l'Init Queue du Trigger monitor

Définition de la locale Queue pour les messages input vers IMS en utilisant l’option DEFINE LIKE de la SYSTEM.CICS.BRIDGE.QUEUE

Définition du Trigger Monitor Queue name . . . . . . . . . IVP1.INITQ Disposition . . . . . . . . . Q G=Group, S=Shared, Q=Qmgr on CSQ1 Description . . . . . . . . . IMSBRDG initiation queue Put enabled . . . . . . . . . Y Y=Yes, N=No Get enabled . . . . . . . . . Y Y=Yes, N=No Usage . . . . . . . . . . . . N N=Normal, X=XmitQ Storage class . . . . . . . . IMSBRDG CF structure name . . . . . .

Storage class name . . . . . IMSBRDG Disposition . . . . . . . . : QMGR CSQ1 Description . . . . . . . . : Storage class pour Brige MQ-IMS Page set identifier . . . . : 1 0 - 99 XCF group name . . . . . . : IVP1OTMA XCF member name . . . . . . : CSQ1

Page 16: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 31 -

Figure 3:définition de la queue locale pour IMS

Définitions RACF obligatoires pour le Bridge MQ-IMS

Définir la FACILITY IMSXCF.IVP1OTMA.CSQ1 avec accès READ pour le groupe SYS dont fait partie le user START2 qui démarre le QManager CSQ1MSTR

Queue name . . . . . . . . . SYSTEM.IMS.BRIDGE.QUEUE Disposition . . . . . . . . : QMGR CSQ1 Description . . . . . . . . : IMS BRIDGE REQUEST QUEUE Put enabled . . . . . . . . : Y Y=Yes, N=No Get enabled . . . . . . . . : Y Y=Yes, N=No Usage . . . . . . . . . . . : N N=Normal, X=XmitQ Storage class . . . . . . . : IMSBRDG Creation method . . . . . . : PREDEFINED Page set identifier . . . . : Use counts - Output . . . . : 0 Input . . . . : 0 Current queue depth . . . . : 0 Default bind . . . . . . . : O O=Open, N=Notfixed Default persistence . . . . : Y Y=Yes, N=No Default priority . . . . . : 0 0 - 9 Message delivery sequence . : F P=Priority, F=FIFO Permit shared access . . . : Y Y=Yes, N=No Default share option . . . : E E=Exclusive, S=Shared Index type . . . . . . . . : N N=None, M=MsgId, C=CorrelId, G=GroupId, T=MsgToken Maximum queue depth . . . . : 999999999 0 - 999999999 Maximum message length . . : 4194304 0 - 104857600 Trigger Definition Trigger type . . . . . . : F F=First, E=Every, D=Depth, N=None Trigger set . . . . . . : Y Y=Yes, N=No Trigger message priority : 0 0 - 9 Trigger depth . . . . . : 1 1 - 999999999 Initiation queue . . . . : IVP1.INITQ Process name . . . . . . : Trigger data . . . . . . :

CLASS NAME ----- ---- FACILITY IMSXCF.IVP1OTMA.CSQ1 LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING ----- -------- ---------------- ----------- ------- 00 P390 NONE ALTER NO USER ACCESS ACCESS COUNT ---- ------ ------ ----- P390 ALTER 000000 SYS1 READ 000000

Mise en œuvre Hercules & z/OS - Page - 32 -

MQIIH Header : http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.csqzak.doc/mqiih.htm

Activation de la sécurité RACF pour IMS RDEFINE TIMS * UACC(ALTER) SETROPTS RACLIST(TIMS) IMS810.INSTALIB(IV3C201T) pour faire valider l’accès aux transactions par RACF

Ajouter/modifier IMS810.PROCLIB(DFSPBIV1) pour que /SIGN soit validé par RACF

Lancer un archive pour IMS DFS3258A SYSTEM WAITING FOR AN ONLINE LOG DATA SET - NEED ARCHIVE

Au message ci-dessus il faut archiver

IMS810.JOBS(GENJCL)

IMS : Ajout de transactions et programmes de test IBMUSER.LIB.JCL(IMSCOBOL) compilation link-edit en PGMLIB IBMUSER.LIB.JCL(PSBGEN) PSBGEN dans la PSBLIB IBMUSER.LIB.JCL(ACBGEN) ACNGEN dans ACBLIB IBMUSER.LIB.JCL(STAGE1) Ajout des transactions dans IBMUSER.LIB.JCL(SYSDEF1)

SECURITY TYPE=(AGNEXIT,RACFTERM,NOTRANEX,NOSIGNEX), X SECLVL=(TRANAUTH,SIGNON), X TERMNL=YES, X SECCNT=2, X PASSWD=YES, X TRANCMD=YES

RCF=T, RVFY=Y, SGN=Y,

Page 17: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 33 -

IBMUSER.LIB.JCL(STAGE1O) jobs générés par STAGE1 il faut releaser les jobs 1 à 1 par la commande A sous SDSF IBMUSER.LIB.JCL(OLCUTL) Online Change IMS810.INSTALIB(IV3E314J) SMU à passer pour remettre la sécurité Puis sous IMS /MOD PREPARE ALL suivi de /MOD COMMIT

Définition de codes transactions nouveaux Dépannage Avec JJ Perrin ex 'ims810.SDFSEXEC(dfsappl)' 'ims810'

options 1, 3 puis enter options 2 , 6

------------------------------------------------------------------------------ IMS Application Menu Command ===> Select the desired application and press Enter. 1. Installation Verification Program (IVP) 2. Partition Definition Utility (HALDB) 3. Syntax Checker for IMS parameters 4. Single Point of Control (SPOC) 5. IPCS To exit the application, press F3.

********************************************************************** * TRANSACTIONS DE TEST POUR SCORT ********************************************************************** SPACE 2 APPLCTN PSB=TEST1,PGMTYPE=TP TRANSACT CODE=TESTNR1,MODE=SNGL, X MSGTYPE=(SNGLSEG,NONRESPONSE,1) TRANSACT CODE=TESTR1,MODE=SNGL, X MSGTYPE=(SNGLSEG,RESPONSE,1) SPACE APPLCTN GPSB=TEST2,LANG=COBOL,PGMTYPE=TP TRANSACT CODE=TESTNR2,MODE=SNGL, X MSGTYPE=(SNGLSEG,NONRESPONSE,1) SPACE APPLCTN PSB=TEST3,PGMTYPE=TP TRANSACT CODE=TESTNR3,MODE=SNGL, X MSGTYPE=(SNGLSEG,NONRESPONSE,1) SPACE APPLCTN PSB=TEST4,PGMTYPE=TP TRANSACT CODE=TESTC,SPA=(1000),MODE=SNGL, X MSGTYPE=(SNGLSEG,NONRESPONSE,1) SPACE APPLCTN PSB=TEST5,PGMTYPE=TP HDAM/VSAM-JAVA TRANSACT CODE=TESTJ,MODE=SNGL, X MSGTYPE=(SNGLSEG,NONRESPONSE,1)

Mise en œuvre Hercules & z/OS - Page - 34 -

edit IV3C201T C2 TASK - Browse the STAGE1 Source Deck après que la sysin iv3c201t a été modifiée : Exécuter la phase 1 iv3c203J executer phase 2 IV3C301J Exécuter IV3E314J E3 JOB - Establish IMS Security PSBGEN ajouter les nouveaux PSB

et exécuter IMS810.INSTALIB(IV3E202J) pour ne prendre que les PSB nouveaux ACBGEN modifier pour ajouter le build du PSB

et executer IV3E203J E2 JOB - ACBGEN Exécuter IV3E316J E3 JOB - Copy Staging Libraries

Création de formats nouveaux et online change Modifier IV3E204J pour ajouter les nouveaux formats dans IMS810.FORMAT Vérifier la création du nouveau format par exemple comme ceci

Chercher la librairie de formats en ligne pour préparer le switch par la commande MODIFY

copier par 3.3 tous les éléments de IMS810.FORMAT vers IMS810.FORMATx (ici B puisque A est en ligne)

Se connecter à IMS et tester par la commande /for MOMO15 (dans l’exemple ci-dessus)

R 81,/MODIFY COMMIT IEE600I REPLY TO 81 IS;/MODIFY COMMIT DFS3499I ACTIVE DDNAMES: MODBLKSA IMSACBA FORMATB MODSTAT

DFS1048I MOMO15 MSG SIZE=0332 DATE=07/30/07 TIME=11.28.20 CREATED. DFS1010I MOMG15 DOF 3270 027F IGNORE HAS BEEN DELETED - FORMAT DFS1010I MOMG15 DIF 3270 027F IGNORE HAS BEEN DELETED - FORMAT DFS1010I MOMI15 MSG HAS BEEN DELETED - FORMAT DFS1010I MOMO15 MSG HAS BEEN DELETED - FORMAT DFS1011I MOMG15 DOF SIZE=0AE7 3270 24X80 027F IGNORE DATE=07/30/07 TIME=11.28.20 ADDED. DFS1011I MOMG15 DIF SIZE=0382 3270 24X80 027F IGNORE DATE=07/30/07 TIME=11.28.20 ADDED. DFS1011I MOMI15 MSG SIZE=0446 DATE=07/30/07 TIME=11.28.20 ADDED. DFS1011I MOMO15 MSG SIZE=0332 DATE=07/30/07 TIME=11.28.20 ADDED.

R 80,/MODIFY PREPARE FMTLIB IEE600I REPLY TO 80 IS;/MODIFY PREPARE FMTLIB DFS3499I ACTIVE DDNAMES: MODBLKSA IMSACBA FORMATA MODSTAT

//DFSIVP1 EXEC PROC=PSBGEN,MBR=TLOAV,SOUT='*' //C.SYSIN DD * PCB TYPE=TP,MODIFY=YES,ALTRESP=YES PSBGEN PSBNAME=TLOAV,LANG=COBOL END

(BUILD PSB=TLOAV )

Page 18: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 35 -

Mise en place de DFSINSX Question : comment avoir « Invalid destination » lorsqu’on tape un code transaction erroné ? pour cela il faut installer et configurer l’exit DFSINSX0

Purger msg sur term async : /STO USER toto /DEQ USER toto PURGE /STA USER toto /che

IMS ne démarre plus

Stopper IMS81OM1 IMS81RL1 IMS81RM1 IMS81SC1 Faire un 3.2 sur IMS810.RDS Le deleter puis le réallouer

Passer les jobs suivants depuis la clist ‘ims810.SDFSEXEC(dfsappl)' 'ims810' IV3H101J H1 JOB - Allocate Data Sets IV3H102J H1 JOB - Initialize RECON / Register Data Bases Redémarrer IMS

IMSJAVA installation & mise en oeuvre Les jobs d’installation: lancer IMS810.SDFSSMPL(DFSJDDDF) avec hlqual = IMS810 IMS810.PROCLIB(DFSJMP) est appelé par IMS810.jobs(IMSMSG) est appelé par ims810.TCFSLIB(DSFTCP) qui contient les commandes ims de démarrage IMS810.JOBS(HFSALLOC) IMS810.SDFSSMPL(DFSJDDDF) IMS810.JOBS(HFSMOUNT) http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.ims.doc.jgr/runningjmpivp.htm

Mount permanent du HFS IMSJAVA dans ADCD.ZOSV14S.PARMLIB(BPXPRM00)

Data Set Name . . . : IMS810.RDS Volume serial . . . : S4IMS1 Allocated tracks . : 5 Device type . . . . : 3390 Allocated extents . : 1 Organization . . . : PS Record format . . . : FBS Record length . . . : 4096 Block size . . . . : 4096 Current Utilization 1st extent tracks . : 5 Used tracks . . . . : 5 Secondary tracks . : 0 Used extents . . . : 1

Mise en œuvre Hercules & z/OS - Page - 36 -

Afficher les MOUNT UNIX Services F BPXOINIT,FILESYS=DISPLAY,ALL

installer imsjava81 Executer IMS810.SDFSBASE(DFSJSMKD) qui installe imsjava81

Ce job crée le lien symbolique libJavTDLI.so -> DFSCLIB Exécuter IMS810.JOBS(TCHMOD)

Modifier IMS810.PROCLIB(DFSJMP) pour ajouter ceci

Verifier le JDK 1.3 P390:/: >PATH=/usr/lpp/Printsrv/bin:/bin:.:/usr/lpp/java/IBM/J1.3/bin P390:/: >export PATH P390:/: >java -version java version "1.3.1" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1) Classic VM (build 1.3.1, J2RE 1.3.1 IBM OS/390 Persistent Reusable VM build cm131s-20030418 (JIT enabled: jitc)) JVMST039:Cannot allocate Shared Memory segment in initializeSharedMemory est

//TCHMOD PROC TPARM= //BPX EXEC PGM=BPXBATCH,PARM='&TPARM' //SYSPRINT DD SYSOUT=* //STDOUT DD PATH='/V1R4S/usr/lpp/ims/tchmod.out', // PATHOPTS=(OWRONLY,OCREAT,OTRUNC),PATHMODE=SIRWXU //STDERR DD PATH='/V1R4S/usr/lpp/ims/tchmod.out', // PATHOPTS=(OWRONLY,OCREAT,OTRUNC),PATHMODE=SIRWXU // PEND //STEP1 EXEC TCHMOD,TPARM='sh touch /V1R4S/usr/lpp/ims/JVM.out' //* //STEP2 EXEC TCHMOD, // TPARM='sh chmod 777 /V1R4S/usr/lpp/ims/JVM.out' //* //STEP3 EXEC TCHMOD,TPARM='sh touch /V1R4S/usr/lpp/ims/JVM.err' //* //STEP4 EXEC TCHMOD,TPARM='sh chmod 777 /V1R4S/usr/lpp/ims/JVM.err'

//IKJEFT01 EXEC PGM=IKJEFT01 //SYSEXEC DD DSN=IMS810.SDFSBASE, // DISP=SHR //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * PROF MSGID DFSJMKDR /V1R4S

MOUNT FILESYSTEM('IMS810.SDFSHFS') TYPE(HFS) MODE(RDWR) MOUNTPOINT('/usr/lpp/ims') IPCSEMNSEMS(35)

//JAVAOUT DD PATH='/V1R4S/usr/lpp/ims/JVM.out' //JAVAERR DD PATH='/V1R4S/usr/lpp/ims/JVM.err'

Page 19: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 37 -

http://www-1.ibm.com/support/docview.wss?uid=swg21105444 La doc IBM de ce message est JVMST039 Cannot allocate Shared Memory segment in initializeSharedMemory Explanation: An error occurred during an attempt to create shared memory. The call to xhpiSharedMemoryCreate() failed. This can happen only during initialization when -Xjvmset is running.

System action: A return code of JNI_ENOMEM is passed back to the JNI_CreateJavaVM call.

User response: Allocate more virtual storage to the JVM region. If the problem remains, contact your IBM service representative

Pour cela il faut mettre RGN=0M sur IMS810.PROCLIB(DFSJMP)

Démarrage et arrêt de IMSJAVA A la console :

1. IVP1STA REG IMS81JMP pour starter 2. IVP1STO REG JOBNAME IMS81JMP pour stopper (quand elle ne s’arrête pas toute seule)

Rappel : la commande /CHE FREEZE d’arrêt de IMS stoppe toutes les MPP et JMP Une fois démarré, Il y a 2 SYSOUT dans la IMS81JMP (ils sont visibles sous SDSF par un ? sur la sysout de IMS81JMP)

Le premier est le MASTER qui resette la 2eme à chaque syncpoint La deuxième est le WORKER cad la JVM d’exécution des transactions utilisateurs , elle prend le user de la signature IMS lors de la création de la JVM si celui-ci est valide , sinon elle reste sous START2 comme la première Sous OMVS on voit les 2 JVM par la commande ps -el

La classe executée par le « /format IVTCM » est DFSIVP37=samples/ivp/ims/IMSIVP Qui est dans le /V1R4S/usr/lpp/ims/samples.jar pointé par le LIBPATH

Doc de référence IMSJAVA http://www-128.ibm.com/developerworks/java/jdk/diagnosis/131.html IMS Java IVP in IMS environment (JBP & JMP regions)

// PROC SOUT=A,RGN=0M,SYS2=,…………….

SYS00001 IMS81JMP JMPRGN 103 START2 H 0 1

SYS00002 IMS81JMP JMPRGN 104 IBMUSER H 0 1

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 1000080 HY 0 33620014 1 - - - - 2191 - ? 0:42 DFSRCJM0 1000080 HY 0 67174448 1 - - - - 2191 - ? 0:42 DFSPCJM0

Mise en œuvre Hercules & z/OS - Page - 38 -

// ================================================================= // // // Licensed Materials - Property of IBM // // 5655-C56 // // (C) Copyright IBM Corp. 1996, 2002. All Rights Reserved. // // US Government Users Restriced Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp // The source code for this program is not published or otherwise // divested of its trade secrets, irrespective of what has been // deposited with the U.S. Copyright Office // // ================================================================= 1. The samples.jar file contains the executable class files of the IMS Java IVP applications. (see NOTE 3) 2. To run the JBP IVP sample, do the following: i. Set the 4 JVM members, found in IMS.PROCLIB, as follows: a. DFSJVMAP:- (see NOTE 4) DFSJBP=samples/ivp/ims/IMSIVPJBP b. DFSJVMEV:- LIBPATH=/usr/lpp/J1.3/bin/classic:/usr/lpp/J1.3/bin:/usr/lpp/ims/imsjava81 c. DFSJVMMS:- -Dibm.jvm.shareable.application.class.path=/myApplications/samples.jar -Dibm.jvm.trusted.middleware.class.path=/usr/lpp/ims/imsjava81/imsjava.jar -Xinitacsh128k -Xinitsh128k -Xmaxf0.6 -Xminf0.3 -Xmx64M -Xoss400k d. DFSJVMWK:- -Xmaxf0.6 -Xminf0.3 -Xmx64M -Xoss400k ii. Edit the JBP JCL proc to set the EXEC PARMs MBR= and PSB=. They should be set as PSB=DFSIVP67 and MBR=DFSJBP. iii. Submit the JCL to bring up the JBP region. This will also execute the application. iv. Check the JVM.out file or wherever the JCL has set the output to go to. It should contain output as shown below: LastName = LAST1 FirstName = FIRST1 Extension = 8-111-1111 ZipCode = D01/R01 3. To run the JMP IVP sample, do the following: i. Set the following 4 JVM members, found in IMS.PROCLIB, as follows: a. DFSJVMAP:- (see NOTE 4) DFSIVP37=samples/ivp/ims/IMSIVP b. DFSJVMEV:- LIBPATH=/usr/lpp/J1.3/bin/classic:/usr/lpp/J1.3/bin:/usr/lpp/ims/imsjava81 c. DFSJVMMS:- -Dibm.jvm.shareable.application.class.path=/myApplications/samples.jar -Dibm.jvm.trusted.middleware.class.path=/usr/lpp/ims/imsjava81/imsjava.jar -Xinitacsh128k

Page 20: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 39 -

-Xinitsh128k -Xmaxf0.6 -Xminf0.3 -Xmx64M -Xoss400k d. DFSJVMWK:- -Xmaxf0.6 -Xminf0.3 -Xmx64M -Xoss400k ii. Submit the JCL job to bring up a JMP(Java Message Processing) region. The JCL should have the above 4 members specifed in the PROC definition. iii. Go to the IMS terminal and invoke the formatted screen for the transaction: /format IVTCM iv. You can ADD, DELETE, UPDATE, INSERT the records of the IVP database from the formatted screen. NOTE: 1. The last name is the key of this IVP database. 2. Some of the (key)data already seeded into this database: Last names:- LAST1, LAST2, LAST3, LAST4, LAST5 3. For easier understanding purposes, this README file will assume the following: a) imsjava.jar, libJavTDLI.so and samples.tar files were installed in the directory: /usr/lpp/ims/imsjava81 b) the IBM developer Kit for OS/390 Java(TM) 2 Technology Edition with Persistent Reusable Java Virtual Machine (JDK 1.3) was installed at: /usr/lpp/J1.3 c) samples.jar is at the following directory: /myApplications 4. DFSIVP37 is the PSB name and IVTCM is the transaction associated with DFSIVP37 for the JMP IVP.

CICS transactions de test

Transaction ACCT

Procedures for installing application programs ----------------------------------------------------------------------------------------------------- |Online |EXCI |Integrated translator |Online |EXCI -----------------------------------------------------------------------------------------------------

|Assembler |- |- |- |DFHEITAL |DFHEXTAL

|C |DFHYITDL |DFHYXTDL |- |- |-

|C++ |DFHYITEL |DFHYXTEL |- |- |-

|COBOL |DFHYITVL |DFHYXTVL |DFHZITCL |- |-

|PL/I |DFHYITPL |DFHYXTPL |DFHZITPL |- |-

Mise en œuvre Hercules & z/OS - Page - 40 -

assemblage des maps préalable par DFHMAPS car il y a des COPY ACCTSET dans les sources cobol explication: The DFHMAPS procedure writes the symbolic map set output to the library specified on the DSCTLIB parameter, which defaults to the CICSTS22.CICS.SDFHMAC library. If you want to include symbolic map sets in a user copy library //ACCTSET EXEC DFHMAPS,MAPNAME=ACCTSET,OUTC=* //COPY.SYSUT1 DD DISP=SHR,DSN=CICSTS22.CICS.SDFHSAMP(ACCTSET) //* //* ASSEMBLAGE ET LINKEDIT DES MAPSET DE L'APPLICATION PRIMER //* PROCEDURE APPELEE: ADCD.ZOSV14S.PROCLIB(DFHMAPS) //*

compilation des sources COBOL dans IBMUSER.LIB.JCL(ACCT00) //ACCT00 EXEC DFHYITVL,OUTC=* //* //* PRECOMPILE, COMPILE, REBLOCK ET LINKEDIT DES SOURCES COBOL //* ACCT00 ACCT01 ACCT02 ACCT03 ACCT04 //* PROCEDURE APPELEE: ADCD.ZOSV14S.PROCLIB(DFHYITVL) //* //TRN.SYSIN DD DISP=SHR,DSN=CICSTS22.CICS.SDFHSAMP(ACCT04) //LKED.SYSIN DD * INCLUDE SYSLIB(ACCT04) NAME ACCT04(R) /*

Installation des composants sous CICS avec CEDA Display group(DFH$ACCT) NAME TYPE GROUP ACCTFIL FILE DFH$ACCT ACCTIX FILE DFH$ACCT ACCTSET MAPSET DFH$ACCT ACCT00 PROGRAM DFH$ACCT ACCT01 PROGRAM DFH$ACCT ACCT02 PROGRAM DFH$ACCT ACCT03 PROGRAM DFH$ACCT ACCT04 PROGRAM DFH$ACCT ACCT TRANSACTION DFH$ACCT ACEL TRANSACTION DFH$ACCT ACLG TRANSACTION DFH$ACCT AC01 TRANSACTION DFH$ACCT AC02 TRANSACTION DFH$ACCT AC03 TRANSACTION DFH$ACCT AC05 TRANSACTION DFH$ACCT AC06 TRANSACTION DFH$ACCT installation par CEDA INSTALL group(DFH$ACCT) qui doit donner le message INSTALLED ou celui-ci lorsqu'on le refait une seconde fois (faire PF9 pour avoir le msg détail) INSTALL GROUP(DFH$ACCT) MESSAGES - USE ENTER TO RETURN S Install failed because an existing definition for file ACCTFIL could not be deleted. S Install failed because an existing definition for file ACCTIX could

Page 21: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 41 -

not be deleted. W GROUP DFH$ACCT has been partially installed.

installer automatiquement le goupe DFH$ACCT dans le startup de CICS voir GRPLIST=(XYZLIST), dans CICSTS22.SYSIN(DFH$SIP1) CEDA ADD GROUP(DFH$ACCT) list(XYZLIST) OVERTYPE TO MODIFY CEDA ADd Group ==> DFH$ACCT List ==> XYZLIST Before ==> After ==> ADD SUCCESSFUL

Programmes de test SCORT (fournis par Xavier) ECHO VERIDATE

compilation/link par la procédure suivante //CICSCOB EXEC DFHYITVL,OUTC=* //TRN.SYSIN DD DISP=SHR,DSN=IBMUSER.LIB.COBOL(ECHO) //LKED.SYSIN DD * NAME ECHO(R) CEDA DEFINE GROUP(SCORT) CEDA DEFINE PROG(ECHO) GROUP(SCORT) CEDA DEFINE PROG(VERIDATE) GROUP(SCORT) CEDA INSTALL GROUP(SCORT) CEDA ADD GROUP(SCORT) LIST(XYZLIST) tester le reload CEMT SET PROG(ECHO) NEWCOPY

Samples CICS DB2

• Transaction D8CS Samples et jobs dans DSN710.SDSNSAMP Les jobs à éxécuter (voir en annexes, les liens ci-dessous)

1. DSNTEJ1 2. DSNTEJ5A 3. DSNTEJ5C

Exemple de DCLGEN (menu M ;11) avec le user P390

Mise en œuvre Hercules & z/OS - Page - 42 -

Activation de la sécurité dans CICS L’activation de la sécurité dans CICS est nécessaire pour exécuter des transactions qui ont une interface avec DB2 car DB2 doit avoir accès à l’ACEE - le control bloc du user RACF crée au login (RACINIT) Pour activer la sécurité CICS/RACF, mettre SEC=YES dans la CICSTS22.SYSIN(DFH$SIP1) Plus les commandes suivantes

SAMPLES LABOPHARM

A suivre… http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db2.doc.apsg/rntiad.htm

SPUFI SSID: DSN1

===> Enter the input data set name: (Can be sequential or partitioned) 1 DATA SET NAME ... ===> DSN710.NEW.SDSNSAMP(DSNTESA) 2 VOLUME SERIAL ... ===> (Enter if not cataloged) 3 DATA SET PASSWORD ===> (Enter if password protected) Enter the output data set name: (Must be a sequential data set) 4 DATA SET NAME ... ===> P390.SPUFI.OUT Specify processing options: 5 CHANGE DEFAULTS ===> * (Y/N - Display SPUFI defaults panel?) 6 EDIT INPUT ...... ===> * (Y/N - Enter SQL statements?) 7 EXECUTE ......... ===> YES (Y/N - Execute SQL statements?) 8 AUTOCOMMIT ...... ===> YES (Y/N - Commit after successful run?) 9 BROWSE OUTPUT ... ===> YES (Y/N - Browse output data set?) For remote SQL processing: 10 CONNECT LOCATION ===>

PERMIT DSN1.SASS CLASS(DSNR) ID(CICSUSER) ACCESS(READ) RDEFINE DSNR (DSN1.SASS) OWNER(IBMUSER) setropts raclist(dsnr) refresh

Page 22: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 43 -

CICS TCPIP EZA Samples

Compilation de EZACICSS et EZACICCS

//CICSDB2 JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // REGION=0M,NOTIFY=&SYSUID //CICSDB2 PROC NAME=TEMPNAME,SUFFIX=1$, // INDEX='CICSTS22.CICS', QUALIFIER(S) FOR CICS LIBRARIES // PROGLIB='CICSTS22.CICS.SDFHLOAD', NAME OF O/P LIBRARY…BA25137C // DSCTLIB='CICSTS22.CICS.SDFHCOB', PRIVATE MACRO/DSECT…BA25137C // LE370HLQ='CEE', Qualifier(s) for LE/370 libraries // OUTC=*, Class for print output // REG=0M, REGION SIZE FOR ALL STEPS // LNKPARM='LIST,XREF', Link edit parameters // STUB='DFHEILIC', Linkedit INCLUDE for DFHELII // WORK=SYSDA Unit for work datasets //********************************************************* //* DB2 PRECOMPILE THE COBOL PROGRAM //********************************************************* //PC EXEC PGM=DSNHPC, // PARM='HOST(COB2),XREF,SOURCE,FLAG(I),APOST',REGION=8M //STEPLIB DD DISP=SHR,DSN=DSN710.SDSNEXIT // DD DISP=SHR,DSN=DSN710.SDSNLOAD //DBRMLIB DD DISP=OLD,DSN=IBMUSER.DBRMLIB.DATA(&NAME) //SYSCIN DD DSN=&&DSNHOUT,DISP=(MOD,PASS),UNIT=SYSDA, // SPACE=(800,(500,500)) //SYSLIB DD DISP=SHR,DSN=IBMUSER.LIB.COBOL //SYSPRINT DD SYSOUT=* //SYSTERM DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSUT1 DD SPACE=(800,(500,500),,,ROUND),UNIT=SYSDA //SYSUT2 DD SPACE=(800,(500,500),,,ROUND),UNIT=SYSDA //SYSIN DD DISP=SHR,DSN=IBMUSER.LIB.COBOL(&NAME) //******************************************************************** //*** BIND THIS PROGRAM. //******************************************************************** //BIND EXEC PGM=IKJEFT01, // COND=((4,LT,PC)) //STEPLIB DD DISP=SHR,DSN=DSN710.SDSNEXIT // DD DISP=SHR,DSN=DSN710.SDSNLOAD //DBRMLIB DD DISP=OLD,DSN=IBMUSER.DBRMLIB.DATA(&NAME) //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //******************************************************************** //* COMPILE THE COBOL PROGRAM //******************************************************************** //TRN EXEC PGM=DFHECP&SUFFIX, // REGION=&REG, // PARM='SP' //STEPLIB DD DSN=&INDEX..SDFHLOAD,DISP=SHR //SYSPRINT DD SYSOUT=&OUTC //SYSPUNCH DD DSN=&&SYSCIN, // DISP=(,PASS),UNIT=&WORK, // DCB=BLKSIZE=400, // SPACE=(400,(400,100)) //*

Mise en œuvre Hercules & z/OS - Page - 44 -

Puis test de

//COB EXEC PGM=IGYCRCTL,REGION=&REG, // PARM='NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF,NODBCS' X // 'NSYMBOL(DBCS)' //SYSLIB DD DSN=&DSCTLIB,DISP=SHR // DD DSN=&INDEX..SDFHCOB,DISP=SHR // DD DSN=&INDEX..SDFHMAC,DISP=SHR // DD DSN=&INDEX..SDFHSAMP,DISP=SHR //SYSPRINT DD SYSOUT=&OUTC //SYSIN DD DSN=&&SYSCIN,DISP=(OLD,DELETE) //SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS), // UNIT=&WORK,SPACE=(80,(250,100)) //SYSUT1 DD UNIT=&WORK,SPACE=(460,(350,100)) //SYSUT2 DD UNIT=&WORK,SPACE=(460,(350,100)) //SYSUT3 DD UNIT=&WORK,SPACE=(460,(350,100)) //SYSUT4 DD UNIT=&WORK,SPACE=(460,(350,100)) //SYSUT5 DD UNIT=&WORK,SPACE=(460,(350,100)) //SYSUT6 DD UNIT=&WORK,SPACE=(460,(350,100)) //SYSUT7 DD UNIT=&WORK,SPACE=(460,(350,100)) //* //COPYLINK EXEC PGM=IEBGENER,COND=(7,LT,COB) //SYSUT1 DD DSN=&INDEX..SDFHCOB(&STUB),DISP=SHR //SYSUT2 DD DSN=&&COPYLINK,DISP=(NEW,PASS), // DCB=(LRECL=80,BLKSIZE=400,RECFM=FB), // UNIT=&WORK,SPACE=(400,(20,20)) //SYSPRINT DD SYSOUT=&OUTC //SYSIN DD DUMMY //* //LKED EXEC PGM=IEWL,REGION=&REG, // PARM='&LNKPARM',COND=(5,LT,COB) //SYSLIB DD DSN=&INDEX..SDFHLOAD,DISP=SHR // DD DSN=&LE370HLQ..SCEELKED,DISP=SHR // DD DISP=SHR,DSN=TCPIP.SEZATCP // DD DISP=SHR,DSN=DSN710.SDSNLOAD //SYSLMOD DD DSN=&PROGLIB,DISP=SHR //SYSUT1 DD UNIT=&WORK,DCB=BLKSIZE=1024, // SPACE=(1024,(200,20)) //SYSPRINT DD SYSOUT=&OUTC //SYSLIN DD DSN=&&COPYLINK,DISP=(OLD,DELETE) // DD DSN=&&LOADSET,DISP=(OLD,DELETE) // DD DDNAME=SYSIN // PEND //CICSDB2 EXEC CICSDB2,NAME=EZACICSC //TRN.SYSIN DD DSN=&&DSNHOUT,DISP=(OLD,DELETE) //COB.SYSLIB DD DSN=CSQ531.SCSQCOBC,DISP=SHR // DD DISP=SHR,DSN=IBMUSER.LIB.COBOL // DD DSN=CICSTS22.CICS.SDFHCOB,DISP=SHR // DD DSN=CICSTS22.CICS.SDFHSAMP,DISP=SHR // DD DSN=CICSTS22.CICS.SDFHMAC,DISP=SHR //LKED.SYSLMOD DD DISP=SHR,DSN=IBMUSER.LIB.LOAD //LKED.CICSLOAD DD DISP=SHR,DSN=CICSTS22.CICS.SDFHLOAD //BIND.SYSTSIN DD * DSN S(DSN1) BIND PLAN(EZACICSC) MEMBER(EZACICSC) ACTION(REP) RETAIN ISOLATION(CS) END //LKED.SYSIN DD * INCLUDE SYSLIB(EZACICAL) INCLUDE CICSLOAD(DSNCLI) NAME EZACICSC(R) /*

Page 23: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 45 -

Test de EZACICSS par lancement de CECI START TR(SRV2) FROM(4000) Qui donne EZACICSS: CONNECT NOT ESTABLISHED ATTACHMENT FACILITY NOT ACTIVE Démarrage manuel de l’interface TCPIP CICS EZAO,START,CICS Pour cela il faut activer l’interface DB2CONN CEDA copy group(DFH$DB2) as(DB2CICS) to(DFH£DB2) Puis modification du DB2ID à DSN1 suivi de CEDA INSTALL GROUP(DB2GRP)

Mise en œuvre Link3270

Installation transaction NACT

Assembler les MAP via IBMUSER.LIB.JCL(DFHMAPS)

Compiler les programmes DFH0CNA1 à 5 via le job IBMUSER.LIB.JCL(CSQ4CV) En remplaçant les cartes suivantes :

Définir les fichiers de l’application et remplir le jeu d’essai: Lancer le job CICSTS22.CICS.SDFHINST(DFHNADEF) en modifiant &DSVOL=S4CIC1 &DSUNIT=SYSDA &DSINDEX=CICSTS22.CICS conformément à l’installation Hercules

Installation automatique de ressources CICS

pour la transaction NACT et le TCPIPSERVICE ECI CEDA ADD GROUP(DFH$NACT) LIST(XYZLIST) CEDA ADD GROUP(DFH$SOT) LIST(XYZLIST) CEDA I GROUP DFHCLNT DFHZCN1 PROGRAM DFHCLNT * INSTALL SUCCESSFUL DFHZCT1 PROGRAM DFHCLNT * INSTALL SUCCESSFUL DFHCOMCL TRANCLASS DFHCLNT * INSTALL SUCCESSFUL CCIN TRANSACTION DFHCLNT * INSTALL SUCCESSFUL CTIN TRANSACTION DFHCLNT * INSTALL SUCCESSFUL

//TRN.SYSIN DD DISP=SHR,DSN=CICSTS22.CICS.SDFHSAMP(DFH0CNA5) //COB.SYSLIB DD DSN= CICSTS22.CICS.SDFHSAMP,DISP=SHR //LKED.SYSIN DD *

NAME DFH0CNA5(R)

//DFHMAPS EXEC DFHMAPS,MAPNAME=DFH0MNA,OUTC=*

//COPY.SYSUT1 DD DISP=SHR,DSN=CICSTS22.CICS.SDFHSAMP(DFH0MNA)

Mise en œuvre Hercules & z/OS - Page - 46 -

CEDA I GROUP DFHCLNT CEDA I GROUP DFH$SOT CEDA I GROUP DFHIPECI CEDA I GROUP DFHBRVSL installation du fichier DFHBRNSF as local VSAM non RLS

Installation du Bridge Passthrough pour Link3270

Liste des fichiers du SupportPack CA1E

téléchargement à http://www.ibm.com/software/cics/txppacs

CICSTS22.CA1E.CPY CICSTS22.CA1E.DEF CICSTS22.CA1E.JCL CICSTS22.CA1E.LOAD CICSTS22.CA1E.MAP

Ajouter la loadlib dans la proc de CICSA

DFHRPL DD DSN=&INDEX2..SDFHLOAD,DISP=SHR …/… DD DISP=SHR,DSN=CICSTS22.CA1E.LOAD

Ajouter les ressources du fichier CICSTS22.CA1E.DEF dans le démarrage de CICS

CEDA ADD GROUP(BRQTOOL) LIST(XYZLIST) CEDA ADD GROUP(BRQTYPE) LIST(XYZLIST) CEDA ADD GROUP(BRQTERM) LIST(XYZLIST) Charger le fichier BRQFILOD par la transaction BRFL Modifier la TWASize de BRLI CEDA ALTER TRANSAC(BRLI) GROUP(BRQTOOL) Puis metre 2500 dans TWASize et faire CEDA I TRANSAC(BRLI) GROUP(BRQTOOL) pour prendre en compte cette modif

CICS BMS reverse utility pour décompiler des BMS format load vers un format source IBMUSER.LIB.JCL(DFHBMSUP) //RUNPROG EXEC PGM=DFHBMSUP,PARM='CSQ4CCM',REGION=2M //STEPLIB DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR //DFHRPL DD DISP=SHR,DSN=CSQ531.SCSQCICS //BMSOUT DD DISP=SHR,DSN=CICSTS22.BMSOUT(CSQ4CCM) //SYSUDUMP DD SYSOUT=*

Page 24: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 47 -

Test de samples PUT et GET MQ en batch

Programmes Batch MQ pour Call Out Sources en annexes issu des samples CVQ4BVJ1 et CVQ4BVK1

Compilation

Exécution du call out en batch

compiliation par IBMUSER.LIB.JCL(BATCHCPL) - 01.00 //COMPILE EXEC IGYWCL,OUTC=* //* //* COMPILE ET LINKEDIT DES SOURCES COBOL BATCH //* CSQ4BVK1 ET CSQ4BVJ1 //* PROCEDURE APPELEE: ADCD.ZOSV14S.PROCLIB(IGYWCL) //* //COBOL.SYSIN DD DISP=SHR,DSN=CSQ531.SCSQCOBS(CSQ4BVK1) //LKED.CSQSTUB DD DSN=CSQ531.SCSQLOAD,DISP=SHR //LKED.SYSLMOD DD DISP=SHR,DSN=CSQ531.SCSQLOAD

//CSQ4BVK3 JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // REGION=0M,NOTIFY=&SYSUID //COMPILE EXEC IGYWCL, // PARM='NODYNAM,LIB,OBJECT,RENT,APOST,MAP,XREF' //* //* COMPILE ET LINKEDIT DES SOURCES COBOL BATCH //* CSQ4BVK1 ET CSQ4BVJ1 //* PROCEDURE APPELEE: ADCD.ZOSV14S.PROCLIB(IGYWCL) //* //*COBOL.SYSIN DD DISP=SHR,DSN=CSQ531.SCSQCOBS(CSQ4BVK1) //COBOL.SYSIN DD DISP=SHR,DSN=IBMUSER.LIB.COBOL(CSQ4BVK3) //COBOL.SYSLIB DD DISP=SHR,DSN=CSQ531.SCSQCOBC // DD DISP=SHR,DSN=IBMUSER.LIB.COBOL //LKED.CSQSTUB DD DSN=CSQ531.SCSQLOAD,DISP=SHR //LKED.SYSLMOD DD DISP=SHR,DSN=CSQ531.SCSQLOAD //LKED.SYSIN DD * INCLUDE CSQSTUB(CSQBSTUB) NAME CSQ4BVK3(R) /*

//CSQ4BVK3 JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // REGION=0M,NOTIFY=&SYSUID //* parm: nbre d’appels , buffer //EXEC EXEC PGM=CSQ4BVK3,PARM='1119,11111111111111111111' //STEPLIB DD DSN=CSQ531.SCSQANLE,DISP=SHR // DD DSN=CSQ531.SCSQANLE,DISP=SHR // DD DSN=CSQ531.SCSQAUTH,DISP=SHR // DD DSN=CSQ531.SCSQLOAD,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=*

Mise en œuvre Hercules & z/OS - Page - 48 -

//LKED.SYSIN DD * INCLUDE CSQSTUB(CSQBSTUB) NAME CSQ4BVK1(R)

Exécution par CSQ531.SCSQPROC(CSQ4BVJR) - 01.01 //* //*PUTMSGS EXEC PGM=CSQ4BVK1,REGION=1024K, //* PARM=('CSQ1,TARGET.QUEUE,1,$,50,P') //* //GETMSGS EXEC PGM=CSQ4BVJ1,REGION=1024K, // PARM=('CSQ1,TARGET.QUEUE,1,D,N') //* PARM=('++QMGR++,++QUEUE++,++MSGS++,++GET++,++SYNC++')

Test de samples PUT et GET MQ sous cics sources CSQ531.SCSQCOBS(CSQ4CVJ1) GET via la transaction MVGT CSQ531.SCSQCOBS(CSQ4CVK1) PUT via la transaction MVPT

Compilation et link-edit tester le chargement si problème par CEMT SET PROG(CSQ4CVJ1) NEWCOPY //CICSCOB EXEC DFHYITVL,OUTC=* //* //* PRECOMPILE, COMPILE, REBLOCK ET LINKEDIT DES SOURCES COBOL //* POUR SAMPLES MQ PUT ET GET SIMPLES EN COBOL //* PROCEDURE APPELEE: ADCD.ZOSV14S.PROCLIB(DFHYITVL) //* //* POUR MQ AJOUTER EN FIN DE SYSIN //* INCLUDE CSQSTUB(CSQBSTUB) //* //TRN.SYSIN DD DISP=SHR,DSN=CSQ531.SCSQCOBS(CSQ4CVJ1) //* //* WEBSPHERE MQ FOR Z/OS LIBRARY CONTAINING CICS STUB //* //COB.SYSLIB DD DSN=CSQ531.SCSQCOBC,DISP=SHR //LKED.CSQSTUB DD DSN=CSQ531.SCSQLOAD,DISP=SHR //LKED.SYSIN DD * INCLUDE CSQSTUB(CSQCSTUB) NAME CSQ4CVJ1(R)

Mise en place CALL OUT JRULES

Définitions

JCL de soumission de commandes

Page 25: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 49 -

Placer les commandes dans le fichier CSQUCMD (j’ai mi 1h à comprendre…)

Objets MQ pour JRULES

Une queue pour les questions une autre pour la Reply-to-Queue et un channel type SVRCONN pour permettre à MQCLIENT de se connecter et d’accéder directement des queues locales

Installation de jZOS (TOMCAT sur z/OS) Voir http://www.dovetail.com/docs/jzos/tomcat.html Ajouter export PATH=/usr/lpp/Printsrv/bin:/usr/lpp/java/IBM/J1.3/bin:$PATH dans /etc/profile

Download JZOS

http://www-03.ibm.com/servers/eserver/zseries/software/java/ http://www-03.ibm.com/servers/eserver/zseries/software/java/j142pcont.html

IBMUSER.LIB.JCL(CSQUTIL) //CSQUTIL JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // REGION=0M,NOTIFY=&SYSUID //CSQUTIL EXEC PGM=CSQUTIL,REGION=4096K,PARM='CSQ1' //STEPLIB DD DSN=CSQ531.SCSQANLE,DISP=SHR // DD DSN=CSQ531.SCSQAUTH,DISP=SHR //CSQUCMD DD DISP=SHR,DSN=IBMUSER.LIB.JCL(QUEUEJRU) //SYSPRINT DD SYSOUT=* //SYSIN DD * COMMAND /*

* * DéFINITION DE LA LOCAL QUEUE FOR INQUIRE JRULES * DEF QL(JRULES.TARGET.QUEUE) QSGDISP(QMGR) REPLACE USAGE(NORMAL) - DESCR( 'TARGET QUEUE ON CSQ1 FOR JRULES') PUT(ENABLED) DEFPSIST(NO) - GET(ENABLED) SHARE DEFSOPT(SHARED) MSGDLVSQ(PRIORITY) - MAXDEPTH(10000) MAXMSGL(4000) * * DéFINITION DE LA LOCAL QUEUE FOR REPLY BY JRULES * DEF QL(JRULES.REPLY.QUEUE) QSGDISP(QMGR) REPLACE USAGE(NORMAL) - DESCR( 'TARGET QUEUE ON CSQ1 FOR JRULES') PUT(ENABLED) DEFPSIST(NO) - GET(ENABLED) SHARE DEFSOPT(SHARED) MSGDLVSQ(PRIORITY) - MAXDEPTH(10000) MAXMSGL(4000) * * DéFINITION DU CHANNEL RECEIVER FOR MQCLIENT * à FAIRE COTé JRULES UNIQUEMENT SI ON AVAIT UN QMGR COTé JRULES * *DEFINE CHANNEL(JRULES.TO.HOST) CHLTYPE(CLNTCONN) TRPTYPE(TCP) + *CONNAME(10.1.15.43) QMNAME(CSQ1) DESCR('CLIENT-CONNECTION TO CSQ1') * * DéFINITION DU CHANNEL RECEIVER SUR HOST CICS * DEFINE CHANNEL(JRULES.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) + DESCR('SERVER-CONNECTION FOR JRULES')

Mise en œuvre Hercules & z/OS - Page - 50 -

Installer TOMCAT sur z/OS

http://mir2.ovh.net/ftp.apache.org/dist/tomcat/tomcat-4/v4.1.36/bin/apache-tomcat-4.1.36.zip Upload par FTP sur Hercules à /u/ibmuser/SCORT/ et Creation d’un lien pour commodité Ln –s apache-tomcat-4.1.36.zip tomcat

Création d’une STC pour TOMCAT dans ADCD.ZOSV14S.PROCLIB(TOMCAT)

Creation du STDENV

//EXJZOSVM PROC JAVACLS='org.apache.catalina.startup.Bootstrap', // ARGS='start', < Args to Java class // LIBRARY='P390.JZOS.LOADLIB', < STEPLIB FOR JZOSVM module // VERSION='13', < JZOSVM version: 13, 14, 50 // LOGLVL='+T', < Debug LVL: +I(info) +T(trc) // REGSIZE='0M', < EXECUTION REGION SIZE // LEPARM='' //JAVAJVM EXEC PGM=JZOSVM&VERSION,REGION=&REGSIZE, // PARM='&LEPARM/&LOGLVL &JAVACLS &ARGS' //STEPLIB DD DSN=&LIBRARY,DISP=SHR //SYSPRINT DD SYSOUT=* < System stdout //SYSOUT DD SYSOUT=* < System stderr //STDOUT DD SYSOUT=* < Java System.out //STDERR DD SYSOUT=* < Java System.err //CEEDUMP DD SYSOUT=* //ABNLIGNR DD DUMMY //* //*The following DDs can/should be present in the calling JCL //* //*STDIN DD < OPTIONAL - Java System.in //STDENV DD DSN=ADCD.ZOSV14S.PROCLIB(TOMCATIN),DISP=SHR

. /etc/profile export JZOS_HOME=/u/ibmuser/jzos export JAVA_HOME=/usr/lpp/java/IBM/J1.3 TOMCAT_HOME=/u/ibmuser/SCORT/tomcat export PATH=/bin:"$éJAVA_HOMEè"/bin: LIBPATH=/lib:/usr/lib:"$éJAVA_HOMEè"/bin LIBPATH="$LIBPATH":"$éJAVA_HOMEè"/bin/classic LIBPATH="$LIBPATH":"$éJZOS_HOMEè" export LIBPATH="$LIBPATH": export _BPXK_AUTOCVT=OFF CLASSPATH="$éJAVA_HOMEè/lib/tools.jar" CLASSPATH="$CLASSPATH":"$éTOMCAT_HOMEè/bin/bootstrap.jar" CLASSPATH="$CLASSPATH":"$éJZOS_HOMEè/jzos.jar" export CLASSPATH="$CLASSPATH": export JZOS_ENABLE_MVS_COMMANDS=true £ Use this variable to supply additional arguments to main £export JZOS_MAIN_ARGS="" £ Configure JVM options £ Note that Tomcat requires default ASCII file.encoding IJO="-Xms64m -Xmx128m" IJO="$IJO -Djzos.home=$éJZOS_HOMEè" IJO="$IJO -Dfile.encoding=ISO8859-1" IJO="$IJO -Dcatalina.base=$éTOMCAT_HOMEè" IJO="$IJO -Dcatalina.home=$éTOMCAT_HOMEè" IJO="$IJO -Djava.io.tmpdir=$éTOMCAT_HOMEè/temp" IJO="$IJO -Djava.endorsed.dirs=" IJO="$éIJOè$éTOMCAT_HOMEè/common/endorsed" export IBM_JAVA_OPTIONS="$IJO " export JAVA_DUMP_HEAP=false export JAVA_PROPAGATE=NO export IBM_JAVA_ZOS_TDUMP=NO

Page 26: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 51 -

Déployer l’application smart

Copier smart.war dans /u/ibmuser/SCORT/tomcat/webapps Aller dans /u/ibmuser/SCORT/apache-tomcat-4.1.36/webapps/smart/WEB-INF/classes Et passer la commande sed s/.$// log4j.xml > log4j.xml1 Puis mv log4j.xml1 log4j.xml aller dans http://hercules:8080/manager/html/list et faire install comme suit:

Install

Install directory or WAR file located on server

Context Path (optional):

XML Configuration file URL:

WAR or Directory URL: smart.w ar

Install

Et verifier les erreurs dans /u/ibmuser/SCORT/apache-tomcat-4.1.36/logs Puis metre à jour le host dans /u/ibmuser/SCORT/3.0/standalone/webapps/smart/WEB-INF/classes/scortconnectors.properties Et lancer le host simulator avant de démarrer la connexion de l’application smart

Problems & TIPS on UNIX z/OS

Edition de fichers ASCII sur z/OS. Les commandes UNIX voient des fichiers EBCDIC par défaut, pour éditer en ASCII voir : http://www.dovetail.com/docs/jzos/editascii.html 2 étapes:

1. il faut positionner le tag ASCII sur les fichiers à éditer 2. exporter la variable _BPXK_AUTOCVT

chtag -tc ISO8859-1 myfile.properties export _BPXK_AUTOCVT=ON

Les commandes suivantes sont ajoutées dans le /etc/profile pour que les comptes UNIX en héritent au logging export PATH=/usr/lpp/Printsrv/bin:/usr/lpp/java/IBM/J1.3/bin:$PATH export _BPXK_AUTOCVT=ON

Conversion des CR/LF(DOS) en LF(Unix) sed s/.$// infilename >outfilename <<<<<<< à utiliser pour hercules z/OS Conversion UNIX vers DOS sed s/$/x0d/ infilename >outfilename

Prise en compte permanente des fichiers ASCII sur le file System SCORT

Mise en œuvre Hercules & z/OS - Page - 52 -

MOUNT FILESYSTEM('IBMUSER.SCORT.HFS') MOUNTPOINT('/u/ibmuser/SCORT') TYPE(HFS) TAG(TEXT,819) TAG(TEXT,819) identifies text files containing ASCII (ISO-8859-1) data MODE(RDWR) Too many open files

/u/ibmuser/SCORT/apache-tomcat-4.1.36/work/Standalone/localhost/fastrack/index_jsp.java:8: error while writing org.apache.jsp.index_jsp: /u/ibmuser/SCORT/apache-tomcat-4.1.36/work/Standalone/localhost/fastrack/index_jsp.class (EDC5124I Too many open files.) Adapter les parameters suivants dans ADCD.ZOSV14S.PARMLIB(BPXPRM00) MAXFILEPROC(10000) NETWORK DOMAINNAME(AF_UNIX) DOMAINNUMBER(1) MAXSOCKETS(12000) TYPE(UDS)

Installation de WebSphere 4.0.1 Sous P390 exec 'was401.sbboclib(bbowstrt)' 'WAS401' Puis suivre les prescriptions de P390.WAS.CNTL(BBOINSTR) Ajouter les lignes suivantes à ADCD.ZOSV14S.PARMLIB(PROGIM ) APF ADD DSNAME(WAS401.SBBOLPA) VOLUME(S4WAS2) APF ADD DSNAME(WAS401.SBBOLOAD) VOLUME(S4WAS2) APF ADD DSNAME(WAS401.SBBOLD2) VOLUME(S4WAS2) LNKLST ADD NAME(BBODBMDT) DSN(WAS401.SBBOLD2) VOLUME(S4WAS2) LNKLST ADD NAME(BBOOCRMT) DSN(WAS401.SBBOLD2) VOLUME(S4WAS2) LNKLST ADD NAME(BBODBMDT) DSN(WAS401.SBBOLD2) VOLUME(S4WAS2) Ajouter les lignes suivantes à ADCD.ZOSV14S.PARMLIB(COMMNDDI ) COM='SETPROG LPA,ADD,MASK=*,DSNAME=WAS401.SBBOLOAD' COM='SETPROG LPA,ADD,MASK=*,DSNAME=WAS401.SBBOLPA' COM='SETPROG LPA,ADD,MASK=*,DSNAME=WAS401.SBBOMIG' COM='SETPROG LPA,ADD,MASK=*,DSNAME=WAS401.SBBOULIB' Ajouter les lignes suivantes à ADCD.ZOSV14S.PARMLIB(BPXPRM00 ) MOUNT FILESYSTEM('OMVS.WAS.CONFIG.HFS') MOUNTPOINT('/WebSphere390/CB390') TYPE(HFS) MODE(RDWR) MOUNT FILESYSTEM('WAS401.SBBOHFS') MOUNTPOINT('/usr/lpp/WebSphere')

Page 27: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 53 -

TYPE(HFS) MODE(READ) Mettre à jour ADCD.ZOSV14S.PARMLIB(IEASYSDI ) SCH=(DB,BB), Ajouter à TCPIP.PROFILE.TCPIP 5556 TCP DAEMON01 SHAREPORT ; SSL port number for DAEMON01 5556 TCP BBODMN ; SSL port number for BBODMN Jobs de cutomization: voir P390.WAS.CNTL(BBOINSTR) BBOWCTR BBOERRLG BBORRSLS BBOCBRAJ BBOLDRAJ BBOCBRAK BBOWCHFS BBOMCFG BBOWCPY1 BBOMCRDB BBOBIND BBOTDBMC BBOLDTBC BBO1JCL BBO2JCL BBOCBGRT BBOLDGRT BBOMTDBM (can’t contact LDAP server) BBOLD2DB Doc WAS 401 : http://publib.boulder.ibm.com/infocenter/wasinfo/v4r0/index.jsp?topic=/com.ibm.websphere.v4.doc/welcome.html Samples: http://www-306.ibm.com/software/webservers/appserv/zos_os390/lib/was_clients.html export PATH=$PATH:/V1R4S/usr/lpp/db2/db2710/lib IBMUSER:/V1R4S/usr/lpp/java/IBM/J1.3: >bin/java -cp /usr/lpp/db2/db2710/classes/db2j2classes.zip COM/ibm/db2os390/sqlj/util/DB2DriverInfo

Mise en œuvre du passticket SETROPTS CLASSACT(PTKTDATA) SETROPTS RACLIST(PTKTDATA) RDEFINE PTKTDATA IVP1234

Mise en œuvre Hercules & z/OS - Page - 54 -

SSIGNON(key_description) UACC(access_authority) SETROPTS RACLIST(PTKTDATA)

Exemple pour le passticket de TSO RDEFINE PTKTDATA TSOSYS1 SSIGNON(KEYMASKED(0123456789abcdef)) SETROPTS LIST SETR REFRESH RACLIST(PTKTDATA) *

Exemple pour le passticket des jobs batch RDEFINE PTKTDATA MVSSYS1 SSIGNON(KEYMASKED(0123456789abcdef)) SETROPTS LIST SETR REFRESH RACLIST(PTKTDATA)

Exemple pour le passticket de IMS RDEFINE PTKTDATA IVP1ABC SSIGNON(KEYMASKED(0123456789abcdef)) SETR REFRESH RACLIST(PTKTDATA) RDEFINE PTKTDATA CICS SSIGNON(KEYMASKED(0123456789abcdef)) SETR REFRESH RACLIST(PTKTDATA)

DIVERS JOBS et questions

Mise à l’heure et timezone Exemple de mise à l’heure à 15h21 : /T CLOCK=15.21.00 Synchronisation de l’heure MVS avec la machine Windows de hercules dans la parmlib CLOCK00 OPERATOR NOPROMPT TIMEZONE E.01.00.00 ETRMODE NO ETRZONE NO ETRDELTA 10

clear de la sys1.logrec

//IFCDIP00 JOB CLASS=A,MSGLEVEL=(1,1),MSGCLASS=A //******************************************************************** //* CLEAR AND INITIALIZE HARDWARE EVENT RECORDER DATASET * //******************************************************************** //IFCDIP00 EXEC PGM=IFCDIP00 //SERERDS DD DSN=SYS1.LOGREC,DISP=OLD, // VOL=SER=OS39M1, // UNIT=SYSDA

Page 28: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 55 -

démarrage d'un INIT supplémentaire (quand un job reste en INPUT queue et qu'on a démarré tout IMS et CICS) $DI pout voir tous les INIT started et drained et démarrer le premier qui est DRAINED exemple

Purge de tous les vieux sysouts dans JES /$P J1-9999,/DAYS>1 /$P T1-9999,/DAYS>1 /$P S1-9999,/DAYS>1

récupérer des membres de PDS ou un fichier complet de load modules depuis un autre hercules Transmit ibmuser dsn(csq531.SCSQCICS) pds outdsname(csq531.SCSQCICS.SEQ) transférer le fichier en BINAIRE via IND£FILE et le PC receive indsn(csq531.SCSQCICS.SEQ) au prompt entrer odsn(csq531.SCSQCICS.PDS) (par exemple) pour recopier ensuite les membres détruits

Ajouter un Page data set En cas de msg IRA200E AUXILIARY STORAGE SHORTAGE Il faut ajouter un PAGE DATA SET

After you have successfully defined a new page data set, you can now relieve the auxiliary shortage by adding the new page data set to the system as shown in Figure 57.

$HASP892 INIT(11) STATUS=DRAINED,CLASS=ABCD,NAME=11 par la commande $S I11

//DEFPAGE JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // REGION=0M,NOTIFY=&SYSUID //STEP1 EXEC PGM=IDCAMS,COND=(4000,LT) //SYSPRINT DD SYSOUT=* //PAGELOC DD UNIT=SYSDA,VOL=SER=OS39M1,DISP=OLD //SYSIN DD * DEFINE PAGESPACE( - FILE(PAGELOC) - NAME(PAGE.MHQPROD.LOCAL3) - CYLINDERS(200) - VOLUME(OS39M1) )

PAGEADD PAGE=PAGE.MHQPROD.LOCAL3 IEE783I PAGEADD COMMAND- 531 PAGE.MHQPROD.LOCAL3 PAGE DATA SET NOW AVAILABLE FOR SYSTEM USE

Mise en œuvre Hercules & z/OS - Page - 56 -

Vérifier le nouveau status des page dataset

To ensure this new page data set remains a permanent part of your OS/390 system, you should update the PAGE= parameter in your ADCD.ZOSV14S.PARMLIB(IEASYSDI) parmlib member to include the new page data set as shown

GTF Trace

Exemple pour MQ START GTFxx.yy £HASP100 GTFxx.yy ON STCINRDR £HASP373 GTFxx.yy STARTED *01 AHL100A SPECIFY TRACE OPTIONS R 01,TRACE=JOBNAMEP,USRP TRACE=JOBNAMEP,USRP IEE600I REPLY TO 12 IS;TRACE=JOBNAMEP,USRP *02 ALH101A SPECIFY TRACE EVENT KEYWORDS - JOBNAME=,USR= R 02,JOBNAME=xxxxMSTR,(x,y),USR=(5E9,5EA,5EE) JOBNAME=xxxxMSTR,(x,y),USR=(5E9,5EA,5EE) IEE600I REPLY TO 13 IS;JOBNAME=xxxxMSTR,(x,y),USR=(5E9,5EA,5EE) *03 ALH102A CONTINUE TRACE DEFINITION OR REPLY END R 03,END END IEE600I REPLY TO 14 IS;END AHL103I TRACE OPTIONS SELECTED-USR=(5E9,5EA,5EE) AHL103I JOBNAME=xxxxMSTR,(x,y) *04 AHL125A RESPECIFY TRACE OPTIONS OR REPLY U R 04,U U IEE600I REPLY TO 15 IS;U AHL031I GTF INITIALIZATION COMPLETE where xxxxMSTR is the name of the queue manager and (x,y) is the jobname: x = the queue manager y = CHINIT, CICS, or batch STOP de la trace STOP yy

Formattage de la trace //S1 EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4096K //IPCSPARM DD DSN=SYS1.PARMLIB,DISP=SHR //IPCSDDIR DD DSN=thlqual.ipcs.dataset.directory,DISP=SHR //SYSTSPRT DD SYSOUT=*,DCB=(LRECL=137) //IPCSTOC DD SYSOUT=* //GTFIN DD DSN=gtf.trace,DISP=SHR //SYSTSIN DD * IPCS SETDEF FILE(GTFIN) NOCONFIRM

D ASM RESPONSE=P390 IEE200I 10.25.41 DISPLAY ASM 251 TYPE FULL STAT DEV DATASET NAME PLPA 87% OK 0A82 SYS1.PLPA.PAGE COMMON 2% OK 0A82 SYS1.COMMON.PAGE LOCAL 14% OK 0A82 SYS1.LOCAL.PAGE LOCAL 5% OK 0A82 PAGE.MHQPROD.LOCAL3 PAGEDEL COMMAND IS NOT ACTIVE

PAGE=(SYS1.PLPA.PAGE, SYS1.COMMON.PAGE, PAGE.MHQPROD.LOCAL3, SYS1.LOCAL.PAGE,L),

Page 29: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 57 -

GTFTRACE USR(5E9,5EA,5EE) /* //STEPLIB DD DSN=thlqual.SCSQAUTH,DISP=SHR

Création d’un nouveau volume pour hercules z/OS Voir infos dans http://www.conmicro.cx/hercules/hercload.html Exemple de commande Pour créér un nouveau volume “VOLSER” avec comme filename windows scort2.a19 (pourquoi pas …) Sous Cygwin lancer la commande suivante:

Ensuite le déplacer dans le repertoire DEVICES avec les autres disques. Et metre à jour la liste des volumes de la conf Hercules en ajoutant ceci:

Au démarrage il apparaît en 3.4 +-------------------------- VTOC Summary Information --------------------------+ | Volume . : S4WAS0 | | Command ===> | | | | Unit . . : 3390 | | | | Volume Data VTOC Data Free Space Tracks Cyls | | Tracks . : 16,695 Tracks . : 5 Size . . : 4,365 291 | | %Used . : 73 %Used . . : 3 Largest . : 4,350 290 | | Trks/Cyls: 15 Free DSCBS: 243 | | Free Extents . : 2 | | | | | +------------------------------------------------------------------------------+

MVS Frequently Asked Questions

Console Operations

Why do I have a "message waiting" on the MVS console?

After an IPL, the default for message handling is "manual deleting"; all messages remain on the MVS console screen until the operator issues a command to delete them. A more usable solution is to have MVS automatically scroll (delete) older messages that do not require operator response in order to make room for newer messages. In the MVS command input area, type the command:

k s

which will cause MVS to echo to the command input area the command:

0A19 3390 C:/HERCMSVC/DEVICES/scort2.a19

$ dasdinit scort1.a90 3390 S4WAS0 HHCDU044I Creating 3390 volume S4WAS0: 1113 cyls, 15 trks/cyl, 56832 bytes/track HHCDU041I 1113 cylinders successfully written to file scort2.a19 HHCDI001I DASD initialization successfully completed.

Mise en œuvre Hercules & z/OS - Page - 58 -

K S,DEL=N,SEG=09,CON=Y,RNUM=19,RTME=046

Change DEL=N to DEL=RD (specifies that messages not requiring operator action are to be automatically rolled off the console screen), CON=Y to CON=N (cancel conversational message deletion), and RTME=046 to RTME=001 (set the interval between message updating to 1 second), and press ENTER to set the new parameters in effect.

How can I set a PFK on the MVS console?

You can set any of the Program Function Keys to valid MVS console commands, so that frequently used commands may be entered simply by pressing the appropriate Program Function Key. The command:

K N,PFK=(n,CMD='command text'),CON=N

where n specifies the PFKey number (1, 2, 3, ... 12) and command text specifies the command to be sent to MVS when the PFKey is pressed (the single quotation marks are required). The PFKey settings will persist from IPL to IPL, so it is not necessary to set the same PFKey again unless you wish to assign a different command text to it.

To display the current settings, use the command:

D PFK

How do I display information about DASD on the console?

To display all DASD volumes currently online, use the command:

d u,dasd,online

This will probably result in several "pages" of output. To display the next page of output, use the command:

k d,f

To terminate the display and erase the area the output occupied, use the command:

k e,d

Volker Bandke has put together a great list of this and other MVS console and JES2 commands at http://www.bsp-gmbh.com/hercules/oscmds.html.

What are the reply options for the message - $HASP098 ENTER TERMINATION

OPTION - issued during JES2 shutdown?

Answers supplied by Phil Roberts and Jack Schudel in the Hercules MVS forum:

Page 30: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 59 -

r 00,dump to produce a system dump

r 00,snap to produce a snap dump

r 00,purge r 00,exit

to shutdown JES2

Why does VTAM not seem to recognize my 3270 terminals?

You must connect a tn3270 client to each of the terminal addresses that you intend to use for VTAM/TSO prior to IPL, or you may experience this. Also, sometimes after logging off a TSO session, VTAM will "lose" the terminal. Either of these is indicated if you do not see the Network Solicitor message on the terminal:

THIS TERMINAL IS LOGGED ON TO THE NETWORK SOLICITOR

On the MVS console, enter these two commands:

v net,inact,id=cuu0cx v net,act,id=cuu0cx

substituting the correct last digit of the terminal's hardware address for the x. The terminal should then show the Network Solicitor message and be available to log on to TSO.

What does the message - $HASP050 JES2 RESOURCE SHORTAGE - mean and how

can I fix it?

This message is issued whenever JES2 is approaching 100% utilization of one of its resources and may be one of several. The particular resource is indicated in the text of the message, such as:

JQE - Job Queue Elements JOE - Job Output Elements SMFB - System Management Facilities buffers

It is not a good idea to allow JES2 to completely exhaust resources, as that will often result in a deadlock situation, i.e.. the shortage will prevent you from resolving the shortage and your only recourse is to re-start JES2 with a cold-start, losing any jobs that are in process.

The amount of each of JES2 resources to provide is specified in the JES2 parameters, which is in the SYS1.PARMLIB(JES2PARM) if you have built your system utilizing my instructions. To verify the location of your JES2 parameters, locate the HASPPARM DD statement in the JES2 procedure in SYS1.PROCLIB, which points to the location of the active JES2PARM.

Edit the member, either with TSO edit or with IEBUPDTE, to increase the allocation for the resource which is nearing full utilization and cycle JES2 - shut down JES2 and restart it.

You can immediately alleviate the shortage in JQE and JOE by purging some of the jobs from the queue. Use the $DN, $DF, or $DP commands to view jobs awaiting output and then use $P to purge unneeded jobs. You can also use the QUEUE command under TSO to review and selectively delete jobs from the queue.

Mise en œuvre Hercules & z/OS - Page - 60 -

To delete all output from TSO User sessions, enter $PT1-9999. To delete all output from started tasks, enter $PS1-9999. If you are sure there is no batch job output on the queue that you need, you can delete all output from batch jobs by entering $PJ1-9999.

What does the message - IEC141I 013-C8,IGG0193K,MSTRJCL,JES2,STCINRDR -

mean, and what should I do about it?

This fairly nasty looking message is issued following the entry of the z eod command on the MVS console and is the result of the IEFU29 user exit being applied to the system. The short explanation is that the exit is attempting to start a job in the background but since the system has just been shut down (z eod is the command issued to initiate an orderly system shutdown at end of shift/workday/etc) the job cannot allocate needed resources. There is no way to prevent this message and have the advantages the user exit provides, so the only recourse is to cringe and ignore the message. No harm will be done and no data will be lost. On the next IPL, SMF will continue to write new records into the same dataset. When the dataset does fill up, the SMF dataset switch will be performed, the system won't be in the process of shutting down, and the job will run to save the SMF data properly. You can read more about the IEFU29.

What does the message - IEA405E WTO BUFFER SHORTAGE - 80% FULL - mean,

and what should I do about it?

It means that there are so many console messages pending that 80% of the buffers allocated for Write To Operator messages are in use. It is doubtful that you could have operated MVS with messages pending on the master console (the 3270 attached to device address 010) long enough to fill 80% of the buffers, so a good assumption is that the alternate console has not be set up to roll delete messages not requiring attention. Switch to the tn3270 client attached to the alternate console (device address 011) and press the PFKey to which you assigned the command to set the message display to roll delete. (If you have not already followed the instructions on how to do this at Starting and Terminating VTAM and TSO there is no time like the present!)

If you continue submitting jobs without attending to this right away, you could find the system halted because all of its WTO buffers are full.

Why are my tape devices "offline" when MVS starts?

Sometime around version 3.00 of Hercules, the behavior of tape devices under MVS changed. Tape devices defined in the configuration file were marked as "offline" by MVS 3.8j during IPL. The first time a job requires a tape device, in a series of messages will be displayed similar to this:

IEF244I TAPEMAP TAPEMAP - UNABLE TO ALLOCATE 1 UNIT(S) AT LEAST 1 OFFLINE UNIT(S) NEEDED. IEF489I TAPEMAP - 1 UNIT(S) NEEDED FOR SYSUT1 IEF247I TAPEMAP - 310,311,312,313,314,315,316,317 OFFLINE *03 IEF238D TAPEMAP - REPLY DEVICE NAME OR 'CANCEL'.

Page 31: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 61 -

Of course, you can resolve this by issuing a VARY command to bring one (or more) of the configured tape drives online and then respond to the outstanding message with the address of the now available drives. In fact, you can simply respond to the outstanding message with the address of an offline, but otherwise available, drive. A more practical solution is to setup your MVS initialization to bring the configured drives online at IPL automatically.

There are two places the commands to accomplish this task may be placed.

The first is the COMMND?? member of SYS1.PARMLIB. If you do not already have this member set up, you will need to edit two members of the SYS1.PARMLIB partitioned dataset. The member IEASYS00 needs to contain a line pointing to the COMMND?? member:

CMD=00, AUTO COMMANDS: COMMND00

CMD=00 specifies that the command member suffix is 00, resulting in the full name of the command member: COMMND00. Note the comma, which indicates that there are additional commands following this one in the IEASYS00 member. During IPL, lines are processed from this member until a line is encountered which is not terminated with a comma, so you must be careful in editing the IEASYS00 member to avoid having an MVS that will not IPL. Everything following the space after the comma is treated as a comment. If you already have a CMD= statement in your IEASYS00, all you need do is edit the existing COMMND?? member, adding your commands to any already existing.

Create (or edit) the COMMND?? member pointed to from the IEASYS00 member and insert a VARY command:

COM='VARY (310,311),ONLINE'

inserting the address of one or more tape drives defined in your configuration file between the parentheses. In my system, the two tape drives I have defined are 310 and 311, as shown in the VARY command above.

The second place that the VARY command may be placed, and the one I prefer, is in the JES2 parameters. Locate the JES2 parameter file being utilized by your system. To ensure that you edit the active set of parameters, look at the JES2 member in SYS1.PROCLIB and locate the dataset name in the HASPPARM DD statement. That is the dataset, and member, you need to edit. On my system, it is the JES2PM00 member of SYS1.PARMLIB. Locate the automatic operator commands, which are usually segregated together near the end of the member. Insert a VARY command:

$VS,'V (310,311),ONLINE'

again substituting the address(es) of your defined tape drives in the command.

Once you set up this automatic command, your tape drives will be online following each IPL.

How can I use DIAG 8 to submit Hercules' commands from MVS?

Grzes Plucinski has written a program to do this (see message posted on Hercules-390 discussion list: http://groups.yahoo.com/group/hercules-390/message/37861). You will need to complete four steps to implement this on your system:

Mise en œuvre Hercules & z/OS - Page - 62 -

1. Download the AWS tape image from Gregor's site containing the load module: http://www.grzes.com/herccmd.aws

2. Use IEBCOPY to restore the load module from the tape image to a load library on your MVS system 3. Catalog the procedure to invoke the program 4. Enable DIAG8 commands in Hercules

Here is an IEBCOPY jobstream that will restore the load module to SYS2.LINKLIB (if you don't have SYS2.LINKLIB defined, you may alter the JCL to use SYS1.LINKLIB):

//IEBCOPYR JOB (001),'RESTORE HERCCMD',CLASS=A,MSGCLASS=A //RELOAD EXEC PGM=IEBCOPY,REGION=1024K //SYSPRINT DD SYSOUT=* //TAPEIN DD UNIT=TAPE,DISP=OLD,DSN=GRZES.HERCCMD, // VOL=SER=DHRCMD,LABEL=(,SL) //LIBOUT DD DISP=SHR,DSN=SYS2.LINKLIB //SYSUT3 DD UNIT=SYSDA,SPACE=(80,(60,45)),DISP=(NEW,DELETE) //SYSIN DD * COPY INDD=TAPEIN,OUTDD=LIBOUT /* //

Here is an IEBUPDTE jobstream that will catalog the procedure to execute the HERCCMD program as a Started Task from the MVS console:

//IEBUPDTE JOB (001),'HERCCMD PROC',CLASS=A,MSGCLASS=A //IEBUPDTE EXEC PGM=IEBUPDTE,REGION=1024K,PARM=NEW //SYSUT2 DD DISP=SHR,DSN=SYS2.PROCLIB //SYSPRINT DD SYSOUT=* //SYSIN DD DATA,DLM='$$' //HERCCMD PROC CMD=MISSING //HERCCMD EXEC PGM=HERCCMD,PARM='&CMD' ./ ENDUP $$ //

You need to add a line to your Hercules' configuration file to enable DIAG 8 commands:

DIAG8CMD ENABLE

You should also be aware of the security ramifications of enabling this feature of Hercules:

DIAG8CMD disable/enable When set to enable, commands issued through diagnose 8 will be executed by hercules as hercules commands. When set to disable, commands issued through the diagnose 8 interface will be ignored. The default is disable. Note that when this feature is enabled, systems running under hercules can even issue host commands through the hercules sh command. Enabling this feature may have security consequences.

An example of the use of the command - when a tape mount is requested, you can issue an MVS Start command to execute the catalogued procedure to send a devinit command to Hercules:

*IEC501A M 311,000001,BLP,6250 BPI,TAPEMAP,TAPEMAP S HERCCMD,CMD='devinit 0311 tape/cobol.het'

Page 32: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 63 -

$HASP100 HERCCMD ON STCINRDR $HASP373 HERCCMD STARTED HERCCMD - CMD : devinit 0311 tape/cobol.het HERCCMD - SECURITY PRODUCT UNAVALIABLE, UNABLE TO CHECK AUTH HERCCMD - RESP : Mounted tape tape/cobol.het HERCCMD - RESP : HHCTA998I Device 0311 : tape/cobol.het is a Hercules Formatted Tape HERCCMD - RESP : HHCPN098I Device 0311 initialized $HASP395 HERCCMD ENDED

You could also insert into a jobstream a step executing HERCCMD to pre-mount a required tape before a step in which the tape is to be used.

Why is it necessary to use FORMAT or COLD START when JES2 options change?

Although it is not always the case, there are some JES2 options (specified either through the MVS console or through the parameter member contained in SYS1.PARMLIB pointed to by the JES2 JCL procedure) which affect the allocation of the SPOOL file (the primary dataset where JES2 stores job information). When these parameters are changed, it is necessary to FORMAT the SPOOL dataset before JES2 can be started. If you attempt to start JES2 without specifying FORMAT or COLD and parameters have been changed requiring FORMAT, JES2 will assume that you intended to do a COLD START and message $HASP436 will be issued asking you to confirm that you wish to format the SPOOL dataset. Since JES2 will be unable to start without formatting the SPOOL dataset, you have little option other than to proceed, but note that formatting the SPOOL dataset will cause the loss of any held SYSOUT data or jobs held awaiting execution.

How can I recover from terminal JES2 problems (corrupted/full spool, damaged

checkpoint, invalid parameters, etc)?

Most of the questions similar to this asked on the Hercules' forums arise from problems encountered when JES2 is first starting after an IPL of MVS.

First some background about JES2 initiation. JES2 is initiated near the end of the IPL process. The exact format of the Start command issued "under the covers" to initiate JES2 will vary depending upon how your system was generated, but regardless of the command issued, a procedure that resides in SYS1.PROCLIB is executed as a started task to initiate JES2. This procedure is usually stored in the member SYS1.PROCLIB(JES2), but like almost everything about an MVS installation, it may be altered to suit an individual installation. Many of the parameters which govern the operation of JES2 are read from a "card image" dataset when JES2 is first initiated. To determine the name of this dataset in your installation, examine the JCL stored in the SYS1.PROCLIB(JES2) member. The DD name for the parameter dataset is HASPPARM. On my system it is necessary to do some substitution of symbolic variables of the cataloged procedure in order to determine that the dataset from which the parameters is read is SYS1.PARMLIB(JES2PM00). It is also evident that there is no default PARM value supplied in the catalogued procedure.

If the problem you are attempting to recover from is caused by a damaged spool or checkpoint dataset, you can usually start JES2 manually from the system console with an override parameter to format the spool, thereby resulting in a usable JES2 system. Note that the contents of the spool (unprocessed and held jobs,

Mise en œuvre Hercules & z/OS - Page - 64 -

print and punch output) will be lost. If it is still executing, you must first terminate the JES2 that encountered the problem, which may require a reply of 'TERM' or 'PURGE'. Then enter the command:

S JES2,PARM='FORMAT,NOREQ'

to start JES2 and have it format the spool dataset(s) and begin execution with no further prompts to the console.

If you have changed values for some of the parameters in the dataset pointed to by the HASPPARM DD to invalid values and failed to backup the working set of parameters, you will need to use a standalone editor, such as ZZSA, to correct the erroneous values. Of course, the proper way to make changes to the JES2 parameters avoids this and allows you a recovery path in case of errors. To safely make changes to the JES2 parameters, make a copy of the current JES2 parameters in another member of SYS1.PARMLIB (or the dataset which holds the parameters in your MVS installation). Make the changes to the copy you have created, not to the original. Shut down all executing jobs and then JES2, then execute JES2 with an override to access the modified copy of the parameters. For example, on my system if I copied the parameters to SYS1.PARMLIB(JES2PM01), I would use the command:

S JES2,M=JES2PM01

to restart JES2 and use the newly modified parameters by overriding the default member name (specified by the symbolic variable M). If everything works satisfactorily I can then replace the contents of SYS1.PARMLIB(JES2PM00) with the contents of SYS1.PARMLIB(JES2PM01) and the next time MVS is IPLed, the new version of the parameters will be read without needing an override from the console. Note that the exact command used to override the value of the parameter dataset on your system may not be the same as on my system. Check the contents of the catalogued procedure used to initiate JES2 on your system before proceeding.

If you are making frequent changes to the JES2 parameters, you probably should keep a series of members utilizing a naming scheme that will allow you to associate each properly functioning set with a particular member. That would allow you to always revert to a former functional point by specifying a particular member name from a start command issued from the console -- simply substitute the correct member name in the M= value in the start command.

I hope that you have found my instructions useful. If you have questions that I can answer to help expand upon my explanations and examples shown here, please don't hesitate to send them to me:

This page was last updated on.

Page 33: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 65 -

ANNEXES - Démarrage Hercules

Toute la doc Hercules http://www.bsp-gmbh.com/hercules/ Téléchargements Hercules for Windows en version précompilées:

http://www.bsp-gmbh.com/hercules/snapshots/index.html#snapshots Téléchargement CTCI-W32:

http://www.softdevlabs.com/Hercules/ctci-w32-index.html prendre WINCAP 3.1 CTCI-W32 Fishlib (téléchargement à http://www.softdevlabs.com/Hercules/hercgui-index.html ) Dans Hercules.cnf le boot (IPL) est configuré notamment par LOADPARM 0A82IW.. (détermine les disques et la config sur laquelle on démarre)

Shéma général +----------------------------------------------------------------------+ | | | W I N D O W S H O S T | | | | | | +-------------+ 00-00-5E-A8-00-04 | | | Hercules | +-------------+ | | | ----------- | | Hercules's | +-------------| | | OS/390 | | "virtual" | (FishPack dll) | WinPCap | (to other LAN work- | | TCP/IP | | adapter |<------------------>| device | stations, Internet, | | ----------- | | | | driver | etc...) | | CTCA | |(192.168.0.4)| + - - - - - - + | |(192.168.0.4)| +-----+-------+ | Windows's | +-----------------+ | +------+------+ | | REAL *--------->| 192.168.0.1 | | | | +------------------>| adapter | (LAN) | Gateway adapter | | +------------------+ | (Winsock dll) | 192.168.0.2 | +-----------------+ | (TunTap32 dll) | +-------------+ 00-02-48-8B-8D-60 | | 00-80-B3-E1-DF-69 | +---------V-------+ | | +-| | | | +-| | (Windows | | | | | | Applications) | | | | | | | | | | | +-----------------+ | | | +-----------------+ | | +-----------------+ | | | +----------------------------------------------------------------------+

Mise en œuvre Hercules & z/OS - Page - 66 -

MVS TCPIP configuration using CTCI-W32 -------------------------------------- The following values belong in the TCP profile. This configuration has been tested using OS/390 2.9 through z/OS 1.1. The example uses the addresses in the sample above. The first entry in the TCP profile is the DEVICE entry. This is the parameter that defines the UCB address assigned to the interface within the MVS environment. It is related to the LINK statement to build the TCPIP connection between the hardware and the TCPIP stack. DEVICE CTC1 CTC E20 LINK CTC1L CTC 0 CTC1 The second entry is the HOME entry. This is where the IP address is assigned to the device interface within the TCPIP stack. The HOME entry connects the IP address to the hardware through the LINK defined with the DEVICE. HOME 192.168.0.4 CTC1L The GATEWAY describes how the IP stack gets to the rest of the network. It defines the physical first hop from the local interface out to the entire network. In our example, we are defining a gateway to one physical IP address, 192.168.0.2. 1492 is the data packet size. GATEWAY 192.168.0.2 = CTC1L 1492 HOST ATTENTION IL FAUT AJOUTER une ROUTE POUR LE RETOUR sous la forme 10 = CTC1 1492 0.255.0.0 0.1.0.0 The DEFAULTNET statement instructs what path the IP stack should take to look for address it doesn't know about. IP assumes the next hop will be able to resolve the IP address the stack is trying to connect to. DEFAULTNET 192.168.0.2 = CTC1L 1492 0 The final statement needed in the profile is the command to instruct TCPIP to start the device. START CTC1 Building the static route from the PC to the emulated environment ----------------------------------------------------------------- In order to connect from the PC to the Hercules guest, you will need to define a route to the TCPIP environment on the PC. This is especially important if you are using the Microsoft Loopback Adaptor to allow connectivity in a PC without an Ethernet adapter installed. Using a Command Prompt window, you need to issue the command below to create a static route between the TCPIP stack in the PC to the TCPIP interface in the MVS environment. The ROUTE command supports making a persistent link under Win2000 and WinXP. The format of the command will try to make the

Page 34: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 67 -

entry persistent. If the command fails (persistent isn't supported under Win98 SE), remove the -p after ROUTE. You will need to repeat this command every re-boot of the PC. installer un loopback sur windows (finalement pas nécessaire, mais je l'ai fait quand même) http://www.windowsnetworking.com/articles_tutorials/Install-Microsoft-Loopback-adapter-Windows-XP.html

==============================================================================

Définitions réseau coté z/OS ============================================================================== ; ; TCPIP.PROFILE.TCPIP ; ============= ; DEVICE CTCA1 CTC E20 LINK CTC1 CTC 0 CTCA1 HOME 10.1.3.35 CTC1 PRIMARYINTERFACE CTC1 GATEWAY 10.1.15.35 = CTC1 1492 HOST 10 = CTC1 1492 0.255.0.0 0.1.0.0 >>> nécessaire pour le retour des trames IP DEFAULTNET 10.1.15.35 = CTC1 1492 0 START CTCA1 ============================================================================== Vérifier que le CTC est bien défini et Actif ============================================================================== D U,CTC IEE457I 08.13.41 UNIT STATUS 410 UNIT TYPE STATUS VOLSER VOLSTATE 0E20 CTC A-BSY 0E21 CTC A 0E22 CTC OFFLINE 0E23 CTC OFFLINE 0E40 CTC OFFLINE 0E41 CTC OFFLINE 0E42 CTC OFFLINE 0E43 CTC OFFLINE ============================================================================== Vérifier qu'on a bien les routes définies coté z/OS ============================================================================== D TCPIP,,NET,ROUTE

Mise en œuvre Hercules & z/OS - Page - 68 -

EZZ2500I NETSTAT CS V1R4 TCPIP 407 DESTINATION GATEWAY FLAGS REFCNT INTERFACE 10.1.0.0 0.0.0.0 US 000000 CTC1 10.1.3.35 0.0.0.0 UH 000000 CTC1 10.1.15.35 0.0.0.0 UHS 000000 CTC1 127.0.0.1 0.0.0.0 UH 000004 LOOPBACK 4 OF 4 RECORDS DISPLAYED ==============================================================================

Définitions réseau coté Windows ============================================================================== définir une route pour atteindre hercules route -p add 10.1.3.35 mask 255.255.255.255 10.1.15.35 route -p add 10.1.0.0 mask 255.255.0.0 10.1.15.35 ============================================================================== Vérifier qu'on a bien les routes définies coté Windows ============================================================================== route print Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique 0.0.0.0 0.0.0.0 10.1.255.254 10.1.15.35 20 10.1.0.0 255.255.0.0 10.1.15.35 10.1.15.35 20 10.1.15.35 255.255.255.255 127.0.0.1 127.0.0.1 20 >>> pour marcher en local uniquement 10.255.255.255 255.255.255.255 10.1.15.35 10.1.15.35 20 >>> nécessaire pour que les autres du même LAN puissent l'atteindre aussi 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 224.0.0.0 240.0.0.0 10.1.15.35 10.1.15.35 20 255.255.255.255 255.255.255.255 10.1.15.35 4 1 255.255.255.255 255.255.255.255 10.1.15.35 10.1.15.35 1 Passerelle par défaut : 10.1.255.254 =========================================================================== Itinéraires persistants : Adresse réseau Masque réseau Adresse passerelle Métrique 10.1.0.0 255.255.0.0 10.1.15.35 1 ==============================================================================

Définition du DNS SCORT dans Hercules On ne défini pas de DNS dans le PROFILE.TCPIP de z/OS, on prend celui qui existe dans le réseau de SCORT Préparer les modifs dans le fichier de travail suivant ADCD.ZOSV14S.TCPPARMS(TCPDATA) modifier les lignes suivantes: HOSTNAME HERCULES DOMAINORIGIN suresnes.scort.com NSINTERADDR 10.1.0.1 NSINTERADDR 10.1.0.5 NSPORTADDR 53 RESOLVEVIA UDP RESOLVERTIMEOUT 20

HOSTS.LOCAL

Page 35: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 69 -

Dans TCPIP.HOSTS.LOCAL on peut ajouter des noms locaux pour un fonctionnement en local (cas où Hercules est sur un LAN indépendant) Exemples de syntaxe HOST : 10.1.15.37 : JPAREPONDEUR : HOST : 10.1.15.36 : WLSBEA : HOST : 10.1.15.35 : ERIKA : (noter que :ERIKA , AUTRENOM: ne fonctionne pas) HOST : 10.1.3.35 : HERCULES : La commande Makesite hlq=hlq va créer les fichiers caches locaux, Output is written to hlq.HOSTS.ADDRINFO and hlq.HOSTS.SITEINFO tso makesite hlq=TCPIP

Stopper/relancer TCPIP Cette operation est nécessaire pour modifier TCPIP.PROFILE.TCPIP ainsi que TCPIP.TCPIP.DATA ("/p TSPIP" sous SDSF) Attention: il faut être connecté sur le port 3270 et non sur le port 23 pour éviter d'être coupé avec hercules et le relancer par "/S TCPIP"

Source COBOL CICS pour test Call Out 000100* CBL XOPTS(ANSI85) 000200* CBL NODYNAM,LIB,OBJECT,RENT,RES,APOST 000300* * 000400* ------------------------------------------------------------- * 000500 IDENTIFICATION DIVISION. 000600* ------------------------------------------------------------- * 000700 PROGRAM-ID. CSQ4CVK2. 000800 DATA DIVISION. 000900* ------------------------------------------------------------- * 001000 FILE SECTION. 001100* ------------------------------------------------------------- * 001200 WORKING-STORAGE SECTION. 001300* ------------------------------------------------------------- * 001400* 001500* W00 - General work fields 001600* 001700 01 W00-RETURN-CODE PIC S9(4) BINARY VALUE ZERO. 001800 01 W00-LOOP PIC S9(9) BINARY VALUE 0. 001900 01 W00-NUMPUTS-NUM PIC 9(9) VALUE 0. 002000 01 W00-NUMPUTS PIC S9(9) BINARY VALUE 0. 002010 01 W00-NUMGETS-NUM PIC 9(9) VALUE 0. 002020 01 W00-NUMGETS PIC S9(9) BINARY VALUE 0. 002100 01 W00-ERROR-MESSAGE PIC X(10) VALUE SPACES. 002200 01 W00-MESSAGE PIC X(80) VALUE SPACES. 002210 01 W00-WAIT-INTERVAL PIC S9(09) BINARY VALUE 5000. 002300* 002400* Parameter variables 002500* 002600 01 W00-PARM-LEN PIC S9(03) BINARY. 002700 01 W00-PARM-STRING. 002800 02 W00-PARM-STRING-ARRAY PIC X(1) OCCURS 100 TIMES. 002900* 003000 01 W00-TRANSNAME PIC X(8) VALUE ' '. 003100 01 W00-QNAME PIC X(48) VALUE 'JRULES.TARGET.QUEUE'. 003200 01 W00-RTQNAME PIC X(18) VALUE 'JRULES.REPLY.QUEUE'. 003400 01 W00-MSGBUFFER PIC X(100) VALUE SPACES. 003600 01 W00-MSGLENGTH PIC S9(9) BINARY VALUE 622. 003700 01 W00-PERSISTENCE PIC X(1) VALUE 'N'.

Mise en œuvre Hercules & z/OS - Page - 70 -

003800 88 NOT-PERSISTENT VALUE 'N'. 003900* 004000* W03 - API fields 004100* 004200 01 W03-HCONN PIC S9(9) BINARY VALUE ZERO. 004300 01 W03-HOBJ PIC S9(9) BINARY VALUE ZERO. 004400 01 W03-OPENOPTIONS PIC S9(9) BINARY VALUE ZERO. 004500 01 W03-COMPCODE PIC S9(9) BINARY VALUE ZERO. 004600 01 W03-COMPCODE-CHAR PIC X(9) VALUE SPACES. 004700 01 W03-REASON PIC S9(9) BINARY VALUE ZERO. 004800 01 W03-REASON-CHAR PIC X(9) VALUE SPACES. 004801 01 W03-CORRELID PIC X(24) VALUE SPACES. 004802 01 W03-REQUEST. 004803 COPY CAREQH. 004804 10 W03-DATA-IN PIC X(100). 004810* 004820* W04 - API response fields 004830* 004840 01 W04-HCONN PIC S9(9) BINARY VALUE ZERO. 004850 01 W04-HOBJ PIC S9(9) BINARY VALUE ZERO. 004860 01 W04-OPENOPTIONS PIC S9(9) BINARY VALUE ZERO. 004880 01 W04-DATALEN PIC S9(9) BINARY VALUE 100. 004890 01 W04-BUFFERLEN PIC S9(9) BINARY VALUE 100. 004891 01 W04-RESPONSE. 004892 COPY CAREPH. 004893 10 W03-DATA-OUT PIC X(1000). 004900* 005000* API control blocks 005100* 005200 01 MQM-OBJECT-DESCRIPTOR. 005300 COPY CMQODV. 005400 01 MQM-MESSAGE-DESCRIPTOR. 005500 COPY CMQMDV. 005600 01 MQM-PUT-MESSAGE-OPTIONS. 005700 COPY CMQPMOV. 005710 01 MQM-GET-MESSAGE-OPTIONS. 005720 COPY CMQGMOV. 005800* 005900* MQV contains constants (for filling in the control blocks) 006000* and return codes (for testing the result of a call) 006100* 006200 01 MQM-CONSTANTS. 006300 COPY CMQV SUPPRESS. 006400* 006500* DFHAID contains the constants used for checking for 006600* attention identifiers 006700* 006800 COPY DFHAID SUPPRESS. 006900* 007000* 007100* ------------------------------------------------------------- * 007200 LINKAGE SECTION. 007300* ------------------------------------------------------------- * 007400 EJECT 007500* ------------------------------------------------------------- * 007600 PROCEDURE DIVISION. 007700* ------------------------------------------------------------- * 007800* ------------------------------------------------------------- * 007900 A-MAIN SECTION. 008000* ------------------------------------------------------------- * 008100* 008200* Receive the parameter list passed in by CICS 008300* 008400 MOVE SPACES TO W00-PARM-STRING. 008500 MOVE LENGTH OF W00-PARM-STRING TO W00-PARM-LEN. 008600* 008700 EXEC CICS IGNORE CONDITION LENGERR END-EXEC. 008800 EXEC CICS RECEIVE

Page 36: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 71 -

008900 INTO( W00-PARM-STRING ) 009000 LENGTH( W00-PARM-LEN ) 009100 END-EXEC. 009200* 009300* Move parameters into corresponding variables 009400* 009500 UNSTRING W00-PARM-STRING 009600 DELIMITED BY ALL ',' 009700 INTO W00-TRANSNAME 009800 W00-MSGBUFFER. 010100* 010200* Display parameters to be used in the program 010300* 010400* DISPLAY '==========================================='. 010500* DISPLAY ' INQUIRE QUEUE :', W00-QNAME. 010510* DISPLAY ' REPLY QUEUE :', W00-RTQNAME. 010700* DISPLAY ' MSGBUFFER - ', W00-MSGBUFFER. 011000* DISPLAY '==========================================='. 011100* 011200* If parameter list invalid then call USAGE-ERROR 011300* and exit 011400* 012410 IF W00-MSGBUFFER = SPACES 012420 PERFORM USAGE-ERROR 012430 MOVE 8 TO W00-RETURN-CODE 012440 GO TO A-MAIN-END 012450 END-IF. 013300* 013400* Open the queue for output. Fail the call if the queue 013500* manager is quiescing. 013600* 013700 COMPUTE W03-OPENOPTIONS = MQOO-OUTPUT + 013800 MQOO-INQUIRE + 013900 MQOO-SET-IDENTITY-CONTEXT. 014000* MQOO-FAIL-IF-QUIESCING. 014100 014200 MOVE W00-QNAME TO MQOD-OBJECTNAME. 014300* 014310* DISPLAY 'OPEN W03-HOBJ' 014400 CALL 'MQOPEN' USING W03-HCONN 014500 MQOD 014600 W03-OPENOPTIONS 014700 W03-HOBJ 014800 W03-COMPCODE 014900 W03-REASON. 015300 IF (W03-COMPCODE NOT = MQCC-OK) THEN 015400 MOVE 'MQOPEN' TO W00-ERROR-MESSAGE 015500 PERFORM DISPLAY-ERROR-MESSAGE 015600 MOVE W03-REASON TO W00-RETURN-CODE 015700 GO TO A-MAIN-END 015800 END-IF. 015810* 015820* Open the queue for GET from JRULES (same options) 015830* 015840 COMPUTE W04-OPENOPTIONS = MQOO-INPUT-SHARED + 015850 MQOO-INQUIRE + 015870 MQOO-FAIL-IF-QUIESCING. 015880 MOVE W00-RTQNAME TO MQOD-OBJECTNAME. 015890* 015891* DISPLAY 'W04-HOBJ' 015892 CALL 'MQOPEN' USING W03-HCONN 015893 MQOD 015894 W04-OPENOPTIONS 015895 W04-HOBJ 015896 W03-COMPCODE 015897 W03-REASON. 015898* 015899* If open failed then display error message and exit

Mise en œuvre Hercules & z/OS - Page - 72 -

015900* 015901 IF (W03-COMPCODE NOT = MQCC-OK) THEN 015902 MOVE 'MQOPEN' TO W00-ERROR-MESSAGE 015903 PERFORM DISPLAY-ERROR-MESSAGE 015904 MOVE W03-REASON TO W00-RETURN-CODE 015905 GO TO CLOSEH03 015906 END-IF. 015910 MOVE MQPER-NOT-PERSISTENT TO MQMD-PERSISTENCE. 016000 MOVE MQFMT-STRING TO MQMD-FORMAT. 016100 MOVE W00-RTQNAME TO MQMD-REPLYTOQ. 016110 MOVE FUNCTION CURRENT-DATE TO W03-CORRELID. 016111 MOVE W03-CORRELID TO MQMD-CORRELID 016200 MOVE MQMI-NONE TO MQMD-MSGID. 016210 MOVE SPACES TO W03-DATA-IN 016220 MOVE W00-MSGBUFFER TO W03-DATA-IN 016230 MOVE LENGTH OF W03-DATA-IN TO RQ-LENGTH 016250 MOVE 'TestBeanSOAPRPCLiteralService' TO RQ-SERVICE 016260 MOVE 'executeString' TO RQ-OPERATION 016310* COMPUTE MQPMO-OPTIONS = MQPMO-NEW-MSG-ID + 016400* MQPMO-NEW-CORREL-ID + 016401* MQPMO-SET-IDENTITY-CONTEXT + 016402 COMPUTE MQPMO-OPTIONS = MQPMO-FAIL-IF-QUIESCING + 016510 MQPMO-NO-SYNCPOINT. 017000* 017100* Put msg to dest queue 017200* 017210* DISPLAY 'PUT W03-HOBJ' 017300 CALL 'MQPUT' USING W03-HCONN 017400 W03-HOBJ 017500 MQMD 017600 MQPMO 017700 W00-MSGLENGTH 017800 W03-REQUEST 017900 W03-COMPCODE 018000 W03-REASON. 018100* DISPLAY 'MQMD-MSGID:' MQMD-MSGID. 018200* DISPLAY 'MQMD-CORRELID:' MQMD-CORRELID. 018300* 018400* If put failed then display error message 018500* and break out of loop 018600* 018700 ADD 1 TO W00-NUMPUTS 018800 IF (W03-COMPCODE NOT = MQCC-OK) THEN 018900 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM 019000 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR 019100 MOVE W03-REASON TO W03-REASON-CHAR 019200 019300 MOVE SPACES TO W00-MESSAGE 019400 STRING 'MQPUT ', W00-NUMPUTS-NUM, ' failed' 019500 ' * CC : ', W03-COMPCODE-CHAR, 019600 ' * RC : ', W03-REASON-CHAR, ' *' 019700 DELIMITED BY SIZE INTO W00-MESSAGE 019800 PERFORM DISPLAY-MESSAGE 019900 020000 MOVE W03-REASON TO W00-RETURN-CODE 020010 GO TO CLOSEH04 020200* 020400* 020500* If no error occurred, display the number of messages 020600* successfully put to the queue 020700* 020800 IF (W03-COMPCODE = MQCC-OK) THEN 020900 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM 021000 MOVE SPACES TO W00-MESSAGE 021100 STRING W00-NUMPUTS-NUM, ' MESSAGES PUT TO QUEUE' 021200 DELIMITED BY SIZE INTO W00-MESSAGE 021300 PERFORM DISPLAY-MESSAGE 021400 END-IF.

Page 37: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 73 -

021401 GET-RESPONSE. 021403 COMPUTE MQGMO-OPTIONS = MQGMO-NO-SYNCPOINT + 021404 MQGMO-WAIT + 021405 MQGMO-FAIL-IF-QUIESCING. 021408 MOVE W00-WAIT-INTERVAL TO MQGMO-WAITINTERVAL. 021413 MOVE MQMI-NONE TO MQMD-MSGID. 021414 MOVE W03-CORRELID TO MQMD-CORRELID. 021415 MOVE MQENC-NATIVE TO MQMD-ENCODING. 021416 MOVE MQCCSI-Q-MGR TO MQMD-CODEDCHARSETID. 021418 MOVE LENGTH OF W04-RESPONSE TO W04-BUFFERLEN. 021419* 021421* DISPLAY 'GET W04-HOBJ' 021422 CALL 'MQGET' USING W03-HCONN 021423 W04-HOBJ 021424 MQMD 021425 MQGMO 021426 W04-BUFFERLEN 021427 W04-RESPONSE 021428 W04-DATALEN 021429 W03-COMPCODE 021430 W03-REASON. 021446 ADD 1 TO W00-NUMGETS 021447 IF (W03-COMPCODE NOT = MQCC-OK) THEN 021448 MOVE W00-NUMGETS TO W00-NUMGETS-NUM 021449 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR 021450 MOVE W03-REASON TO W03-REASON-CHAR 021451 021452 MOVE SPACES TO W00-MESSAGE 021453 STRING 'MQGET ', W00-NUMGETS-NUM, ' failed' 021454 ' * CC : ', W03-COMPCODE-CHAR, 021455 ' * RC : ', W03-REASON-CHAR, ' *' 021456 DELIMITED BY SIZE INTO W00-MESSAGE 021457 PERFORM DISPLAY-MESSAGE 021458 MOVE W03-REASON TO W00-RETURN-CODE 021459 END-IF. 021460 IF (W03-COMPCODE = MQCC-OK) THEN 021461 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM 021462 MOVE SPACES TO W00-MESSAGE 021463 MOVE W03-DATA-OUT(1:79) TO W00-MESSAGE 021465 PERFORM DISPLAY-MESSAGE 021467 END-IF. 022701 CLOSEH04. 022702* 022703* Close the queues 022704* 022705* DISPLAY 'CLOS W04-HOBJ' 022706 CALL 'MQCLOSE' USING W03-HCONN 022707 W04-HOBJ 022708 MQCO-NONE 022709 W03-COMPCODE 022710 W03-REASON. 022711 IF (W03-COMPCODE NOT = MQCC-OK) THEN 022712 MOVE 'MQCLOSE' TO W00-ERROR-MESSAGE 022713 PERFORM DISPLAY-ERROR-MESSAGE 022714 MOVE W03-REASON TO W00-RETURN-CODE 022715 END-IF. 022716 CLOSEH03. 022717* DISPLAY 'CLOS W03-HOBJ' 022718 CALL 'MQCLOSE' USING W03-HCONN 022720 W03-HOBJ 022730 MQCO-NONE 022740 W03-COMPCODE 022750 W03-REASON. 022760 IF (W03-COMPCODE NOT = MQCC-OK) THEN 022770 MOVE 'MQCLOSE' TO W00-ERROR-MESSAGE 022780 PERFORM DISPLAY-ERROR-MESSAGE 022790 MOVE W03-REASON TO W00-RETURN-CODE 022791 END-IF.

Mise en œuvre Hercules & z/OS - Page - 74 -

022800* 022900* 023000 A-MAIN-END. 023100* 023200* 023300 MOVE W00-RETURN-CODE TO RETURN-CODE 023400 EXEC CICS RETURN END-EXEC. 023500* 023600 GOBACK. 023700 EJECT 023800* 023900* ------------------------------------------------------------- * 024000 USAGE-ERROR SECTION. 024100* ------------------------------------------------------------- * 024200* 024300 MOVE SPACES TO W00-MESSAGE. 024400 MOVE '=Usage : SCPT,BUFFER' TO W00-MESSAGE. 024600 PERFORM DISPLAY-MESSAGE. 024700* 024800 USAGE-ERROR-END. 024900* 025000* RETURN TO PERFORMING FUNCTION 025100* 025200 EXIT. 025300* 025400* ------------------------------------------------------------- * 025500 DISPLAY-ERROR-MESSAGE SECTION. 025600* ------------------------------------------------------------- * 025700* 025800 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR. 025900 MOVE W03-REASON TO W03-REASON-CHAR. 026000* 026100 MOVE SPACES TO W00-MESSAGE. 026200 STRING '* ', W00-ERROR-MESSAGE, 026300 ' * CC : ', W03-COMPCODE-CHAR, 026400 ' * RC : ', W03-REASON-CHAR, ' *' 026500 DELIMITED BY SIZE INTO W00-MESSAGE. 026600 PERFORM DISPLAY-MESSAGE. 026700* 026800 DISPLAY-ERROR-MESSAGE-END. 026900* 027000* RETURN TO PERFORMING FUNCTION 027100* 027200 EXIT. 027300* 027400* ------------------------------------------------------------- * 027500 DISPLAY-MESSAGE SECTION. 027600* ------------------------------------------------------------- * 027700* 027800 EXEC CICS SEND 027900 FROM( W00-MESSAGE ) 028000 LENGTH( 79 ) 028100 ERASE 028200 END-EXEC. 028300 MOVE SPACES TO W00-MESSAGE. 028400* 028500 DISPLAY-MESSAGE-END. 028600* 028700* RETURN TO PERFORMING FUNCTION 028800* 028900 EXIT. 029000* 029100* 029200* ------------------------------------------------------------- * 029300* END OF PROGRAM 029400* ------------------------------------------------------------- *

Page 38: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 75 -

Source COBOL Batch pour test Call Out 000100* CBL XOPTS(ANSI85) 000200* CBL NODYNAM,LIB,OBJECT,RENT,RES,APOST 000300* * 000400* ------------------------------------------------------------- * 000500 IDENTIFICATION DIVISION. 000600* ------------------------------------------------------------- * 000700 PROGRAM-ID. CSQ4BVK3. 000800 DATA DIVISION. 000900* ------------------------------------------------------------- * 001000 FILE SECTION. 001100* ------------------------------------------------------------- * 001200 WORKING-STORAGE SECTION. 001300* ------------------------------------------------------------- * 001400* 001500* W00 - General work fields 001600* 001700 01 W00-RETURN-CODE PIC S9(4) BINARY VALUE ZERO. 001800 01 W00-LOOP-NUMS PIC 9(5). 001810 01 W00-LOOP PIC S9(9) BINARY VALUE 0. 001900 01 W00-NUMPUTS-NUM PIC 9(9) VALUE 0. 002000 01 W00-NUMPUTS PIC S9(9) BINARY VALUE 0. 002010 01 W00-NUMGETS-NUM PIC 9(9) VALUE 0. 002020 01 W00-NUMGETS PIC S9(9) BINARY VALUE 0. 002100 01 W00-ERROR-MESSAGE PIC X(10) VALUE SPACES. 002200 01 W00-MESSAGE PIC X(80) VALUE SPACES. 002210 01 W00-WAIT-INTERVAL PIC S9(09) BINARY VALUE 5000. 002300* 002400* Parameter variables 002500* 002510 01 W00-NUMMSGS-NUM PIC 9(4) VALUE 0. 002520 01 W00-NUMMSGS PIC S9(9) BINARY VALUE 1. 002600 01 W00-PARM-LEN PIC S9(03) BINARY. 002700 01 W00-PARM-STRING. 002800 02 W00-PARM-STRING-ARRAY PIC X(1) OCCURS 100 TIMES. 002900* 003000 01 W00-TRANSNAME PIC X(8) VALUE ' '. 003100 01 W00-QMGR PIC X(48) VALUE 'CSQ1'. 003110 01 W00-QNAME PIC X(48) VALUE 'JRULES.TARGET.QUEUE'. 003200 01 W00-RTQNAME PIC X(18) VALUE 'JRULES.REPLY.QUEUE'. 003400 01 W00-MSGBUFFER PIC X(20) VALUE SPACES. 003600 01 W00-MSGLENGTH PIC S9(9) BINARY VALUE 622. 003700 01 W00-PERSISTENCE PIC X(1) VALUE 'N'. 003800 88 NOT-PERSISTENT VALUE 'N'. 003900* 004000* W03 - API fields 004100* 004200 01 W03-HCONN PIC S9(9) BINARY VALUE ZERO. 004300 01 W03-HOBJ PIC S9(9) BINARY VALUE ZERO. 004400 01 W03-OPENOPTIONS PIC S9(9) BINARY VALUE ZERO. 004500 01 W03-COMPCODE PIC S9(9) BINARY VALUE ZERO. 004600 01 W03-COMPCODE-CHAR PIC X(9) VALUE SPACES. 004700 01 W03-REASON PIC S9(9) BINARY VALUE ZERO. 004800 01 W03-REASON-CHAR PIC X(9) VALUE SPACES. 004801 01 W03-CORRELID PIC X(24) VALUE SPACES. 004804 01 W03-REQUEST. 004805 COPY CAREQH. 004809 10 W03-DATA-IN PIC X(100) VALUE SPACES. 004810* 004820* W04 - API response fields 004830* 004840 01 W04-HCONN PIC S9(9) BINARY VALUE ZERO. 004850 01 W04-HOBJ PIC S9(9) BINARY VALUE ZERO. 004860 01 W04-OPENOPTIONS PIC S9(9) BINARY VALUE ZERO. 004880 01 W04-DATALEN PIC S9(9) BINARY VALUE 100. 004890 01 W04-BUFFERLEN PIC S9(9) BINARY VALUE 100. 004891 01 W04-RESPONSE.

Mise en œuvre Hercules & z/OS - Page - 76 -

004893 COPY CAREPH. 004894 10 W03-DATA-OUT PIC X(1000) VALUE SPACES. 004900* 005000* API control blocks 005100* 005200 01 MQM-OBJECT-DESCRIPTOR. 005300 COPY CMQODV. 005400 01 MQM-MESSAGE-DESCRIPTOR. 005500 COPY CMQMDV. 005600 01 MQM-PUT-MESSAGE-OPTIONS. 005700 COPY CMQPMOV. 005710 01 MQM-GET-MESSAGE-OPTIONS. 005720 COPY CMQGMOV. 005800* 005900* MQV contains constants (for filling in the control blocks) 006000* and return codes (for testing the result of a call) 006100* 006200 01 MQM-CONSTANTS. 006300 COPY CMQV SUPPRESS. 006400* 007100* ------------------------------------------------------------- * 007200 LINKAGE SECTION. 007300* ------------------------------------------------------------- * 007310 01 PARMDATA. 007320 05 PARM-LEN PIC S9(03) BINARY. 007330 05 PARM-STRING PIC X(100). 007400 EJECT 007500* ------------------------------------------------------------- * 007600 PROCEDURE DIVISION USING PARMDATA. 007700* ------------------------------------------------------------- * 007800* ------------------------------------------------------------- * 007900 A-MAIN SECTION. 008000* ------------------------------------------------------------- * 008100 IF PARM-LEN = 0 THEN 008200 PERFORM USAGE-ERROR 008300 MOVE 8 TO W00-RETURN-CODE 008400 GO TO A-MAIN-END 008500 END-IF. 008600* 008700* Move parameters into corresponding variables 008800* 008900 UNSTRING PARM-STRING DELIMITED BY ALL ',' 009000 INTO W00-NUMMSGS-NUM 009400 W00-MSGBUFFER. 009500 MOVE W00-NUMMSGS-NUM TO W00-NUMMSGS. 009600* 009700* Display parameters to be used in the program 009800* 010100 DISPLAY '==========================================='. 010200 DISPLAY 'PARAMETERS PASSED :'. 010700 DISPLAY ' Nbre de boucles- ', W00-NUMMSGS-NUM. 010800 DISPLAY ' MSGBUFFER - ', W00-MSGBUFFER. 011000 DISPLAY '==========================================='. 011100* 011200* If parameter list invalid then call USAGE-ERROR 011300* and exit 011400* 012410 IF W00-NUMMSGS-NUM = SPACES 012420 PERFORM USAGE-ERROR 012430 MOVE 8 TO W00-RETURN-CODE 012440 GO TO A-MAIN-END 012450 END-IF. 012451 IF W00-MSGBUFFER = SPACES 012452 PERFORM USAGE-ERROR 012453 MOVE 8 TO W00-RETURN-CODE 012454 GO TO A-MAIN-END 012455 END-IF. 012460*

Page 39: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 77 -

012470* Connect to the queue manager 012480* 012490 CALL 'MQCONN' USING W00-QMGR 012500 W03-HCONN 012600 W03-COMPCODE 012700 W03-REASON. 012800* 012900* If connection failed then display error message and exit 013000* 013100 IF (W03-COMPCODE NOT = MQCC-OK) THEN 013200 MOVE 'MQCONN' TO W00-ERROR-MESSAGE 013210 PERFORM DISPLAY-ERROR-MESSAGE 013220 MOVE W03-REASON TO W00-RETURN-CODE 013230 GO TO A-MAIN-END 013240 END-IF. 013250 DISPLAY 'MQCONN SUCCESSFUL'. 013300* 013400* Open the queue for output. Fail the call if the queue 013500* manager is quiescing. 013600* 013700 COMPUTE W03-OPENOPTIONS = MQOO-OUTPUT + 013800 MQOO-INQUIRE + 013900 MQOO-SET-IDENTITY-CONTEXT + 014000 MQOO-FAIL-IF-QUIESCING. 014200 MOVE W00-QNAME TO MQOD-OBJECTNAME. 014400 CALL 'MQOPEN' USING W03-HCONN 014500 MQOD 014600 W03-OPENOPTIONS 014700 W03-HOBJ 014800 W03-COMPCODE 014900 W03-REASON. 015300 IF (W03-COMPCODE NOT = MQCC-OK) THEN 015400 MOVE 'MQOPEN' TO W00-ERROR-MESSAGE 015500 PERFORM DISPLAY-ERROR-MESSAGE 015600 MOVE W03-REASON TO W00-RETURN-CODE 015700 GO TO A-MAIN-END 015800 END-IF. 015810* 015820* Open the queue for GET from JRULES (same options) 015830* 015840 COMPUTE W04-OPENOPTIONS = MQOO-INPUT-SHARED + 015850 MQOO-INQUIRE + 015870 MQOO-FAIL-IF-QUIESCING. 015880 MOVE W00-RTQNAME TO MQOD-OBJECTNAME. 015891 CALL 'MQOPEN' USING W03-HCONN 015892 MQOD 015893 W04-OPENOPTIONS 015894 W04-HOBJ 015895 W03-COMPCODE 015896 W03-REASON. 015900 IF (W03-COMPCODE NOT = MQCC-OK) THEN 015901 MOVE 'MQOPEN' TO W00-ERROR-MESSAGE 015902 PERFORM DISPLAY-ERROR-MESSAGE 015903 MOVE W03-REASON TO W00-RETURN-CODE 015905 GO TO CLOSEH03 015906 END-IF. 015907 PERFORM WITH TEST BEFORE VARYING W00-LOOP FROM 0 BY 1 015908 UNTIL (W00-LOOP >= W00-NUMMSGS) 015910 MOVE MQPER-NOT-PERSISTENT TO MQMD-PERSISTENCE 016000 MOVE MQFMT-STRING TO MQMD-FORMAT 016100 MOVE W00-RTQNAME TO MQMD-REPLYTOQ 016200 MOVE MQMI-NONE TO MQMD-MSGID 016301 MOVE W00-LOOP TO W00-LOOP-NUMS 016303 MOVE FUNCTION CURRENT-DATE TO MQMD-CORRELID 016304* DISPLAY 'LOOP : ' W00-LOOP-NUMS 016305 MOVE W00-LOOP-NUMS TO MQMD-CORRELID(17:5) 016306 MOVE MQMD-CORRELID TO W03-CORRELID 016307 MOVE SPACES TO W03-DATA-IN

Mise en œuvre Hercules & z/OS - Page - 78 -

016308 MOVE W00-MSGBUFFER TO W03-DATA-IN 016309 MOVE LENGTH OF W03-DATA-IN TO RQ-LENGTH 016311 MOVE 'TestBeanSOAPRPCLiteralService' TO RQ-SERVICE 016312 MOVE 'executeString' TO RQ-OPERATION 016320* COMPUTE MQPMO-OPTIONS = MQPMO-NEW-MSG-ID + 016400* MQPMO-NEW-CORREL-ID + 016401* MQPMO-SET-IDENTITY-CONTEXT + 016402 COMPUTE MQPMO-OPTIONS = MQPMO-FAIL-IF-QUIESCING + 016510 MQPMO-NO-SYNCPOINT 017000* 017100* Put msg to dest queue 017200* 017300 CALL 'MQPUT' USING W03-HCONN 017400 W03-HOBJ 017500 MQMD 017600 MQPMO 017700 W00-MSGLENGTH 017800 W03-REQUEST 017900 W03-COMPCODE 018000 W03-REASON 018100* DISPLAY 'MQMD-MSGID:' MQMD-MSGID 018200* DISPLAY 'MQMD-CORRELID:' MQMD-CORRELID 018300* 018400* If put failed then display error message 018500* and break out of loop 018600* 018700 ADD 1 TO W00-NUMPUTS 018800 IF (W03-COMPCODE NOT = MQCC-OK) THEN 018900 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM 019000 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR 019100 MOVE W03-REASON TO W03-REASON-CHAR 019200 019300 MOVE SPACES TO W00-MESSAGE 019400 STRING 'MQPUT ', W00-NUMPUTS-NUM, ' failed' 019500 ' * CC : ', W03-COMPCODE-CHAR, 019600 ' * RC : ', W03-REASON-CHAR, ' *' 019700 DELIMITED BY SIZE INTO W00-MESSAGE 019800 PERFORM DISPLAY-MESSAGE 019900 020000 MOVE W03-REASON TO W00-RETURN-CODE 020010 GO TO CLOSEH04 020020 END-IF 020400* 020500* If no error occurred, display the number of messages 020600* successfully put to the queue 020700* 020800 IF (W03-COMPCODE = MQCC-OK) THEN 020900 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM 021000 MOVE SPACES TO W00-MESSAGE 021100 STRING W00-NUMPUTS-NUM, ' MESSAGES PUT TO QUEUE' 021200 DELIMITED BY SIZE INTO W00-MESSAGE 021300 PERFORM DISPLAY-MESSAGE 021400 END-IF 021403 COMPUTE MQGMO-OPTIONS = MQGMO-NO-SYNCPOINT + 021404 MQGMO-WAIT + 021405 MQGMO-FAIL-IF-QUIESCING 021408 MOVE W00-WAIT-INTERVAL TO MQGMO-WAITINTERVAL 021413 MOVE MQMI-NONE TO MQMD-MSGID 021414 MOVE W03-CORRELID TO MQMD-CORRELID 021415 MOVE MQENC-NATIVE TO MQMD-ENCODING 021416 MOVE MQCCSI-Q-MGR TO MQMD-CODEDCHARSETID 021418 MOVE LENGTH OF W04-RESPONSE TO W04-BUFFERLEN 021421 CALL 'MQGET' USING W03-HCONN 021422 W04-HOBJ 021423 MQMD 021424 MQGMO 021425 W04-BUFFERLEN 021426 W04-RESPONSE

Page 40: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 79 -

021427 W04-DATALEN 021428 W03-COMPCODE 021429 W03-REASON 021446 ADD 1 TO W00-NUMGETS 021447 IF (W03-COMPCODE NOT = MQCC-OK) THEN 021448 MOVE W00-NUMGETS TO W00-NUMGETS-NUM 021449 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR 021450 MOVE W03-REASON TO W03-REASON-CHAR 021451 021452 MOVE SPACES TO W00-MESSAGE 021453 STRING 'MQGET ', W00-NUMGETS-NUM, ' failed' 021454 ' * CC : ', W03-COMPCODE-CHAR, 021455 ' * RC : ', W03-REASON-CHAR, ' *' 021456 DELIMITED BY SIZE INTO W00-MESSAGE 021457 PERFORM DISPLAY-MESSAGE 021458 MOVE W03-REASON TO W00-RETURN-CODE 021459 END-IF 021460 IF (W03-COMPCODE = MQCC-OK) THEN 021461 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM 021462 MOVE SPACES TO W00-MESSAGE 021463 MOVE W03-DATA-OUT TO W00-MESSAGE 021465 PERFORM DISPLAY-MESSAGE 021466 DISPLAY 'RECU: ' W04-DATALEN 021467 END-IF 021468 END-PERFORM. 021470 CLOSEH04. 021500* 021600* Close the queues 021700* 021800 CALL 'MQCLOSE' USING W03-HCONN 021900 W04-HOBJ 022000 MQCO-NONE 022100 W03-COMPCODE 022200 W03-REASON. 022300 IF (W03-COMPCODE NOT = MQCC-OK) THEN 022400 MOVE 'MQCLOSE' TO W00-ERROR-MESSAGE 022500 PERFORM DISPLAY-ERROR-MESSAGE 022600 MOVE W03-REASON TO W00-RETURN-CODE 022700 END-IF. 022701 CLOSEH03. 022710 CALL 'MQCLOSE' USING W03-HCONN 022720 W03-HOBJ 022730 MQCO-NONE 022740 W03-COMPCODE 022750 W03-REASON. 022760 IF (W03-COMPCODE NOT = MQCC-OK) THEN 022770 MOVE 'MQCLOSE' TO W00-ERROR-MESSAGE 022780 PERFORM DISPLAY-ERROR-MESSAGE 022790 MOVE W03-REASON TO W00-RETURN-CODE 022791 END-IF. 022800* 022810 A-MAIN-DISCONNECT. 022820* 022830* Disconnect from the queue manager 022840* 022850 CALL 'MQDISC' USING W03-HCONN 022860 W03-COMPCODE 022870 W03-REASON. 022880 IF (W03-COMPCODE NOT = MQCC-OK) THEN 022890 MOVE 'MQDISC' TO W00-ERROR-MESSAGE 022891 PERFORM DISPLAY-ERROR-MESSAGE 022892 MOVE W03-REASON TO W00-RETURN-CODE 022893 ELSE 022894 DISPLAY 'MQDISC SUCCESSFUL' 022895 END-IF. 022900* 023000 A-MAIN-END. 023100*

Mise en œuvre Hercules & z/OS - Page - 80 -

023200* 023300 MOVE W00-RETURN-CODE TO RETURN-CODE 023400 STOP RUN. 023500* 023600 GOBACK. 023700 EJECT 023800* 023900* ------------------------------------------------------------- * 024000 USAGE-ERROR SECTION. 024100* ------------------------------------------------------------- * 024200* 024300 MOVE SPACES TO W00-MESSAGE. 024400 MOVE '=Usage : nbre boucles,Buffer' TO W00-MESSAGE. 024600 PERFORM DISPLAY-MESSAGE. 024700* 024800 USAGE-ERROR-END. 024900* 025000* RETURN TO PERFORMING FUNCTION 025100* 025200 EXIT. 025300* 025400* ------------------------------------------------------------- * 025500 DISPLAY-ERROR-MESSAGE SECTION. 025600* ------------------------------------------------------------- * 025700* 025800 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR. 025900 MOVE W03-REASON TO W03-REASON-CHAR. 026000* 026100 MOVE SPACES TO W00-MESSAGE. 026200 STRING '* ', W00-ERROR-MESSAGE, 026300 ' * CC : ', W03-COMPCODE-CHAR, 026400 ' * RC : ', W03-REASON-CHAR, ' *' 026500 DELIMITED BY SIZE INTO W00-MESSAGE. 026600 PERFORM DISPLAY-MESSAGE. 026700* 026800 DISPLAY-ERROR-MESSAGE-END. 026900* 027000* RETURN TO PERFORMING FUNCTION 027100* 027200 EXIT. 027300* 027400* ------------------------------------------------------------- * 027500 DISPLAY-MESSAGE SECTION. 027600* ------------------------------------------------------------- * 027700* 027800 DISPLAY W00-MESSAGE 028300 MOVE SPACES TO W00-MESSAGE. 028400* 028500 DISPLAY-MESSAGE-END. 028600* 028700* RETURN TO PERFORMING FUNCTION 028800* 028900 EXIT. 029000* 029100* 029200* ------------------------------------------------------------- * 029300* END OF PROGRAM 029400* ------------------------------------------------------------- *

COPY CAREQH et CAREPH pour Call Out SCORT 10 CALL-OUT-REQUEST-HEADER. 15 RQ-VERSION PIC 9(2) VALUE 01. 15 RQ-SERVICE PIC X(256) VALUE SPACES. 15 RQ-OPERATION PIC X(256) VALUE SPACES. 15 RQ-LENGTH PIC S9(8) COMP VALUE 100. 10 CALL-OUT-RESPONSE-HEADER.

Page 41: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 81 -

15 RESP-VERSION PIC 9(2) VALUE 01. 15 RESP-RC PIC S9(8) COMP. 15 RESP-LENGTH PIC S9(8) COMP.

Samples CICS DB2 pour transaction D8SC

JOB DSNTEJ1 – création des objets DB2 et chargement des tables //********************************************************************* 00010000 //* NAME = DSNTEJ1 00020000 //* 00030000 //* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION 00040000 //* PHASE 1 (LOCAL SITE ONLY) 00050000 //* 00060000 //* LICENSED MATERIALS - PROPERTY OF IBM 00070000 //* 5675-DB2 00080000 //* (C) COPYRIGHT 1982, 2000 IBM CORP. ALL RIGHTS RESERVED. 00090000 //* 00100000 //* STATUS = VERSION 7 00110000 //* 00120000 //* FUNCTION = THIS JCL PERFORMS THE PHASE 1 SETUP FOR THE SAMPLE 00130000 //* APPLICATIONS ON A LOCAL DB2 SYSTEM (A SYSTEM WHICH 00140000 //* WILL CONTAIN THE ACTUAL SAMPLE TABLES). 00150000 //* 00160000 //* NOTICE = 00170000 //* THIS SAMPLE JOB USES DB2 UTILITIES. SOME UTILITY FUNCTIONS ARE 00180000 //* ELEMENTS OF SEPARATELY ORDERABLE PRODUCTS. SUCCESSFUL USE OF 00190000 //* A PARTICULAR SAMPLE JOB MAY BE DEPENDENT UPON THE OPTIONAL 00200000 //* PRODUCT BEING LICENSED AND INSTALLED IN YOUR ENVIRONMENT. 00210000 //* 00220000 //* CHANGE ACTIVITY = 00230000 //********************************************************************* 00240000 //* 00250000 //JOBLIB DD DSN=DSN710.SDSNLOAD,DISP=SHR 00260000 //* 00270000 //********************************************************************* 00280000 //* ASMCL PROC - ASSEMBLE AND LINKEDIT AN ASM PROGRAM 00290000 //* 00300000 //ASMCL PROC WSPC=500,MEM=TEMPNAME 00310000 //* 00320000 //* ASSEMBLE 00330000 //* 00340000 //ASM EXEC PGM=ASMA90,PARM='OBJECT,NODECK' 00350000 //SYSIN DD DSN=DSN710.SDSNSAMP(&MEM), 00360000 // DISP=SHR 00370000 //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR 00380000 // DD DSN=DSN710.SDSNMACS,DISP=SHR 00390000 // DD DSN=DSN710.SDSNSAMP,DISP=SHR 00400000 //SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA, 00410000 // SPACE=(800,(&WSPC,&WSPC)),DCB=(BLKSIZE=800) 00420000 //SYSPRINT DD SYSOUT=* 00430000 //SYSUDUMP DD SYSOUT=* 00440000 //SYSUT1 DD UNIT=SYSDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND) 00450000 //SYSUT2 DD UNIT=SYSDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND) 00460000 //SYSUT3 DD UNIT=SYSDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND) 00470000 //* 00480000 //* LINKEDIT IF THE ASSEMBLER 00490000 //* RETURN CODE IS 4 OR LESS 00500000 //* 00510000 //LKED EXEC PGM=IEWL,PARM='LIST,XREF,NCAL', 00520000

Mise en œuvre Hercules & z/OS - Page - 82 -

// COND=(4,LT,ASM) 00530000 //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) 00540000 //SYSLMOD DD DSN=DSN710.SDSNEXIT(&MEM),DISP=SHR 00550000 //SYSPRINT DD SYSOUT=* 00560000 //SYSUDUMP DD SYSOUT=* 00570000 //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(50,50)) 00580000 //* 00590000 //ASMCL PEND 00600000 //********************************************************************* 00610000 //* 00620000 //* STEP 1: CREATE SAMPLE STORAGE GROUPS, TABLESPACES 00630000 //* 00640000 //PH01S01 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 00650000 //SYSTSPRT DD SYSOUT=* 00660000 //SYSTSIN DD * 00670000 DSN SYSTEM(DSN1) 00680000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 00690000 LIB('DSN710.RUNLIB.LOAD') 00700000 //SYSPRINT DD SYSOUT=* 00710000 //SYSUDUMP DD SYSOUT=* 00720000 //SYSIN DD * 00730000 00740000 CREATE STOGROUP DSN8G710 00750000 VOLUMES (S4DB21) 00760000 VCAT DSNC710; 00770000 00780000 CREATE DATABASE DSN8D71A 00790000 STOGROUP DSN8G710 00800000 BUFFERPOOL BP0 00810000 CCSID EBCDIC; 00820000 00830000 CREATE DATABASE DSN8D71P 00840000 STOGROUP DSN8G710 00850000 BUFFERPOOL BP0 00860000 CCSID EBCDIC; 00870000 00880000 CREATE TABLESPACE DSN8S71D 00890000 IN DSN8D71A 00900000 USING STOGROUP DSN8G710 00910000 PRIQTY 20 00920000 SECQTY 20 00930000 ERASE NO 00940000 LOCKSIZE PAGE LOCKMAX SYSTEM 00950000 BUFFERPOOL BP0 00960000 CLOSE NO 00970000 CCSID EBCDIC; 00980000 00990000 COMMIT ; 01000000 01010000 CREATE TABLESPACE DSN8S71E 01020000 IN DSN8D71A 01030000 USING STOGROUP DSN8G710 01040000 PRIQTY 20 01050000 SECQTY 20 01060000 ERASE NO 01070000 NUMPARTS 4 01080000 (PART 1 USING STOGROUP DSN8G710 01090000 PRIQTY 12 01100000 SECQTY 12, 01110000 PART 3 USING STOGROUP DSN8G710 01120000 PRIQTY 12 01130000

Page 42: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 83 -

SECQTY 12) 01140000 LOCKSIZE PAGE LOCKMAX SYSTEM 01150000 BUFFERPOOL BP0 01160000 CLOSE NO 01170000 COMPRESS YES 01180000 CCSID EBCDIC; 01190000 01200000 COMMIT ; 01210000 01220000 CREATE TABLESPACE DSN8S71C 01230000 IN DSN8D71P 01240000 USING STOGROUP DSN8G710 01250000 PRIQTY 160 01260000 SECQTY 80 01270000 SEGSIZE 4 01280000 LOCKSIZE TABLE 01290000 BUFFERPOOL BP0 01300000 CLOSE NO 01310000 CCSID EBCDIC; 01320000 01330000 COMMIT ; 01340000 01350000 CREATE TABLESPACE DSN8S71Q 01360000 IN DSN8D71P 01370000 USING STOGROUP DSN8G710 01380000 PRIQTY 160 01390000 SECQTY 80 01400000 SEGSIZE 4 01410000 LOCKSIZE PAGE 01420000 BUFFERPOOL BP0 01430000 CLOSE NO 01440000 CCSID EBCDIC; 01450000 01460000 COMMIT ; 01470000 01480000 CREATE TABLESPACE DSN8S71R 01490000 IN DSN8D71A 01500000 USING STOGROUP DSN8G710 01510000 PRIQTY 20 01520000 SECQTY 20 01530000 ERASE NO 01540000 LOCKSIZE PAGE LOCKMAX SYSTEM 01550000 BUFFERPOOL BP0 01560000 CLOSE NO 01570000 CCSID EBCDIC; 01580000 01590000 CREATE TABLESPACE DSN8S71P 01600000 IN DSN8D71A 01610000 USING STOGROUP DSN8G710 01620000 PRIQTY 160 01630000 SECQTY 80 01640000 SEGSIZE 4 01650000 LOCKSIZE ROW 01660000 BUFFERPOOL BP0 01670000 CLOSE NO 01680000 CCSID EBCDIC; 01690000 01700000 COMMIT ; 01710000 01720000 CREATE TABLESPACE DSN8S71S 01730000 IN DSN8D71A 01740000

Mise en œuvre Hercules & z/OS - Page - 84 -

USING STOGROUP DSN8G710 01750000 PRIQTY 20 01760000 SECQTY 20 01770000 ERASE NO 01780000 LOCKSIZE PAGE LOCKMAX SYSTEM 01790000 BUFFERPOOL BP0 01800000 CLOSE NO 01810000 CCSID EBCDIC; 01820000 01830000 COMMIT; 01840000 01850000 //* 01860000 //* STEP 2: CREATE SAMPLE TABLES, VIEWS 01870000 //* 01880000 //PH01S02 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 01890000 //SYSTSPRT DD SYSOUT=* 01900000 //SYSTSIN DD * 01910000 DSN SYSTEM(DSN1) 01920000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 01930000 LIB('DSN710.RUNLIB.LOAD') 01940000 //SYSPRINT DD SYSOUT=* 01950000 //SYSUDUMP DD SYSOUT=* 01960000 //SYSIN DD * 01970000 01980000 CREATE TABLE DSN8710.DEPT 01990000 (DEPTNO CHAR(3) NOT NULL, 02000000 DEPTNAME VARCHAR(36) NOT NULL, 02010000 MGRNO CHAR(6) , 02020000 ADMRDEPT CHAR(3) NOT NULL, 02030000 LOCATION CHAR(16) , 02040000 PRIMARY KEY(DEPTNO)) 02050000 IN DSN8D71A.DSN8S71D 02060000 CCSID EBCDIC; 02070000 02080000 CREATE UNIQUE INDEX DSN8710.XDEPT1 02090000 ON DSN8710.DEPT 02100000 (DEPTNO ASC) 02110000 USING STOGROUP DSN8G710 02120000 PRIQTY 12 02130000 ERASE NO 02140000 BUFFERPOOL BP0 02150000 CLOSE NO; 02160000 02170000 CREATE INDEX DSN8710.XDEPT2 02180000 ON DSN8710.DEPT 02190000 (MGRNO ASC) 02200000 USING STOGROUP DSN8G710 02210000 PRIQTY 12 02220000 ERASE NO 02230000 BUFFERPOOL BP0 02240000 CLOSE NO; 02250000 02260000 CREATE INDEX DSN8710.XDEPT3 02270000 ON DSN8710.DEPT 02280000 (ADMRDEPT ASC) 02290000 USING STOGROUP DSN8G710 02300000 PRIQTY 12 02310000 ERASE NO 02320000 BUFFERPOOL BP0 02330000 CLOSE NO; 02340000 02350000

Page 43: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 85 -

CREATE VIEW DSN8710.VDEPT 02360000 AS SELECT ALL DEPTNO , 02370000 DEPTNAME, 02380000 MGRNO , 02390000 ADMRDEPT 02400000 FROM DSN8710.DEPT; 02410000 02420000 CREATE VIEW DSN8710.VHDEPT 02430000 AS SELECT ALL DEPTNO , 02440000 DEPTNAME, 02450000 MGRNO , 02460000 ADMRDEPT, 02470000 LOCATION 02480000 FROM DSN8710.DEPT; 02490000 02500000 COMMIT ; 02510000 02520000 CREATE TABLE DSN8710.EMP 02530000 (EMPNO CHAR(6) NOT NULL, 02540000 FIRSTNME VARCHAR(12) NOT NULL, 02550000 MIDINIT CHAR(1) NOT NULL, 02560000 LASTNAME VARCHAR(15) NOT NULL, 02570000 WORKDEPT CHAR(3) , 02580000 PHONENO CHAR(4) CONSTRAINT NUMBER CHECK 02590000 (PHONENO >= '0000' AND PHONENO <= '9999'), 02600000 HIREDATE DATE , 02610000 JOB CHAR(8) , 02620000 EDLEVEL SMALLINT , 02630000 SEX CHAR(1) , 02640000 BIRTHDATE DATE , 02650000 SALARY DECIMAL(9, 2) , 02660000 BONUS DECIMAL(9, 2) , 02670000 COMM DECIMAL(9, 2) , 02680000 PRIMARY KEY(EMPNO), 02690000 FOREIGN KEY RED (WORKDEPT) REFERENCES DSN8710.DEPT 02700000 ON DELETE SET NULL) 02710000 EDITPROC DSN8EAE1 02720000 IN DSN8D71A.DSN8S71E 02730000 CCSID EBCDIC; 02740000 02750000 CREATE UNIQUE INDEX DSN8710.XEMP1 02760000 ON DSN8710.EMP 02770000 (EMPNO ASC) 02780000 USING STOGROUP DSN8G710 02790000 PRIQTY 12 02800000 ERASE NO 02810000 CLUSTER 02820000 (PART 1 VALUES('099999'), 02830000 PART 2 VALUES('199999'), 02840000 PART 3 VALUES('299999'), 02850000 PART 4 VALUES('999999')) 02860000 BUFFERPOOL BP0 02870000 CLOSE NO; 02880000 02890000 CREATE INDEX DSN8710.XEMP2 02900000 ON DSN8710.EMP 02910000 (WORKDEPT ASC) 02920000 USING STOGROUP DSN8G710 02930000 PRIQTY 12 02940000 ERASE NO 02950000 BUFFERPOOL BP0 02960000

Mise en œuvre Hercules & z/OS - Page - 86 -

CLOSE NO; 02970000 02980000 CREATE VIEW DSN8710.VEMP 02990000 AS SELECT ALL EMPNO , 03000000 FIRSTNME, 03010000 MIDINIT , 03020000 LASTNAME, 03030000 WORKDEPT 03040000 FROM DSN8710.EMP; 03050000 03060000 COMMIT ; 03070000 03080000 CREATE TABLE DSN8710.PROJ 03090000 (PROJNO CHAR(6) PRIMARY KEY NOT NULL, 03100000 PROJNAME VARCHAR(24) NOT NULL WITH DEFAULT 03110000 'PROJECT NAME UNDEFINED', 03120000 DEPTNO CHAR(3) NOT NULL REFERENCES 03130000 DSN8710.DEPT ON DELETE RESTRICT, 03140000 RESPEMP CHAR(6) NOT NULL REFERENCES 03150000 DSN8710.EMP ON DELETE RESTRICT, 03160000 PRSTAFF DECIMAL(5, 2) , 03170000 PRSTDATE DATE , 03180000 PRENDATE DATE , 03190000 MAJPROJ CHAR(6)) 03200000 IN DSN8D71A.DSN8S71P 03210000 CCSID EBCDIC; 03220000 03230000 ALTER TABLESPACE DSN8D71A.DSN8S71P CLOSE NO; 03240000 03250000 ALTER TABLESPACE DSN8D71A.DSN8S71E 03260000 PART 3 COMPRESS NO; 03270000 03280000 CREATE UNIQUE INDEX DSN8710.XPROJ1 03290000 ON DSN8710.PROJ 03300000 (PROJNO ASC) 03310000 USING STOGROUP DSN8G710 03320000 PRIQTY 12 03330000 ERASE NO 03340000 BUFFERPOOL BP0 03350000 CLOSE NO; 03360000 03370000 CREATE INDEX DSN8710.XPROJ2 03380000 ON DSN8710.PROJ 03390000 (RESPEMP ASC) 03400000 USING STOGROUP DSN8G710 03410000 PRIQTY 12 03420000 ERASE NO 03430000 BUFFERPOOL BP0 03440000 CLOSE NO; 03450000 03460000 CREATE VIEW DSN8710.VPROJ 03470000 AS SELECT ALL 03480000 PROJNO, PROJNAME, DEPTNO, RESPEMP, PRSTAFF, 03490000 PRSTDATE, PRENDATE, MAJPROJ 03500000 FROM DSN8710.PROJ ; 03510000 03520000 COMMIT ; 03530000 03540000 CREATE TABLE DSN8710.ACT 03550000 (ACTNO SMALLINT NOT NULL, 03560000 ACTKWD CHAR(6) NOT NULL, 03570000

Page 44: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 87 -

ACTDESC VARCHAR(20) NOT NULL, 03580000 PRIMARY KEY(ACTNO)) 03590000 IN DSN8D71A.DSN8S71P 03600000 CCSID EBCDIC; 03610000 03620000 ALTER TABLESPACE DSN8D71A.DSN8S71P CLOSE NO; 03630000 03640000 CREATE UNIQUE INDEX DSN8710.XACT1 03650000 ON DSN8710.ACT 03660000 (ACTNO ASC) 03670000 USING STOGROUP DSN8G710 03680000 PRIQTY 12 03690000 ERASE NO 03700000 BUFFERPOOL BP0 03710000 CLOSE NO; 03720000 03730000 CREATE UNIQUE INDEX DSN8710.XACT2 03740000 ON DSN8710.ACT 03750000 (ACTKWD ASC) 03760000 USING STOGROUP DSN8G710 03770000 PRIQTY 12 03780000 ERASE NO 03790000 BUFFERPOOL BP0 03800000 CLOSE NO; 03810000 03820000 CREATE VIEW DSN8710.VACT 03830000 AS SELECT ALL ACTNO , 03840000 ACTKWD , 03850000 ACTDESC 03860000 FROM DSN8710.ACT ; 03870000 03880000 COMMIT ; 03890000 03900000 CREATE TABLE DSN8710.PROJACT 03910000 (PROJNO CHAR(6) NOT NULL, 03920000 ACTNO SMALLINT NOT NULL, 03930000 ACSTAFF DECIMAL(5, 2) , 03940000 ACSTDATE DATE NOT NULL, 03950000 ACENDATE DATE , 03960000 PRIMARY KEY(PROJNO,ACTNO,ACSTDATE), 03970000 FOREIGN KEY RPAP (PROJNO) REFERENCES DSN8710.PROJ 03980000 ON DELETE RESTRICT, 03990000 FOREIGN KEY RPAA (ACTNO) REFERENCES DSN8710.ACT 04000000 ON DELETE RESTRICT) 04010000 IN DSN8D71A.DSN8S71P 04020000 CCSID EBCDIC; 04030000 04040000 ALTER TABLESPACE DSN8D71A.DSN8S71P CLOSE NO; 04050000 04060000 CREATE UNIQUE INDEX DSN8710.XPROJAC1 04070000 ON DSN8710.PROJACT 04080000 (PROJNO ASC, 04090000 ACTNO ASC, 04100000 ACSTDATE ASC) 04110000 USING STOGROUP DSN8G710 04120000 PRIQTY 12 04130000 ERASE NO 04140000 BUFFERPOOL BP0 04150000 CLOSE NO; 04160000 04170000 CREATE VIEW DSN8710.VPROJACT 04180000

Mise en œuvre Hercules & z/OS - Page - 88 -

AS SELECT ALL 04190000 PROJNO,ACTNO, ACSTAFF, ACSTDATE, ACENDATE 04200000 FROM DSN8710.PROJACT ; 04210000 04220000 COMMIT ; 04230000 04240000 CREATE TABLE DSN8710.EMPPROJACT 04250000 (EMPNO CHAR(6) NOT NULL, 04260000 PROJNO CHAR(6) NOT NULL, 04270000 ACTNO SMALLINT NOT NULL, 04280000 EMPTIME DECIMAL(5, 2) , 04290000 EMSTDATE DATE , 04300000 EMENDATE DATE , 04310000 FOREIGN KEY REPAPA (PROJNO, ACTNO, EMSTDATE) 04320000 REFERENCES DSN8710.PROJACT 04330000 ON DELETE RESTRICT, 04340000 FOREIGN KEY REPAE (EMPNO) REFERENCES DSN8710.EMP 04350000 ON DELETE RESTRICT) 04360000 IN DSN8D71A.DSN8S71P 04370000 CCSID EBCDIC; 04380000 04390000 ALTER TABLESPACE DSN8D71A.DSN8S71P CLOSE NO; 04400000 04410000 CREATE UNIQUE INDEX DSN8710.XEMPPROJACT1 04420000 ON DSN8710.EMPPROJACT 04430000 (PROJNO ASC, 04440000 ACTNO ASC, 04450000 EMSTDATE ASC, 04460000 EMPNO ASC) 04470000 USING STOGROUP DSN8G710 04480000 PRIQTY 12 04490000 ERASE NO 04500000 BUFFERPOOL BP0 04510000 CLOSE NO; 04520000 04530000 CREATE INDEX DSN8710.XEMPPROJACT2 04540000 ON DSN8710.EMPPROJACT 04550000 (EMPNO ASC) 04560000 USING STOGROUP DSN8G710 04570000 PRIQTY 12 04580000 ERASE NO 04590000 BUFFERPOOL BP0 04600000 CLOSE NO; 04610000 04620000 CREATE VIEW DSN8710.VEMPPROJACT 04630000 AS SELECT ALL 04640000 EMPNO, PROJNO, ACTNO, EMPTIME, EMSTDATE, EMENDATE 04650000 FROM DSN8710.EMPPROJACT ; 04660000 04670000 COMMIT ; 04680000 04690000 CREATE TABLE DSN8710.PARTS 04700000 (ITEMNUM CHAR(6) NOT NULL, 04710000 DESCRIPT VARCHAR(30) NOT NULL, 04720000 COLOR VARCHAR(8) , 04730000 SUPPLIER VARCHAR(15) NOT NULL) 04740000 IN DSN8D71A.DSN8S71S 04750000 CCSID EBCDIC; 04760000 04770000 CREATE INDEX DSN8710.XPARTS 04780000 ON DSN8710.PARTS 04790000

Page 45: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 89 -

(ITEMNUM ASC) 04800000 USING STOGROUP DSN8G710 04810000 PRIQTY 12 04820000 ERASE NO 04830000 BUFFERPOOL BP0 04840000 CLOSE NO; 04850000 04860000 COMMIT ; 04870000 04880000 CREATE TABLE DSN8710.TCONA 04890000 (CONVID CHAR(16) NOT NULL, 04900000 LASTSCR CHAR(8) NOT NULL, 04910000 LASTPOS CHAR(254) NOT NULL, 04920000 LASTPOSC CHAR(254) NOT NULL, 04930000 LASTMSG VARCHAR(1609) NOT NULL) 04940000 IN DSN8D71P.DSN8S71C 04950000 CCSID EBCDIC; 04960000 04970000 CREATE UNIQUE INDEX DSN8710.XCONA1 04980000 ON DSN8710.TCONA 04990000 (CONVID ASC) 05000000 USING STOGROUP DSN8G710 05010000 PRIQTY 12 05020000 ERASE NO 05030000 BUFFERPOOL BP0 05040000 CLOSE NO; 05050000 05060000 CREATE VIEW DSN8710.VCONA 05070000 AS SELECT ALL 05080000 CONVID, LASTSCR, LASTPOS, LASTPOSC, LASTMSG 05090000 FROM DSN8710.TCONA ; 05100000 05110000 COMMIT ; 05120000 05130000 CREATE TABLE DSN8710.TOPTVAL 05140000 (MAJSYS CHAR(1) NOT NULL, 05150000 ACTION CHAR(1) NOT NULL, 05160000 OBJFLD CHAR(2) NOT NULL, 05170000 SRCHCRIT CHAR(2) NOT NULL, 05180000 SCRTYPE CHAR(1) NOT NULL, 05190000 HEADTXT CHAR(50) NOT NULL, 05200000 SELTXT CHAR(50) NOT NULL, 05210000 INFOTXT CHAR(79) NOT NULL, 05220000 HELPTXT CHAR(79) NOT NULL, 05230000 PFKTXT CHAR(79) NOT NULL, 05240000 DSPINDEX CHAR(2) NOT NULL) 05250000 IN DSN8D71P.DSN8S71C 05260000 CCSID EBCDIC; 05270000 05280000 CREATE UNIQUE INDEX DSN8710.XOPTVAL1 05290000 ON DSN8710.TOPTVAL 05300000 (MAJSYS ASC, 05310000 ACTION ASC, 05320000 OBJFLD ASC, 05330000 SRCHCRIT ASC, 05340000 SCRTYPE ASC) 05350000 USING STOGROUP DSN8G710 05360000 PRIQTY 12 05370000 ERASE NO 05380000 BUFFERPOOL BP0 05390000 CLOSE NO; 05400000

Mise en œuvre Hercules & z/OS - Page - 90 -

05410000 CREATE VIEW DSN8710.VOPTVAL 05420000 AS SELECT ALL 05430000 MAJSYS, ACTION, OBJFLD, SRCHCRIT, SCRTYPE, HEADTXT, 05440000 SELTXT, INFOTXT, HELPTXT, PFKTXT, DSPINDEX 05450000 FROM DSN8710.TOPTVAL ; 05460000 05470000 COMMIT ; 05480000 05490000 CREATE TABLE DSN8710.TDSPTXT 05500000 (DSPINDEX CHAR(2) NOT NULL, 05510000 LINENO CHAR(2) NOT NULL, 05520000 DSPLINE CHAR(79) NOT NULL) 05530000 IN DSN8D71P.DSN8S71C 05540000 CCSID EBCDIC; 05550000 05560000 CREATE UNIQUE INDEX DSN8710.XDSPTXT1 05570000 ON DSN8710.TDSPTXT 05580000 (DSPINDEX ASC, 05590000 LINENO ASC) 05600000 USING STOGROUP DSN8G710 05610000 PRIQTY 12 05620000 ERASE NO 05630000 BUFFERPOOL BP0 05640000 CLOSE NO; 05650000 05660000 CREATE VIEW DSN8710.VDSPTXT 05670000 AS SELECT ALL 05680000 DSPINDEX, LINENO, DSPLINE 05690000 FROM DSN8710.TDSPTXT ; 05700000 05710000 ALTER TABLE DSN8710.DEPT 05720000 FOREIGN KEY RDD (ADMRDEPT) REFERENCES DSN8710.DEPT 05730000 ON DELETE CASCADE; 05740000 ALTER TABLE DSN8710.DEPT 05750000 FOREIGN KEY RDE (MGRNO) REFERENCES DSN8710.EMP 05760000 ON DELETE SET NULL; 05770000 ALTER TABLE DSN8710.PROJ 05780000 FOREIGN KEY RPP (MAJPROJ) REFERENCES DSN8710.PROJ 05790000 ON DELETE CASCADE; 05800000 05810000 CREATE TABLE DSN8710.EDEPT LIKE DSN8710.DEPT 05820000 IN DSN8D71A.DSN8S71R ; 05830000 CREATE TABLE DSN8710.EEMP LIKE DSN8710.EMP 05840000 IN DSN8D71A.DSN8S71R ; 05850000 CREATE TABLE DSN8710.EPROJ LIKE DSN8710.PROJ 05860000 IN DSN8D71A.DSN8S71R ; 05870000 CREATE TABLE DSN8710.EACT LIKE DSN8710.ACT 05880000 IN DSN8D71A.DSN8S71R ; 05890000 CREATE TABLE DSN8710.EPROJACT LIKE DSN8710.PROJACT 05900000 IN DSN8D71A.DSN8S71R ; 05910000 CREATE TABLE DSN8710.EEPA LIKE DSN8710.EMPPROJACT 05920000 IN DSN8D71A.DSN8S71R ; 05930000 05940000 ALTER TABLE DSN8710.EDEPT 05950000 ADD RID CHAR(4); 05960000 ALTER TABLE DSN8710.EDEPT 05970000 ADD TSTAMP TIMESTAMP; 05980000 ALTER TABLE DSN8710.EEMP 05990000 ADD RID CHAR(4); 06000000 ALTER TABLE DSN8710.EEMP 06010000

Page 46: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 91 -

ADD TSTAMP TIMESTAMP; 06020000 ALTER TABLE DSN8710.EPROJ 06030000 ADD RID CHAR(4); 06040000 ALTER TABLE DSN8710.EPROJ 06050000 ADD TSTAMP TIMESTAMP; 06060000 ALTER TABLE DSN8710.EACT 06070000 ADD RID CHAR(4); 06080000 ALTER TABLE DSN8710.EACT 06090000 ADD TSTAMP TIMESTAMP; 06100000 ALTER TABLE DSN8710.EPROJACT 06110000 ADD RID CHAR(4); 06120000 ALTER TABLE DSN8710.EPROJACT 06130000 ADD TSTAMP TIMESTAMP; 06140000 ALTER TABLE DSN8710.EEPA 06150000 ADD RID CHAR(4); 06160000 ALTER TABLE DSN8710.EEPA 06170000 ADD TSTAMP TIMESTAMP; 06180000 06190000 //* 06200000 //* STEP 3: CREATE SAMPLE MAPPING TABLE FOR ONLINE REORG 06210000 //* 06220000 //********************************************************************* 06230000 //* THE FOLLOWING IS AN EXAMPLE DEFINITION OF THE MAPPING TABLE * 06240000 //* THAT IS REQUIRED TO RUN AN ONLINE REORGANIZATION WITH SHRLEVEL * 06250000 //* CHANGE. * 06260000 //* * 06270000 //* A MAPPING TABLE MUST BE CREATED IN A SEGMENTED TABLE SPACE. * 06280000 //* THAT TABLESPACE SHOULD CONTAIN ONLY MAPPING TABLES. IT MUST * 06290000 //* NOT BE THE TABLE SPACE THAT IS TO BE REORGANIZED. * 06300000 //* * 06310000 //* IF YOU WANT CONCURRENT EXECUTIONS OF REORG (ON SEVERAL TABLE * 06320000 //* SPACES AND/OR ON SEVERAL PARTITIONS OF A TABLE SPACE) THE * 06330000 //* EXECUTIONS SHOULD USE DIFFERENT MAPPING TABLES. * 06340000 //********************************************************************* 06350000 //PH01S03 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 06360000 //SYSTSPRT DD SYSOUT=* 06370000 //SYSTSIN DD * 06380000 DSN SYSTEM(DSN1) 06390000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 06400000 LIB('DSN710.RUNLIB.LOAD') 06410000 //SYSPRINT DD SYSOUT=* 06420000 //SYSUDUMP DD SYSOUT=* 06430000 //SYSIN DD * 06440000 06450000 CREATE TABLE DSN8710.MAP_TBL 06460000 (TYPE CHAR( 01 ) NOT NULL, 06470000 SOURCE_RID CHAR( 05 ) NOT NULL, 06480000 TARGET_XRID CHAR( 09 ) NOT NULL, 06490000 LRSN CHAR( 06 ) NOT NULL) 06500000 IN DSN8D71P.DSN8S71Q 06510000 CCSID EBCDIC; 06520000 06530000 CREATE UNIQUE INDEX DSN8710.XMAP_TBL 06540000 ON DSN8710.MAP_TBL 06550000 (SOURCE_RID ASC, 06560000 TYPE, 06570000 TARGET_XRID, 06580000 LRSN) 06590000 USING STOGROUP DSN8G710 06600000 PRIQTY 12 06610000 ERASE NO 06620000

Mise en œuvre Hercules & z/OS - Page - 92 -

BUFFERPOOL BP0 06630000 CLOSE NO; 06640000 06650000 //* 06660000 //* STEP 4: CREATE SAMPLE VIEWS 06670000 //* 06680000 //PH01S04 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 06690000 //SYSTSPRT DD SYSOUT=* 06700000 //SYSTSIN DD * 06710000 DSN SYSTEM(DSN1) 06720000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 06730000 LIB('DSN710.RUNLIB.LOAD') 06740000 //SYSPRINT DD SYSOUT=* 06750000 //SYSUDUMP DD SYSOUT=* 06760000 //SYSIN DD * 06770000 06780000 CREATE VIEW DSN8710.VDEPMG1 06790000 (DEPTNO, DEPTNAME, MGRNO, FIRSTNME, MIDINIT, LASTNAME, ADMRDEPT)06800000 AS SELECT ALL 06810000 DEPTNO, DEPTNAME, EMPNO, FIRSTNME, MIDINIT, LASTNAME, ADMRDEPT 06820000 FROM DSN8710.DEPT LEFT OUTER JOIN DSN8710.EMP 06830000 ON MGRNO = EMPNO ; 06840000 06850000 CREATE VIEW DSN8710.VEMPDPT1 06860000 (DEPTNO, DEPTNAME, EMPNO, FRSTINIT, MIDINIT, 06870000 LASTNAME, WORKDEPT) 06880000 AS SELECT ALL 06890000 DEPTNO, DEPTNAME, EMPNO, SUBSTR(FIRSTNME, 1, 1), MIDINIT, 06900000 LASTNAME, WORKDEPT 06910000 FROM DSN8710.DEPT RIGHT OUTER JOIN DSN8710.EMP 06920000 ON WORKDEPT = DEPTNO ; 06930000 06940000 CREATE VIEW DSN8710.VASTRDE1 06950000 (DEPT1NO,DEPT1NAM,EMP1NO,EMP1FN,EMP1MI,EMP1LN,TYPE2, 06960000 DEPT2NO,DEPT2NAM,EMP2NO,EMP2FN,EMP2MI,EMP2LN) 06970000 AS SELECT ALL 06980000 D1.DEPTNO,D1.DEPTNAME,D1.MGRNO,D1.FIRSTNME,D1.MIDINIT, 06990000 D1.LASTNAME, '1', 07000000 D2.DEPTNO,D2.DEPTNAME,D2.MGRNO,D2.FIRSTNME,D2.MIDINIT, 07010000 D2.LASTNAME 07020000 FROM DSN8710.VDEPMG1 D1, DSN8710.VDEPMG1 D2 07030000 WHERE D1.DEPTNO = D2.ADMRDEPT ; 07040000 07050000 CREATE VIEW DSN8710.VASTRDE2 07060000 (DEPT1NO,DEPT1NAM,EMP1NO,EMP1FN,EMP1MI,EMP1LN,TYPE2, 07070000 DEPT2NO,DEPT2NAM,EMP2NO,EMP2FN,EMP2MI,EMP2LN) 07080000 AS SELECT ALL 07090000 D1.DEPTNO,D1.DEPTNAME,D1.MGRNO,D1.FIRSTNME,D1.MIDINIT, 07100000 D1.LASTNAME,'2', 07110000 D1.DEPTNO,D1.DEPTNAME,E2.EMPNO,E2.FIRSTNME,E2.MIDINIT, 07120000 E2.LASTNAME 07130000 FROM DSN8710.VDEPMG1 D1, DSN8710.EMP E2 07140000 WHERE D1.DEPTNO = E2.WORKDEPT; 07150000 07160000 CREATE VIEW DSN8710.VPROJRE1 07170000 (PROJNO,PROJNAME,PROJDEP,RESPEMP,FIRSTNME,MIDINIT,LASTNAME,MAJPROJ) 07180000 AS SELECT ALL 07190000 PROJNO,PROJNAME,DEPTNO,EMPNO,FIRSTNME,MIDINIT,LASTNAME,MAJPROJ 07200000 FROM DSN8710.PROJ, DSN8710.EMP 07210000 WHERE RESPEMP = EMPNO ; 07220000 07230000

Page 47: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 93 -

CREATE VIEW DSN8710.VPSTRDE1 07240000 (PROJ1NO,PROJ1NAME,RESP1NO,RESP1FN,RESP1MI,RESP1LN, 07250000 PROJ2NO,PROJ2NAME,RESP2NO,RESP2FN,RESP2MI,RESP2LN) 07260000 AS SELECT ALL 07270000 P1.PROJNO,P1.PROJNAME,P1.RESPEMP,P1.FIRSTNME,P1.MIDINIT, 07280000 P1.LASTNAME, 07290000 P2.PROJNO,P2.PROJNAME,P2.RESPEMP,P2.FIRSTNME,P2.MIDINIT, 07300000 P2.LASTNAME 07310000 FROM DSN8710.VPROJRE1 P1, 07320000 DSN8710.VPROJRE1 P2 07330000 WHERE P1.PROJNO = P2.MAJPROJ ; 07340000 07350000 CREATE VIEW DSN8710.VPSTRDE2 07360000 (PROJ1NO,PROJ1NAME,RESP1NO,RESP1FN,RESP1MI,RESP1LN, 07370000 PROJ2NO,PROJ2NAME,RESP2NO,RESP2FN,RESP2MI,RESP2LN) 07380000 AS SELECT ALL 07390000 P1.PROJNO,P1.PROJNAME,P1.RESPEMP,P1.FIRSTNME,P1.MIDINIT, 07400000 P1.LASTNAME, 07410000 P1.PROJNO,P1.PROJNAME,P1.RESPEMP,P1.FIRSTNME,P1.MIDINIT, 07420000 P1.LASTNAME 07430000 FROM DSN8710.VPROJRE1 P1 07440000 WHERE NOT EXISTS 07450000 (SELECT * FROM DSN8710.VPROJRE1 P2 07460000 WHERE P1.PROJNO = P2.MAJPROJ) ; 07470000 07480000 CREATE VIEW DSN8710.VFORPLA 07490000 (PROJNO,PROJNAME,RESPEMP,PROJDEP,FRSTINIT,MIDINIT,LASTNAME) 07500000 AS SELECT ALL 07510000 F1.PROJNO,PROJNAME,RESPEMP,PROJDEP, SUBSTR(FIRSTNME, 1, 1), 07520000 MIDINIT, LASTNAME 07530000 FROM DSN8710.VPROJRE1 F1 LEFT OUTER JOIN DSN8710.EMPPROJACT F2 07540000 ON F1.PROJNO = F2.PROJNO; 07550000 07560000 CREATE VIEW DSN8710.VSTAFAC1 07570000 (PROJNO, ACTNO, ACTDESC, EMPNO, FIRSTNME, MIDINIT, LASTNAME, 07580000 EMPTIME,STDATE,ENDATE, TYPE) 07590000 AS SELECT ALL 07600000 PA.PROJNO, PA.ACTNO, AC.ACTDESC,' ', ' ', ' ', ' ', 07610000 PA.ACSTAFF, PA.ACSTDATE, 07620000 PA.ACENDATE,'1' 07630000 FROM DSN8710.PROJACT PA, DSN8710.ACT AC 07640000 WHERE PA.ACTNO = AC.ACTNO ; 07650000 07660000 CREATE VIEW DSN8710.VSTAFAC2 07670000 (PROJNO, ACTNO, ACTDESC, EMPNO, FIRSTNME, MIDINIT, LASTNAME, 07680000 EMPTIME,STDATE, ENDATE, TYPE) 07690000 AS SELECT ALL 07700000 EP.PROJNO, EP.ACTNO, AC.ACTDESC, EP.EMPNO,EM.FIRSTNME, 07710000 EM.MIDINIT, EM.LASTNAME, EP.EMPTIME, EP.EMSTDATE, 07720000 EP.EMENDATE,'2' 07730000 FROM DSN8710.EMPPROJACT EP, DSN8710.ACT AC, DSN8710.EMP EM 07740000 WHERE EP.ACTNO = AC.ACTNO AND EP.EMPNO = EM.EMPNO ; 07750000 07760000 CREATE VIEW DSN8710.VPHONE 07770000 (LASTNAME, 07780000 FIRSTNAME, 07790000 MIDDLEINITIAL, 07800000 PHONENUMBER, 07810000 EMPLOYEENUMBER, 07820000 DEPTNUMBER, 07830000 DEPTNAME) 07840000

Mise en œuvre Hercules & z/OS - Page - 94 -

AS SELECT ALL LASTNAME, 07850000 FIRSTNME, 07860000 MIDINIT , 07870000 VALUE(PHONENO,' '), 07880000 EMPNO, 07890000 DEPTNO, 07900000 DEPTNAME 07910000 FROM DSN8710.EMP, DSN8710.DEPT 07920000 WHERE WORKDEPT = DEPTNO; 07930000 07940000 CREATE VIEW DSN8710.VEMPLP 07950000 (EMPLOYEENUMBER, 07960000 PHONENUMBER) 07970000 AS SELECT ALL EMPNO , 07980000 PHONENO 07990000 FROM DSN8710.EMP ; 08000000 //* 08010000 //* STEP 5: DROP SYNONYMS 08020000 //* 08030000 //PH01S05 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 08040000 //SYSTSPRT DD SYSOUT=* 08050000 //SYSTSIN DD * 08060000 DSN SYSTEM(DSN1) 08070000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) PARM('RC0') - 08080000 LIB('DSN710.RUNLIB.LOAD') 08090000 //SYSPRINT DD SYSOUT=* 08100000 //SYSUDUMP DD SYSOUT=* 08110000 //SYSIN DD * 08120000 DROP SYNONYM ACT ; 08130000 DROP SYNONYM TCONA ; 08140000 DROP SYNONYM DEPT ; 08150000 DROP SYNONYM TDSPTXT ; 08160000 DROP SYNONYM EMP ; 08170000 DROP SYNONYM EMPPROJACT; 08180000 DROP SYNONYM TOPTVAL ; 08190000 DROP SYNONYM PROJACT ; 08200000 DROP SYNONYM PROJ ; 08210000 DROP SYNONYM VPHONE ; 08220000 DROP SYNONYM VACT ; 08230000 DROP SYNONYM VCONA ; 08240000 DROP SYNONYM VDEPT ; 08250000 DROP SYNONYM VHDEPT ; 08260000 DROP SYNONYM VDSPTXT ; 08270000 DROP SYNONYM VEMP ; 08280000 DROP SYNONYM VEMPPROJACT; 08290000 DROP SYNONYM VOPTVAL ; 08300000 DROP SYNONYM VPROJACT ; 08310000 DROP SYNONYM VPROJ ; 08320000 DROP SYNONYM VEMPLP ; 08330000 DROP SYNONYM VDEPMG1 ; 08340000 DROP SYNONYM VEMPDPT1 ; 08350000 DROP SYNONYM VASTRDE1 ; 08360000 DROP SYNONYM VASTRDE2 ; 08370000 DROP SYNONYM VPROJRE1 ; 08380000 DROP SYNONYM VPSTRDE1 ; 08390000 DROP SYNONYM VPSTRDE2 ; 08400000 DROP SYNONYM VFORPLA ; 08410000 DROP SYNONYM VSTAFAC1 ; 08420000 DROP SYNONYM VSTAFAC2 ; 08430000 //* 08440000 //* STEP 6: GRANT AUTHORITY, CREATE SYNONYMS 08450000

Page 48: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 95 -

//* 08460000 //PH01S06 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 08470000 //SYSTSPRT DD SYSOUT=* 08480000 //SYSTSIN DD * 08490000 DSN SYSTEM(DSN1) 08500000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 08510000 LIB('DSN710.RUNLIB.LOAD') 08520000 //SYSPRINT DD SYSOUT=* 08530000 //SYSUDUMP DD SYSOUT=* 08540000 //SYSIN DD * 08550000 CREATE SYNONYM ACT FOR DSN8710.ACT ; 08560000 CREATE SYNONYM TCONA FOR DSN8710.TCONA ; 08570000 CREATE SYNONYM DEPT FOR DSN8710.DEPT ; 08580000 CREATE SYNONYM TDSPTXT FOR DSN8710.TDSPTXT ; 08590000 CREATE SYNONYM EMP FOR DSN8710.EMP ; 08600000 CREATE SYNONYM EMPPROJACT FOR DSN8710.EMPPROJACT ; 08610000 CREATE SYNONYM TOPTVAL FOR DSN8710.TOPTVAL ; 08620000 CREATE SYNONYM PROJACT FOR DSN8710.PROJACT ; 08630000 CREATE SYNONYM PROJ FOR DSN8710.PROJ ; 08640000 CREATE SYNONYM VPHONE FOR DSN8710.VPHONE ; 08650000 CREATE SYNONYM VACT FOR DSN8710.VACT ; 08660000 CREATE SYNONYM VCONA FOR DSN8710.VCONA ; 08670000 CREATE SYNONYM VDEPT FOR DSN8710.VDEPT ; 08680000 CREATE SYNONYM VHDEPT FOR DSN8710.VHDEPT ; 08690000 CREATE SYNONYM VDSPTXT FOR DSN8710.VDSPTXT ; 08700000 CREATE SYNONYM VEMP FOR DSN8710.VEMP ; 08710000 CREATE SYNONYM VEMPPROJACT FOR DSN8710.VEMPPROJACT ; 08720000 CREATE SYNONYM VOPTVAL FOR DSN8710.VOPTVAL ; 08730000 CREATE SYNONYM VPROJACT FOR DSN8710.VPROJACT ; 08740000 CREATE SYNONYM VPROJ FOR DSN8710.VPROJ ; 08750000 CREATE SYNONYM VEMPLP FOR DSN8710.VEMPLP ; 08760000 CREATE SYNONYM VDEPMG1 FOR DSN8710.VDEPMG1 ; 08770000 CREATE SYNONYM VEMPDPT1 FOR DSN8710.VEMPDPT1 ; 08780000 CREATE SYNONYM VASTRDE1 FOR DSN8710.VASTRDE1; 08790000 CREATE SYNONYM VASTRDE2 FOR DSN8710.VASTRDE2; 08800000 CREATE SYNONYM VPROJRE1 FOR DSN8710.VPROJRE1; 08810000 CREATE SYNONYM VPSTRDE1 FOR DSN8710.VPSTRDE1; 08820000 CREATE SYNONYM VPSTRDE2 FOR DSN8710.VPSTRDE2; 08830000 CREATE SYNONYM VFORPLA FOR DSN8710.VFORPLA; 08840000 CREATE SYNONYM VSTAFAC1 FOR DSN8710.VSTAFAC1; 08850000 CREATE SYNONYM VSTAFAC2 FOR DSN8710.VSTAFAC2; 08860000 GRANT USE OF STOGROUP DSN8G710 TO PUBLIC; 08870000 GRANT DBADM ON DATABASE DSN8D71A TO PUBLIC; 08880000 GRANT DBADM ON DATABASE DSN8D71P TO PUBLIC; 08890000 GRANT USE OF TABLESPACE DSN8D71A.DSN8S71D TO PUBLIC; 08900000 GRANT USE OF TABLESPACE DSN8D71A.DSN8S71E TO PUBLIC; 08910000 GRANT USE OF TABLESPACE DSN8D71A.DSN8S71P TO PUBLIC; 08920000 GRANT USE OF TABLESPACE DSN8D71A.DSN8S71S TO PUBLIC; 08930000 GRANT USE OF TABLESPACE DSN8D71P.DSN8S71C TO PUBLIC; 08940000 GRANT USE OF TABLESPACE DSN8D71P.DSN8S71Q TO PUBLIC; 08950000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.ACT 08960000 TO PUBLIC AT ALL LOCATIONS; 08970000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.TCONA 08980000 TO PUBLIC AT ALL LOCATIONS; 08990000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.DEPT 09000000 TO PUBLIC AT ALL LOCATIONS; 09010000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.TDSPTXT 09020000 TO PUBLIC AT ALL LOCATIONS; 09030000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.EMP 09040000 TO PUBLIC AT ALL LOCATIONS; 09050000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.EMPPROJACT 09060000

Mise en œuvre Hercules & z/OS - Page - 96 -

TO PUBLIC AT ALL LOCATIONS; 09070000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.TOPTVAL 09080000 TO PUBLIC AT ALL LOCATIONS; 09090000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.PARTS 09100000 TO PUBLIC AT ALL LOCATIONS; 09110000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.PROJACT 09120000 TO PUBLIC AT ALL LOCATIONS; 09130000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.PROJ 09140000 TO PUBLIC AT ALL LOCATIONS; 09150000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.MAP_TBL 09160000 TO PUBLIC AT ALL LOCATIONS; 09170000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPHONE 09180000 TO PUBLIC AT ALL LOCATIONS; 09190000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VACT 09200000 TO PUBLIC AT ALL LOCATIONS; 09210000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VCONA 09220000 TO PUBLIC AT ALL LOCATIONS; 09230000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VDEPT 09240000 TO PUBLIC AT ALL LOCATIONS; 09250000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VHDEPT 09260000 TO PUBLIC AT ALL LOCATIONS; 09270000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VDSPTXT 09280000 TO PUBLIC AT ALL LOCATIONS; 09290000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VEMP 09300000 TO PUBLIC AT ALL LOCATIONS; 09310000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VEMPPROJACT 09320000 TO PUBLIC AT ALL LOCATIONS; 09330000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VOPTVAL 09340000 TO PUBLIC AT ALL LOCATIONS; 09350000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPROJACT 09360000 TO PUBLIC AT ALL LOCATIONS; 09370000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPROJ 09380000 TO PUBLIC AT ALL LOCATIONS; 09390000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VEMPLP 09400000 TO PUBLIC AT ALL LOCATIONS; 09410000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VDEPMG1 09420000 TO PUBLIC AT ALL LOCATIONS; 09430000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VEMPDPT1 09440000 TO PUBLIC AT ALL LOCATIONS; 09450000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VASTRDE1 09460000 TO PUBLIC AT ALL LOCATIONS; 09470000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VASTRDE2 09480000 TO PUBLIC AT ALL LOCATIONS; 09490000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPROJRE1 09500000 TO PUBLIC AT ALL LOCATIONS; 09510000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPSTRDE1 09520000 TO PUBLIC AT ALL LOCATIONS; 09530000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPSTRDE2 09540000 TO PUBLIC AT ALL LOCATIONS; 09550000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VFORPLA 09560000 TO PUBLIC AT ALL LOCATIONS; 09570000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VSTAFAC1 09580000 TO PUBLIC AT ALL LOCATIONS; 09590000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VSTAFAC2 09600000 TO PUBLIC AT ALL LOCATIONS; 09610000 //* 09620000 //* 09630000 //* 09640000 //* STEP 7: ASSEMBLE AND LINKEDIT EDIT EXIT 09650000 //* 09660000 //PH01S07 EXEC ASMCL,MEM=DSN8EAE1,COND=(4,LT), 09670000

Page 49: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 97 -

// PARM.LKED='LIST,XREF,NCAL,RENT' 09680000 //* 09690000 //* STEP 8: ASSEMBLE AND LINKEDIT EDIT EXIT 09700000 //* 09710000 //PH01S08 EXEC ASMCL,MEM=DSN8HUFF,COND=(4,LT), 09720000 // PARM.LKED='LIST,XREF,NCAL,RENT' 09730000 //* 09740000 //* STEP 9: ASSEMBLE AND LINKEDIT FIELD PROCEDURE 09750000 //* 09760000 //PH01S09 EXEC ASMCL,MEM=DSN8FPRC,COND=(4,LT), 09770000 // PARM.ASM='RENT,OBJECT,NODECK,SYSPARM(FLDPROC)', 09780000 // PARM.LKED='LIST,XREF,NCAL,RENT' 09790000 //* 09800000 //* STEP 10: PRECOMPILE, ASSEMBLE AND LINKEDIT THE 09810000 //* CALL ATTACH ASSEMBLER INTERFACE 09820000 //* 09830000 //PH01S10 EXEC DSNHASM,MEM=DSN8CA, 09840000 // COND=(4,LT), 09850000 // PARM.PC='HOST(ASM),STDSQL(NO)', 09860000 // PARM.ASM='RENT,OBJECT,NODECK', 09870000 // PARM.LKED='RENT,XREF' 09880000 //PC.DBRMLIB DD DSN=DSN710.DBRMLIB.DATA(DSN8CA), 09890000 // DISP=SHR 09900000 //PC.SYSLIB DD DSN=DSN710.SDSNSAMP, 09910000 // DISP=SHR 09920000 //PC.SYSIN DD DSN=DSN710.SDSNSAMP(DSN8CA), 09930000 // DISP=SHR 09940000 //ASM.SYSLIB DD 09950000 // DD DSN=DSN710.SDSNSAMP, 09960000 // DISP=SHR 09970000 //LKED.SYSLMOD DD DSN=DSN710.RUNLIB.LOAD(DSN8CA), 09980000 // DISP=SHR 09990000 //LKED.SYSIN DD * 10000000 INCLUDE SYSLIB(DSNALI) 10010000 //* 10020000 //* STEP 11: CREATE SAMPLE UTILITY LIST 10030000 //* 10040000 //PH01S11 EXEC PGM=IEBGENER,COND=(4,LT) 10050000 //SYSIN DD DUMMY 10060000 //SYSPRINT DD SYSOUT=* 10070000 //SYSUT1 DD * 10080000 10090000 LISTDEF DSN8LDEF 10100000 INCLUDE TABLESPACES DATABASE DSN8D71A 10110000 EXCLUDE TABLESPACE DSN8D71A.DSN8S71R 10120000 EXCLUDE TABLESPACE DSN8D71A.DSN8S71S 10130000 10140000 //SYSUT2 DD DSN=DSN710.DSN8.LISTDEF, 10150000 // DISP=(,CATLG,DELETE), 10160000 // UNIT=SYSDA,VOL=SER=S4DB21,SPACE=(TRK,1), 10170000 // DCB=(RECFM=FB,LRECL=80) 10180000 //* 10190000 //* STEP 12: LOAD DATA INTO SAMPLE PROGRAM TABLES 10200000 //* 10210000 //PH01S12 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 10220000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 10230000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10240000 //DSNTRACE DD SYSOUT=* 10250000 //SYSRECDT DD DSN=DSN710.SDSNSAMP(DSN8LDT), 10260000 // DISP=SHR 10270000 //SYSRECOV DD DSN=DSN710.SDSNSAMP(DSN8LOV), 10280000

Mise en œuvre Hercules & z/OS - Page - 98 -

// DISP=SHR 10290000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND) 10300000 //SYSIN DD * 10310000 10320000 LOAD DATA INDDN(SYSRECOV) CONTINUEIF(72:72)='X' 10330000 INTO TABLE DSN8710.TOPTVAL 10340000 (MAJSYS POSITION( 2) CHAR(1), 10350000 ACTION POSITION( 4) CHAR(1), 10360000 OBJFLD POSITION( 6) CHAR(2), 10370000 SRCHCRIT POSITION( 9) CHAR(2), 10380000 SCRTYPE POSITION( 12) CHAR(1), 10390000 HEADTXT POSITION( 80) CHAR(50), 10400000 SELTXT POSITION(159) CHAR(50), 10410000 INFOTXT POSITION(238) CHAR(71), 10420000 HELPTXT POSITION(317) CHAR(71), 10430000 PFKTXT POSITION(396) CHAR(71), 10440000 DSPINDEX POSITION(475) CHAR(2)) 10450000 SORTDEVT SYSDA SORTNUM 4 10460000 10470000 LOAD DATA INDDN(SYSRECDT) CONTINUEIF(72:72)='X' RESUME(YES) 10480000 INTO TABLE DSN8710.TDSPTXT 10490000 (DSPINDEX POSITION( 2) CHAR(2), 10500000 LINENO POSITION( 6) CHAR(2), 10510000 DSPLINE POSITION(80) CHAR(71)) 10520000 SORTDEVT SYSDA SORTNUM 4 10530000 10540000 //* 10550000 //* STEP 13: LOAD DATA INTO SAMPLE APPLICATION TABLES 10560000 //* 10570000 //PH01S13 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 10580000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10590000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 10600000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10610000 //DSNTRACE DD SYSOUT=* 10620000 //SYSRECAC DD DSN=DSN710.SDSNSAMP(DSN8LAC), 10630000 // DISP=SHR 10640000 //SYSRECDP DD DSN=DSN710.SDSNSAMP(DSN8LDP), 10650000 // DISP=SHR 10660000 //SYSRECEM DD DSN=DSN710.SDSNSAMP(DSN8LEM), 10670000 // DISP=SHR 10680000 //SYSRECEP DD DSN=DSN710.SDSNSAMP(DSN8LEP), 10690000 // DISP=SHR 10700000 //SYSRECPA DD DSN=DSN710.SDSNSAMP(DSN8LPA), 10710000 // DISP=SHR 10720000 //SYSRECPJ DD DSN=DSN710.SDSNSAMP(DSN8LPJ), 10730000 // DISP=SHR 10740000 //SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10750000 //SYSDISC DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10760000 //SYSMAP DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10770000 //SYSIN DD * 10780000 10790000 LOAD DATA INDDN(SYSRECDP) 10800000 INTO TABLE DSN8710.DEPT 10810000 (DEPTNO POSITION( 1) CHAR(3), 10820000 DEPTNAME POSITION( 5) VARCHAR, 10830000 MGRNO POSITION(37) CHAR(6) NULLIF(MGRNO=' '), 10840000 ADMRDEPT POSITION(44) CHAR(3), 10850000 LOCATION POSITION(48) CHAR(16)) 10860000 ENFORCE NO 10870000 SORTDEVT SYSDA SORTNUM 4 10880000 10890000

Page 50: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 99 -

LOAD DATA INDDN(SYSRECEM) CONTINUEIF(72:72)='X' 10900000 INTO TABLE DSN8710.EMP 10910000 (EMPNO POSITION( 1) CHAR(6), 10920000 FIRSTNME POSITION( 8) VARCHAR, 10930000 MIDINIT POSITION(21) CHAR(1), 10940000 LASTNAME POSITION(23) VARCHAR, 10950000 WORKDEPT POSITION(36) CHAR(3), 10960000 PHONENO POSITION(40) CHAR(4), 10970000 HIREDATE POSITION(45) DATE EXTERNAL, 10980000 JOB POSITION(56) CHAR(8), 10990000 EDLEVEL POSITION(65) INTEGER EXTERNAL(2), 11000000 SEX POSITION(68) CHAR(1), 11010000 BIRTHDATE POSITION(80) DATE EXTERNAL, 11020000 SALARY POSITION(91) INTEGER EXTERNAL(5), 11030000 BONUS POSITION(97) INTEGER EXTERNAL(5), 11040000 COMM POSITION(103) INTEGER EXTERNAL(5)) 11050000 ENFORCE CONSTRAINTS MAPDDN SYSMAP 11060000 SORTDEVT SYSDA SORTNUM 4 11070000 11080000 LOAD DATA INDDN(SYSRECPJ) RESUME YES CONTINUEIF(72:72)='X' 11090000 INTO TABLE DSN8710.PROJ 11100000 (PROJNO POSITION( 1) CHAR(6), 11110000 PROJNAME POSITION( 8) VARCHAR, 11120000 DEPTNO POSITION(33) CHAR(3), 11130000 RESPEMP POSITION(37) CHAR(6), 11140000 PRSTAFF POSITION(44) DECIMAL EXTERNAL(5), 11150000 PRSTDATE POSITION(50) DATE EXTERNAL, 11160000 PRENDATE POSITION(61) DATE EXTERNAL, 11170000 MAJPROJ POSITION(80) CHAR(6) NULLIF(MAJPROJ=' ')) 11180000 ENFORCE NO 11190000 SORTDEVT SYSDA SORTNUM 4 11200000 11210000 LOAD DATA INDDN(SYSRECAC) RESUME YES 11220000 INTO TABLE DSN8710.ACT 11230000 (ACTNO POSITION( 1) INTEGER EXTERNAL(3), 11240000 ACTKWD POSITION( 5) CHAR(6), 11250000 ACTDESC POSITION(13) VARCHAR) 11260000 ENFORCE NO 11270000 SORTDEVT SYSDA SORTNUM 4 11280000 11290000 LOAD DATA INDDN(SYSRECPA) RESUME YES 11300000 INTO TABLE DSN8710.PROJACT 11310000 (PROJNO POSITION( 1) CHAR(6), 11320000 ACTNO POSITION( 8) INTEGER EXTERNAL(3), 11330000 ACSTAFF POSITION(12) DECIMAL EXTERNAL(5), 11340000 ACSTDATE POSITION(18) DATE EXTERNAL, 11350000 ACENDATE POSITION(29) DATE EXTERNAL) 11360000 ENFORCE NO 11370000 SORTDEVT SYSDA SORTNUM 4 11380000 11390000 LOAD DATA INDDN(SYSRECEP) RESUME YES 11400000 INTO TABLE DSN8710.EMPPROJACT 11410000 (EMPNO POSITION( 1) CHAR(6), 11420000 PROJNO POSITION( 8) CHAR(6), 11430000 ACTNO POSITION(16) INTEGER EXTERNAL(3), 11440000 EMPTIME POSITION(20) DECIMAL EXTERNAL(5), 11450000 EMSTDATE POSITION(26) DATE EXTERNAL, 11460000 EMENDATE POSITION(37) DATE EXTERNAL) 11470000 ENFORCE NO 11480000 SORTDEVT SYSDA SORTNUM 4 11490000 //* 11500000

Mise en œuvre Hercules & z/OS - Page - 100 -

//* STEP 14: CHECK DATA FOR REFERENTIAL INTEGRITY 11510000 //* 11520000 //PH01S14 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 11530000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 11540000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 11550000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 11560000 //DSNTRACE DD SYSOUT=* 11570000 //SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 11580000 //SYSIN DD * 11590000 11600000 CHECK DATA TABLESPACE DSN8D71A.DSN8S71D 11610000 TABLESPACE DSN8D71A.DSN8S71E 11620000 TABLESPACE DSN8D71A.DSN8S71P 11630000 SCOPE ALL 11640000 DELETE YES 11650000 FOR EXCEPTION IN DSN8710.DEPT USE DSN8710.EDEPT 11660000 IN DSN8710.EMP USE DSN8710.EEMP 11670000 IN DSN8710.PROJ USE DSN8710.EPROJ 11680000 IN DSN8710.ACT USE DSN8710.EACT 11690000 IN DSN8710.PROJACT USE DSN8710.EPROJACT 11700000 IN DSN8710.EMPPROJACT USE DSN8710.EEPA 11710000 EXCEPTIONS 50 11720000 SORTDEVT SYSDA SORTNUM 4 11730000 11740000 //* 11750000 //* STEP 15: ESTABLISH A QUIESCE POINT 11760000 //* NOTE: CONDITION CODE 4 INDICATES AN IMAGE COPY 11770000 //* CANNOT BE TAKEN 11780000 //* 11790000 //PH01S15 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 11800000 //SYSLISTD DD DISP=SHR,DSN=DSN710.DSN8.LISTDEF 11810000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 11820000 //SYSIN DD * 11830000 11840000 QUIESCE LIST DSN8LDEF 11850000 11860000 //* 11870000 //* STEP 16: TAKE IMAGE COPY OF SAMPLE TABLES 11880000 //* 11890000 //PH01S16 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 11900000 //SYSLISTD DD DISP=SHR,DSN=DSN710.DSN8.LISTDEF 11910000 // DD * 11920000 INCLUDE TABLESPACE DSN8D71P.DSN8S71C 11930000 //DSNTRACE DD SYSOUT=* 11940000 //SYSIN DD * 11950000 11960000 TEMPLATE DSN8TPLT 11970000 DSN(DSN710.SYSCOPY.&DB..&TS.) 11980000 DISP (NEW,CATLG,DELETE) 11990000 UNIT SYSDA VOLUMES(S4DB21) 12000000 PCTPRIME 100 MAXPRIME 5 NBRSECND 10 12010000 COPY LIST DSN8LDEF 12020000 COPYDDN(DSN8TPLT) 12030000 12040000 //* 12050000 //* STEP 17: ESTABLISH A QUIESCE POINT USING ONLY IMAGE COPIES 12060000 //* 12070000 //PH01S17 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 12080000 //SYSLISTD DD DISP=SHR,DSN=DSN710.DSN8.LISTDEF 12090000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12100000 //SYSIN DD * 12110000

Page 51: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 101 -

12120000 QUIESCE LIST DSN8LDEF 12130000 12140000 //* 12150000 //* STEP 18: REORGANIZE TABLESPACES, PRODUCE STATISTICS 12160000 //* 12170000 //PH01S18 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 12180000 //SYSLISTD DD DISP=SHR,DSN=DSN710.DSN8.LISTDEF 12190000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 12200000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12210000 //DSNTRACE DD SYSOUT=* 12220000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND) 12230000 //SYSREC DD UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND) 12240000 //SYSIN DD * 12250000 12260000 REORG TABLESPACE DSN8D71A.DSN8S71D 12270000 SORTDEVT(SYSDA) SORTNUM 4 12280000 12290000 RUNSTATS TABLESPACE LIST DSN8LDEF 12300000 INDEX(ALL) 12310000 12320000 //* 12330000 //* STEP 19: RUN ONLINE REORG OF TBLSPACE USING SHRLEVEL CHANGE 12340000 //* 12350000 //PH01S19 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 12360000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 12370000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12380000 //DSNTRACE DD SYSOUT=* 12390000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND) 12400000 //SYSREC DD UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND) 12410000 //COPYDDN DD DSN=DSN710.COPYDDN.DSN8D71P.DSN8S71C, 12420000 // DISP=(NEW,CATLG), 12430000 // UNIT=SYSDA,VOL=SER=S4DB21,SPACE=(TRK,(10,1),RLSE), 12440000 // DCB=BLKSIZE=8000 12450000 //SYSIN DD * 12460000 12470000 REORG TABLESPACE DSN8D71P.DSN8S71C 12480000 COPYDDN(COPYDDN) 12490000 SHRLEVEL CHANGE 12500000 DEADLINE 2010-2-4-03.15.00 12510000 MAPPINGTABLE DSN8710.MAP_TBL 12520000 MAXRO 240 LONGLOG DRAIN DELAY 900 12530000 SORTDEVT SYSDA SORTNUM 4 12540000 12550000 RUNSTATS TABLESPACE DSN8D71P.DSN8S71C 12560000 INDEX(ALL) 12570000 12580000 //* 12590000 //* STEP 20: LOAD DATA INTO PART 3 OF DSN8D71A.DSN8S71E 12600000 //* 12610000 //PH01S20 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 12620000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12630000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 12640000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12650000 //DSNTRACE DD SYSOUT=* 12660000 //SYSRECE3 DD DSN=DSN710.SDSNSAMP(DSN8LE3), 12670000 // DISP=SHR 12680000 //SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12690000 //SYSDISC DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12700000 //SYSMAP DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12710000 //SYSIN DD * 12720000

Mise en œuvre Hercules & z/OS - Page - 102 -

12730000 LOAD DATA INDDN(SYSRECE3) CONTINUEIF(72:72)='X' 12740000 RESUME YES 12750000 INTO TABLE DSN8710.EMP 12760000 PART 3 12770000 REPLACE 12780000 (EMPNO POSITION( 1) CHAR(6), 12790000 FIRSTNME POSITION( 8) VARCHAR, 12800000 MIDINIT POSITION(21) CHAR(1), 12810000 LASTNAME POSITION(23) VARCHAR, 12820000 WORKDEPT POSITION(36) CHAR(3), 12830000 PHONENO POSITION(40) CHAR(4), 12840000 HIREDATE POSITION(45) DATE EXTERNAL, 12850000 JOB POSITION(56) CHAR(8), 12860000 EDLEVEL POSITION(65) INTEGER EXTERNAL(2), 12870000 SEX POSITION(68) CHAR(1), 12880000 BIRTHDATE POSITION(80) DATE EXTERNAL, 12890000 SALARY POSITION(91) INTEGER EXTERNAL(5), 12900000 BONUS POSITION(97) INTEGER EXTERNAL(5), 12910000 COMM POSITION(103) INTEGER EXTERNAL(5)) 12920000 ENFORCE CONSTRAINTS MAPDDN SYSMAP 12930000 SORTDEVT SYSDA SORTNUM 4 12940000 12950000 //* 12960000 //* STEP 21: SET CURRENT RULES THEN ALTER TABLE 12970000 //* 12980000 //PH01S21 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 12990000 //SYSTSPRT DD SYSOUT=* 13000000 //SYSTSIN DD * 13010000 DSN SYSTEM(DSN1) 13020000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 13030000 LIB('DSN710.RUNLIB.LOAD') 13040000 //SYSPRINT DD SYSOUT=* 13050000 //SYSUDUMP DD SYSOUT=* 13060000 //SYSIN DD * 13070000 SET CURRENT RULES = 'DB2'; 13080000 COMMIT; 13090000 ALTER TABLE EMP ADD CONSTRAINT PERSON 13100000 CHECK (SEX = 'M' OR SEX = 'F'); 13110000 COMMIT; 13120000 13130000 //* 13140000 //* STEP 22: CHECK DATA IN PART 3 OF DSN8D71A.DSN8S71E 13150000 //* FOR REFERENTIAL INTEGRITY 13160000 //* 13170000 //PH01S22 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 13180000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13190000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 13200000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13210000 //DSNTRACE DD SYSOUT=* 13220000 //SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13230000 //SYSDISC DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13240000 //SYSIN DD * 13250000 13260000 CHECK DATA TABLESPACE DSN8D71A.DSN8S71D 13270000 TABLESPACE DSN8D71A.DSN8S71E 13280000 TABLESPACE DSN8D71A.DSN8S71P 13290000 SCOPE ALL 13300000 DELETE YES 13310000 FOR EXCEPTION IN DSN8710.DEPT USE DSN8710.EDEPT 13320000 IN DSN8710.EMP USE DSN8710.EEMP 13330000

Page 52: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 103 -

IN DSN8710.PROJ USE DSN8710.EPROJ 13340000 IN DSN8710.ACT USE DSN8710.EACT 13350000 IN DSN8710.PROJACT USE DSN8710.EPROJACT 13360000 IN DSN8710.EMPPROJACT USE DSN8710.EEPA 13370000 EXCEPTIONS 50 13380000 SORTDEVT SYSDA SORTNUM 4 13390000 13400000 //* 13410000 //* STEP 23: ATTEMPT INSERT INTO THE EMP TABLE 13420000 //* 13430000 //PH01S23 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 13440000 //SYSTSPRT DD SYSOUT=* 13450000 //SYSTSIN DD * 13460000 DSN SYSTEM(DSN1) 13470000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) PARM('RC0') - 13480000 LIB('DSN710.RUNLIB.LOAD') 13490000 //SYSPRINT DD SYSOUT=* 13500000 //SYSUDUMP DD SYSOUT=* 13510000 //SYSIN DD * 13520000 13530000 INSERT INTO EMP 13540000 VALUES ('000011', 'CHRISTINE', 'I', 'HAAS', 'A00', 'A1A1', 13550000 '1965-01-01', 'PRES', 18, 'F', '1933-08-14', 13560000 52750, 1000, 4220); 13570000 COMMIT; 13580000 13590000 INSERT INTO EMP 13600000 VALUES ('200011', 'DIANE', 'J', 'HEMMINGER', 'A00', '3978', 13610000 '1965-01-01', 'SALESREP', 18, 'U', '1933-08-14', 13620000 46500, 1000, 4220); 13630000 COMMIT; 13640000 13650000 //* 13660000 //* STEP 24: ESTABLISH A QUIESCE POINT FOR PART 3 13670000 //* OF DSN8D71A.DSN8S71E 13680000 //* NOTE: CONDITION CODE 4 INDICATES AN IMAGE COPY 13690000 //* CANNOT BE TAKEN 13700000 //* 13710000 //PH01S24 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 13720000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13730000 //SYSIN DD * 13740000 13750000 QUIESCE TABLESPACE DSN8D71A.DSN8S71E 13760000 PART 3 13770000 13780000 //* 13790000 //* STEP 25: TAKE IMAGE COPY OF PART 3 OF DSN8D71A.DSN8S71E 13800000 //* 13810000 //PH01S25 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 13820000 //DSNTRACE DD SYSOUT=* 13830000 //SYSCOPY DD DSN=DSN710.DSN8D71A.DSN8S71E.PART3, 13840000 // UNIT=SYSDA,DISP=(NEW,CATLG),SPACE=(4000,(20,20)), 13850000 // VOL=SER=S4DB21 13860000 //SYSIN DD * 13870000 13880000 COPY TABLESPACE DSN8D71A.DSN8S71E 13890000 DSNUM 3 COPYDDN SYSCOPY 13900000 13910000 //* 13920000 //* STEP 26: ESTABLISH A QUIESCE POINT FOR PART 3 13930000 //* OF DSN8D71A.DSN8S71E USING ONLY IMAGE COPY 13940000

Mise en œuvre Hercules & z/OS - Page - 104 -

//* NOTE: CONDITION CODE 4 INDICATES AN IMAGE COPY 13950000 //* CANNOT BE TAKEN 13960000 //* 13970000 //PH01S26 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 13980000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13990000 //SYSIN DD * 14000000 14010000 QUIESCE TABLESPACE DSN8D71A.DSN8S71E 14020000 PART 3 14030000 14040000 //* 14050000 //* STEP 27: PRODUCE STATISTICS FOR PART 3 OF 14060000 //* OF DSN8D71A.DSN8S71E 14070000 //* 14080000 //PH01S27 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 14090000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 14100000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 14110000 //DSNTRACE DD SYSOUT=* 14120000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND) 14130000 //SYSREC DD UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND) 14140000 //SYSIN DD * 14150000 14160000 RUNSTATS TABLESPACE DSN8D71A.DSN8S71E 14170000 PART 3 14180000 INDEX(ALL) 14190000 14200000 //* 14210000 //* STEP 28: UNLOAD PARTITIONS 1,3, AND 4 14220000 //* OF DSN8D71A.DSN8S71E 14230000 //* 14240000 //PH01S28 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 14250000 //SYSPRINT DD SYSOUT=* 14260000 //SYSIN DD * 14270000 14280000 LISTDEF DSN8LDUL 14290000 INCLUDE TABLESPACE DSN8D71A.DSN8S71E PARTLEVEL 14300000 EXCLUDE TABLESPACE DSN8D71A.DSN8S71E PARTLEVEL(2) 14310000 TEMPLATE DSN8TPPU 14320000 DSN(DSN710.&DB..&TS..SYSPUNCH) 14330000 DISP(NEW,CATLG,DELETE) 14340000 UNIT SYSDA VOLUMES(S4DB21) 14350000 PCTPRIME 100 MAXPRIME 1 NBRSECND 1 14360000 TEMPLATE DSN8TPSY 14370000 DSN(DSN710.&DB..&TS..P&PART.) 14380000 DISP(NEW,CATLG,DELETE) 14390000 UNIT SYSDA VOLUMES(S4DB21) 14400000 PCTPRIME 100 MAXPRIME 5 NBRSECND 10 14410000 UNLOAD LIST DSN8LDUL 14420000 PUNCHDDN(DSN8TPPU) 14430000 UNLDDN(DSN8TPSY) 14440000 EBCDIC 14450000 NOPAD 14460000 14470000 //* 14480000 l

JOB DSNTEJ5A – Compilation de la SQLCA formater routine //DSNTEJ5A JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), 00001000 // REGION=0M,NOTIFY=&SYSUID 00002000

Page 53: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 105 -

//**********************************************************************00010000 //* NAME = DSNTEJ5A *00020000 //* *00030000 //* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION *00040000 //* PHASE 5 *00050000 //* ASSEMBLE DSNTIAC *00060000 //* *00070000 //* LICENSED MATERIALS - PROPERTY OF IBM *00080000 //* 5675-DB2 *00090000 //* (C) COPYRIGHT 1982, 2000 IBM CORP. ALL RIGHTS RESERVED. *00100000 //* *00110000 //* STATUS = VERSION 7 *00120000 //* *00130000 //* FUNCTION = THIS JOB: *00140000 //* 1) ASSEMBLES THE CICS FRONT END FOR THE SQLCA *00150000 //* FORMATTER ROUTINE, DSNTIAC *00160000 //* 2) OPTIONALLY ASSEMBLES A SAMPLE RESOURCE CONTROL TABLE*00170000 //* 3) OPTIONALLY BUILDS CICS CSD DEFINITIONS FOR THE DB2 *00180000 //* SAMPLES *00190000 //* *00200000 //**********************************************************************00210000 //JOBLIB DD DSN=DSN710.SDSNEXIT,DISP=SHR 00220000 // DD DSN=DSN710.SDSNLOAD,DISP=SHR 00230000 // DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR 00240000 //* 00250000 //* STEP 1: CICS TRANSLATE 00260000 //PH05AS01 EXEC PGM=DFHEAP1$ 00270000 //STEPLIB DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR 00280000 //SYSPRINT DD SYSOUT=* 00290000 //SYSUDUMP DD SYSOUT=* 00300000 //SYSPUNCH DD DSN=&&CICSOUT,DISP=(NEW,PASS),UNIT=SYSDA, 00310000 // SPACE=(400,(100,100)),DCB=BLKSIZE=400 00320000 //SYSIN DD DSN=DSN710.SDSNSAMP(DSNTIAC), 00330000 // DISP=SHR 00340000 //* 00350000 //* STEP 2: ASSEMBLE DSNTIAC 00360000 //PH05AS02 EXEC PGM=ASMA90,PARM='NOOBJECT,DECK', 00370000 // COND=(4,LT,PH05AS01) 00380000 //SYSIN DD DSN=&&CICSOUT,DISP=(OLD,PASS) 00390000 //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR 00400000 // DD DSN=DSN710.SDSNMACS,DISP=SHR 00410000 // DD DSN=DSN710.SDSNSAMP,DISP=SHR 00420000 // DD DSN=CICSTS22.CICS.SDFHMAC,DISP=SHR 00430000 //SYSPUNCH DD DSN=&&OBJMOD(DSNTIAC),DISP=(,PASS),UNIT=SYSDA, 00440000 // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120), 00450000 // SPACE=(TRK,(10,1,1)) 00460000 //SYSPRINT DD SYSOUT=* 00470000 //SYSUDUMP DD SYSOUT=* 00480000 //SYSUT1 DD UNIT=SYSDA,SPACE=(800,(500,500),,,ROUND) 00490000 //SYSUT2 DD UNIT=SYSDA,SPACE=(800,(500,500),,,ROUND) 00500000 //SYSUT3 DD UNIT=SYSDA,SPACE=(800,(500,500),,,ROUND) 00510000 //* 00520000 //* STEP 3: LINK-EDIT DSNTIAC IF THE ASSEMBLER 00530000 //* RETURN CODE IS 4 OR LESS 00540000 //* 00550000 //PH05AS03 EXEC PGM=IEWL, 00560000 // PARM='LIST,XREF,RENT,LET,AMODE=31,RMODE=ANY', 00570000 // COND=(4,LT,PH05AS02) 00580000 //SYSLIB DD DSN=DSN710.SDSNLOAD, 00590000 // DISP=SHR 00600000 // DD DSN=CICSTS22.CICS.SDFHLOAD, 00610000

Mise en œuvre Hercules & z/OS - Page - 106 -

// DISP=SHR 00620000 //OBJLIB DD DSN=&&OBJMOD,DISP=(OLD,DELETE) 00630000 //SYSLMOD DD DSN=DSN710.RUNLIB.LOAD(DSNTIAC),DISP=SHR 00640000 //SYSPRINT DD SYSOUT=* 00650000 //SYSUDUMP DD SYSOUT=* 00660000 //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(50,50)) 00670000 //SYSLIN DD * 00680000 INCLUDE SYSLIB(DFHEAI) 00690000 INCLUDE OBJLIB(DSNTIAC) 00700000 NAME DSNTIAC(R) 00710000 //* 00720000 //* STEP 4: GENERATE INPUT TO RESOURCE CONTROL TABLE ASSEMBLY 00730000 //* 00740000 //*PH05AS04 EXEC PGM=IEBGENER,COND=(4,LT) 00750000 //*SYSPRINT DD SYSOUT=* 00760000 //*SYSIN DD DUMMY 00770000 //*SYSUT2 DD DSN=&&TEMPPDS(MACROS),UNIT=SYSDA,DISP=(,PASS), 00780000 //* DCB=(RECFM=FB,LRECL=80,BLKSIZE=400),VOL=SER=DSNV01, 00790000 //* SPACE=(400,(200,100,5)) 00800000 //*SYSUT1 DD DSN=DSN710.SDSNSAMP(DSN8FRCT),DISP=SHR 00810000 //* 00820000 //* STEP 5: ASSEMBLE THE RESOURCE CONTROL TABLE 00830000 //* 00840000 //*PH05AS05 EXEC PGM=ASMA90, 00850000 //* PARM='SYSPARM(INITIAL),DECK,NOOBJECT,FLAG(0)', 00860000 //* COND=(4,LT,PH05AS04) 00870000 //*SYSLIB DD DSN=CICSTS22.CICS.SDFHMAC,DISP=SHR 00880000 //* DD DSN=DSN710.SDSNMACS,DISP=SHR 00890000 //* DD DSN=SYS1.MACLIB,DISP=SHR 00900000 //*SYSUT1 DD UNIT=SYSDA,SPACE=(1700,(400,400)),VOL=SER=DSNV01 00910000 //*SYSUT2 DD UNIT=SYSDA,SPACE=(1700,(400,400)),VOL=SER=DSNV01 00920000 //*SYSUT3 DD UNIT=SYSDA,SPACE=(1700,(400,400)),VOL=SER=DSNV01 00930000 //*SYSPUNCH DD DSN=&&OBJMOD,DISP=(,PASS),UNIT=SYSDA,VOL=SER=DSNV01, 00940000 //* DCB=(RECFM=FB,LRECL=80,BLKSIZE=400), 00950000 //* SPACE=(400,(100,100)) 00960000 //*SYSPRINT DD SYSOUT=* 00970000 //*SYSIN DD DSN=&&TEMPPDS(MACROS),DISP=(OLD,PASS) 00980000 //* 00990000 //* STEP 6: ADD OBJECT DECK TO TEMPORARY PDS 01000000 //* 01010000 //*PH05AS06 EXEC PGM=IEBUPDTE,PARM=NEW,COND=(4,LT,PH05AS05) 01020000 //*SYSPRINT DD DUMMY 01030000 //*SYSUT2 DD DSN=&&TEMPPDS,DISP=(OLD,PASS) 01040000 //*SYSIN DD DSN=&&OBJMOD,DISP=(OLD,DELETE) 01050000 //* 01060000 //* STEP 7: LINK-EDIT THE RESOURCE CONTROL TABLE 01070000 //* 01080000 //*PH05AS07 EXEC PGM=IEWL,PARM='LIST,XREF,LET,NCAL',COND=(4,LT,PH05AS06)01090000 //*SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(100,50)) 01100000 //*SYSPRINT DD SYSOUT=* 01110000 //*SYSLMOD DD DSN=DSN710.RUNLIB.LOAD,DISP=SHR 01120000 //*SYSPUNCH DD DSN=&&TEMPPDS,DISP=(OLD,PASS) 01130000 //*SYSLIN DD DSN=&&TEMPPDS(LNKCTL), 01140000 //* DISP=(OLD,PASS),VOL=REF=*.PH05AS04.SYSUT2 01150000 //* 01160000 //* STEP 8: CREATE SAMPLE DEFINITIONS IN THE CICS CSD 01170000 //* 01180000 //PH05AS08 EXEC PGM=DFHCSDUP 01190001 //STEPLIB DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR 01200001 //DFHCSD DD DSN=CICSTS22.CICS.DFHCSD,DISP=SHR 01210001 //SYSPRINT DD SYSOUT=* 01220001

Page 54: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 107 -

//SYSIN DD DSN=DSN710.SDSNSAMP(DSN8FRDO),DISP=SHR 01230001 l

JOB DSNTEJ5C – Compilation des sources, MAPS, BIND, et GRANT du plan DB2 //DSNTEJ5C JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), 00001000 // REGION=0M,NOTIFY=&SYSUID 00002000 //**********************************************************************00010000 //* NAME = DSNTEJ5C *00020000 //* *00030000 //* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION *00040000 //* PHASE 5 *00050000 //* COBOL, CICS *00060000 //* *00070000 //* LICENSED MATERIALS - PROPERTY OF IBM *00080000 //* 5675-DB2 *00090000 //* (C) COPYRIGHT 1982, 2000 IBM CORP. ALL RIGHTS RESERVED. *00100000 //* *00110000 //* STATUS = VERSION 7 *00120000 //* *00130000 //* FUNCTION = THIS JCL PERFORMS THE PHASE 5 SETUP FOR THE SAMPLE *00140000 //* APPLICATIONS AT SITES WITH COBOL. IT PREPARES THE *00150000 //* COBOL CICS PROGRAM. *00160000 //* *00170000 //* RUN THIS JOB ANYTIME AFTER PHASE 2. *00180000 //* *00190000 //**********************************************************************00200000 //JOBLIB DD DSN=DSN710.SDSNEXIT,DISP=SHR 00210000 // DD DSN=DSN710.SDSNLOAD,DISP=SHR 00220000 // DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR 00230000 //* 00240000 //* STEP 1: CREATE CICS LOGICAL MAP 00250000 //MAPG EXEC DFHASMVS,PARM='DECK,NOOBJECT,SYSPARM(DSECT)', 00260000 // OUTC='*',INDEX='CICSTS22.CICS' 00270000 //SYSPUNCH DD DSN=DSN710.SRCLIB.DATA(DSN8MCMG), 00280000 // DISP=OLD 00290000 //SYSIN DD DSN=DSN710.SDSNSAMP(DSN8CCG), 00300000 // DISP=SHR 00310000 //* 00320000 //* STEP 2: CREATE CICS LOGICAL MAP 00330000 //MAPD EXEC DFHASMVS,PARM='DECK,NOOBJECT,SYSPARM(DSECT)', 00340000 // COND=(4,LT),OUTC='*',INDEX='CICSTS22.CICS' 00350000 //SYSPUNCH DD DSN=DSN710.SRCLIB.DATA(DSN8MCMD), 00360000 // DISP=OLD 00370000 //SYSIN DD DSN=DSN710.SDSNSAMP(DSN8CCD), 00380000 // DISP=SHR 00390000 //* 00400000 //* STEP 3: PREPARE CICS COBOL PROGRAMS 00410000 //DSNH EXEC PGM=IKJEFT01,COND=(4,LT),DYNAMNBR=50 00420000 //SYSTSPRT DD SYSOUT=* 00430000 //SYSTERM DD SYSOUT=* 00440000 //SYSPRINT DD SYSOUT=* 00450000 //SYSUDUMP DD SYSOUT=* 00460000 //SYSOUT DD SYSOUT=* 00470000 //SYSPROC DD DSN=DSN710.SDSNCLST,DISP=SHR 00480000 //SYSTSIN DD * 00490000 %DSNH INPUT('''DSN710.SDSNSAMP(DSN8MCG)''') + 00500000 PLIB('''DSN710.SRCLIB.DATA''') + 00510000 P2LIB('''DSN710.SDSNSAMP''') + 00520000 TERM(LEAVE) PRINT(LEAVE) SOURCE(NO) XREF(NO) + 00530000 HOST(COB2) RUN(CICS) BIND(NO) + 00540000

Mise en œuvre Hercules & z/OS - Page - 108 -

DELIM(APOST) SQLDELIM(APOSTSQL) + 00550000 DBRMLIB('''DSN710.DBRMLIB.DATA''') + 00560000 PRELINK(NO) + 00570000 LLIB('''IBMUSER.LIB.LOAD''') + 00580002 CICSLLIB('CICSTS22.CICS.SDFHLOAD') + 00581001 CICSPLIB('''CICSTS22.CICS.SDFHPL1''') + 00582001 CICSCLIB('''CICSTS22.CICS.SDFHCOB''') + 00583001 COBLOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00590000 COB2LIB('''IGY310.SIGYCOMP''') + 00591000 COB2LOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00592000 COB2CICS('''CICSTS22.CICS.SDFHCOB''') + 00592100 COPTION('''NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF''') + 00593000 LOPTION('LIST,XREF,REUS,RENT') + 00620000 PCLOAD('''DSN710.SDSNLOAD(DSNHPC)''') + 00630000 STDSQL(NO) + 00640000 XLIB('''DSN710.SDSNLOAD''') + 00650000 LLIB('''CEE.SCEELKED''') + 00651000 LOAD('''DSN710.RUNLIB.LOAD''') 00660000 %DSNH INPUT('''DSN710.SDSNSAMP(DSN8CC0)''') + 00661000 PLIB('''DSN710.SRCLIB.DATA''') + 00662000 P2LIB('''DSN710.SDSNSAMP''') + 00663000 TERM(LEAVE) PRINT(LEAVE) SOURCE(NO) XREF(NO) + 00664000 HOST(COB2) RUN(CICS) BIND(NO) + 00665000 DELIM(APOST) SQLDELIM(APOSTSQL) + 00666000 DBRMLIB('''DSN710.DBRMLIB.DATA''') + 00667000 PRELINK(NO) + 00668000 LLIB('''DSN710.RUNLIB.LOAD''') + 00669000 CICSLLIB('CICSTS22.CICS.SDFHLOAD') + 00669101 CICSPLIB('''CICSTS22.CICS.SDFHPL1''') + 00669201 CICSCLIB('''CICSTS22.CICS.SDFHCOB''') + 00669301 COBLOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00669400 COB2LIB('''IGY310.SIGYCOMP''') + 00669500 COB2LOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00669600 COB2CICS('''CICSTS22.CICS.SDFHCOB''') + 00669700 COPTION('''NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF''') + 00669800 LOPTION('LIST,XREF,NOREUS,RENT') + 00669900 PCLOAD('''DSN710.SDSNLOAD(DSNHPC)''') + 00670000 STDSQL(NO) + 00670100 XLIB('''DSN710.SDSNLOAD''') + 00670200 LLIB('''CEE.SCEELKED''') + 00670300 LOAD('''DSN710.RUNLIB.LOAD''') 00670400 %DSNH INPUT('''DSN710.SDSNSAMP(DSN8CC1)''') + 00671000 PLIB('''DSN710.SRCLIB.DATA''') + 00680000 P2LIB('''DSN710.SDSNSAMP''') + 00690000 TERM(LEAVE) PRINT(LEAVE) SOURCE(NO) XREF(NO) + 00700000 HOST(COB2) RUN(CICS) BIND(NO) + 00710000 DELIM(APOST) SQLDELIM(APOSTSQL) + 00720000 DBRMLIB('''DSN710.DBRMLIB.DATA''') + 00730000 PRELINK(NO) + 00740000 LLIB('''DSN710.RUNLIB.LOAD''') + 00750000 CICSLLIB('CICSTS22.CICS.SDFHLOAD') + 00750101 CICSPLIB('''CICSTS22.CICS.SDFHPL1''') + 00750201 CICSCLIB('''CICSTS22.CICS.SDFHCOB''') + 00750301 COB2LIB('''IGY310.SIGYCOMP''') + 00751000 COBLOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00760000 COB2LOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00761000 COB2CICS('''CICSTS22.CICS.SDFHCOB''') + 00761100 COPTION('''NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF''') + 00761200 LOPTION('LIST,XREF,NOREUS,RENT') + 00790000 PCLOAD('''DSN710.SDSNLOAD(DSNHPC)''') + 00800000 STDSQL(NO) + 00810000

Page 55: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 109 -

XLIB('''DSN710.SDSNLOAD''') + 00820000 LLIB('''CEE.SCEELKED''') + 00821000 L2LIB('''DSN710.RUNLIB.LOAD''') + 00822000 LOAD('''DSN710.RUNLIB.LOAD''') 00830000 %DSNH INPUT('''DSN710.SDSNSAMP(DSN8CC2)''') + 00840000 PLIB('''DSN710.SRCLIB.DATA''') + 00850000 P2LIB('''DSN710.SDSNSAMP''') + 00860000 TERM(LEAVE) PRINT(LEAVE) SOURCE(NO) XREF(NO) + 00870000 HOST(COB2) RUN(CICS) BIND(NO) + 00880000 DELIM(APOST) SQLDELIM(APOSTSQL) + 00890000 DBRMLIB('''DSN710.DBRMLIB.DATA''') + 00900000 PRELINK(NO) + 00910000 LLIB('''DSN710.RUNLIB.LOAD''') + 00920000 CICSLLIB('CICSTS22.CICS.SDFHLOAD') + 00920101 CICSPLIB('''CICSTS22.CICS.SDFHPL1''') + 00920201 CICSCLIB('''CICSTS22.CICS.SDFHCOB''') + 00920301 COB2LIB('''IGY310.SIGYCOMP''') + 00921000 COBLOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00930000 COB2LOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00931000 COB2CICS('''CICSTS22.CICS.SDFHCOB''') + 00931100 COPTION('''NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF''') + 00931200 LOPTION('LIST,XREF,NOREUS,RENT') + 00960000 PCLOAD('''DSN710.SDSNLOAD(DSNHPC)''') + 00970000 STDSQL(NO) + 00980000 XLIB('''DSN710.SDSNLOAD''') + 00990000 LLIB('''CEE.SCEELKED''') + 00991000 L2LIB('''DSN710.RUNLIB.LOAD''') + 00992000 LOAD('''DSN710.RUNLIB.LOAD''') 01000000 //* 01010000 //* STEP 4: BIND THE PROGRAM 01020000 //BIND EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 01030000 //DBRMLIB DD DSN=DSN710.DBRMLIB.DATA,DISP=SHR 01040000 //SYSUDUMP DD SYSOUT=* 01050000 //SYSTSPRT DD SYSOUT=* 01060000 //SYSPRINT DD SYSOUT=* 01070000 //SYSIN DD * 01080000 GRANT BIND, EXECUTE ON PLAN DSN8CC0 TO PUBLIC; 01090003 //SYSTSIN DD * 01100000 DSN SYSTEM(DSN1) 01110000 BIND PACKAGE (DSN8CC71) MEMBER(DSN8CC0) - 01120002 ACT(REP) ISO(CS) ENCODING(EBCDIC) 01130000 BIND PACKAGE (DSN8CC71) MEMBER(DSN8CC1) - 01140002 ACT(REP) ISO(CS) ENCODING(EBCDIC) 01150000 BIND PACKAGE (DSN8CC71) MEMBER(DSN8CC2) - 01160002 ACT(REP) ISO(CS) ENCODING(EBCDIC) 01170000 BIND PLAN(DSN8CC0) PKLIST(DSN8CC71.*) - 01180002 ACT(REP) ISO(CS) ENCODING(EBCDIC) 01190000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 01200002 LIB('DSN710.RUNLIB.LOAD') 01210000 END 01220000 //* 01230000 //* STEP 5: CREATE THE CICS BMS PHYSICAL MAP 01240000 //MAPGP EXEC DFHASMVS,COND=(4,LT),OUTC='*',INDEX='CICSTS22.CICS' 01250002 //SYSPUNCH DD DSN=&&TEMP,UNIT=SYSDA,DISP=(,PASS), 01260000 // DCB=(RECFM=F,BLKSIZE=80),SPACE=(1024,(100,10)) 01270000 //SYSIN DD DSN=DSN710.SDSNSAMP(DSN8CCG), 01280000 // DISP=SHR 01290000 //* 01300000 //* STEP 6: LINKEDIT THE CICS BMS PHYSICAL MAP 01310000 //MAPGL EXEC PGM=IEWL,PARM='LIST,LET,XREF',COND=(4,LT) 01320000 //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(100,10)) 01330000

Mise en œuvre Hercules & z/OS - Page - 110 -

//SYSLMOD DD DSN=DSN710.RUNLIB.LOAD,DISP=SHR 01340000 //SYSPRINT DD SYSOUT=* 01350000 //SYSUDUMP DD SYSOUT=* 01360000 //SYSLIN DD DSN=&&TEMP,DISP=(OLD,DELETE) 01370000 // DD * 01380000 NAME DSN8CCG(R) 01390000 //* 01400000 //* STEP 7: CREATE THE CICS BMS PHYSICAL MAP 01410000 //MAPDP EXEC DFHASMVS,COND=(4,LT),OUTC='*',INDEX='CICSTS22.CICS' 01420002 //SYSPUNCH DD DSN=&&TEMP,UNIT=SYSDA,DISP=(,PASS), 01430000 // DCB=(RECFM=F,BLKSIZE=80),SPACE=(1024,(100,10)) 01440000 //SYSIN DD DSN=DSN710.SDSNSAMP(DSN8CCD), 01450000 // DISP=SHR 01460000 //* 01470000 //* STEP 8: LINKEDIT THE CICS BMS PHYSICAL MAP 01480000 //MAPDL EXEC PGM=IEWL,PARM='LIST,LET,XREF',COND=(4,LT) 01490000 //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(100,10)) 01500000 //SYSLMOD DD DSN=DSN710.RUNLIB.LOAD,DISP=SHR 01510000 //SYSPRINT DD SYSOUT=* 01520000 //SYSUDUMP DD SYSOUT=* 01530000 //SYSLIN DD DSN=&&TEMP,DISP=(OLD,DELETE) 01540000 // DD * 01550000 NAME DSN8CCD(R) 01560000 l

Job DSNTEJ4C installaton de l’application IMS-DB2 sample //DSNTEJ4C JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), 00001001 // REGION=0M,NOTIFY=&SYSUID 00002001 //**********************************************************************00010000 //* NAME = DSNTEJ4C *00020000 //* *00030000 //* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION *00040000 //* PHASE 4 *00050000 //* COBOL, IMS *00060000 //* *00070000 //* LICENSED MATERIALS - PROPERTY OF IBM *00080000 //* 5675-DB2 *00090000 //* (C) COPYRIGHT 1982, 2000 IBM CORP. ALL RIGHTS RESERVED. *00100000 //* *00110000 //* STATUS = VERSION 7 *00120000 //* *00130000 //* FUNCTION = THIS JCL PERFORMS THE PHASE 4 SETUP FOR THE SAMPLE *00140000 //* APPLICATIONS AT SITES WITH COBOL. IT PREPARES THE *00150000 //* COBOL IMS PROGRAM. *00160000 //* *00170000 //* RUN THIS JOB ANYTIME AFTER PHASE 2. *00180000 //* *00190000 //* CHANGE ACTIVITY = *00200000 //* 04/11/94 - ADD CODE FOR TU2631IE *00210000 //* *00220000 //**********************************************************************00230000 //* 00240000 //JOBLIB DD DSN=DSN710.SDSNLOAD,DISP=SHR 00250001 //IMS810 JCLLIB ORDER=IMS810.PROCLIB 00251001 //* STEP 1: PREPARE SQL 0 PART OF PROGRAM 00260001 //PH04CS01 EXEC DSNHCOB2, 00270001 // PARM.PC=('HOST(COB2)',APOST,APOSTSQL,SOURCE,XREF, 00280001 // 'STDSQL(NO)'), 00290000 // PARM.COB=(APOST,NODYNAM,ADV,NOOPTIMIZE,NORESIDENT, 00300001

Page 56: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 111 -

// NOTRUNC,'BUF(12288)',SOURCE,NOXREF), 00310001 // PARM.LKED='XREF,NCAL',USER=DSN710, 00320001 // MEM=DSN8IC0 00330000 //PC.DBRMLIB DD DSN=DSN710.DBRMLIB.DATA(DSN8IC0), 00340001 // DISP=SHR 00350000 //PC.SYSCIN DD DSN=&&DSNHOUT0 00360000 //PC.SYSLIB DD DSN=DSN710.SRCLIB.DATA, 00370001 // DISP=SHR 00380000 // DD DSN=DSN710.SDSNSAMP, 00390001 // DISP=SHR 00400000 //PC.SYSIN DD DSN=DSN710.SDSNSAMP(DSN8IC0), 00410001 // DISP=SHR 00420000 //COB.SYSIN DD DSN=&&DSNHOUT0 00430000 //LKED.SYSLMOD DD DSN=DSN710.RUNLIB.LOAD(DSN8IC0),DISP=SHR 00440001 //LKED.SYSLIB DD DSN=IMS810.SDFSRESL,DISP=SHR 00441001 //* 00460000 //* STEP 2: PREPARE SQL 1 PART OF PROGRAM 00470000 //PH04CS02 EXEC DSNHCOB2, 00480001 // PARM.PC=('HOST(COB2)',APOST,APOSTSQL,SOURCE,XREF, 00490001 // 'STDSQL(NO)'), 00500000 // PARM.COB=(APOST,NODYNAM,ADV,NOOPTIMIZE,NORESIDENT, 00510001 // NOTRUNC,'BUF(12288)',SOURCE,NOXREF), 00520001 // PARM.LKED='XREF,NCAL',USER=DSN710, 000530001 // COND=(4,LT), 00540000 // MEM=DSN8IC1 00550000 //PC.DBRMLIB DD DSN=DSN710.DBRMLIB.DATA(DSN8IC1), 00560001 // DISP=SHR 00570000 //PC.SYSCIN DD DSN=&&DSNHOUT1 00580000 //PC.SYSLIB DD DSN=DSN710.SRCLIB.DATA, 00590001 // DISP=SHR 00600000 // DD DSN=DSN710.SDSNSAMP, 00610001 // DISP=SHR 00620000 //PC.SYSIN DD DSN=DSN710.SDSNSAMP(DSN8IC1), 00630001 // DISP=SHR 00640000 //COB.SYSIN DD DSN=&&DSNHOUT1 00650000 //LKED.SYSLMOD DD DSN=DSN710.RUNLIB.LOAD(DSN8IC1),DISP=SHR 00660001 //LKED.SYSLIB DD DSN=IMS810.SDFSRESL,DISP=SHR 00661001 //* 00680000 //* STEP 3: PREPARE SQL 2 PART OF PROGRAM 00690000 //PH04CS03 EXEC DSNHCOB2, 00700001 // PARM.PC=('HOST(COB2)',APOST,APOSTSQL,SOURCE,XREF, 00710001 // 'STDSQL(NO)'), 00720000 // PARM.COB=(APOST,NODYNAM,ADV,NOOPTIMIZE,NORESIDENT, 00730001 // NOTRUNC,'BUF(12288)',SOURCE,NOXREF), 00740001 // PARM.LKED='XREF,NCAL',USER=DSN710, 00750001 // COND=(4,LT), 00760000 // MEM=DSN8IC2 00770000 //PC.DBRMLIB DD DSN=DSN710.DBRMLIB.DATA(DSN8IC2), 00780001 // DISP=SHR 00790000 //PC.SYSCIN DD DSN=&&DSNHOUT2 00800000 //PC.SYSLIB DD DSN=DSN710.SRCLIB.DATA, 00810001 // DISP=SHR 00820000 // DD DSN=DSN710.SDSNSAMP, 00830001 // DISP=SHR 00840000 //PC.SYSIN DD DSN=DSN710.SDSNSAMP(DSN8IC2), 00850001 // DISP=SHR 00860000 //COB.SYSIN DD DSN=&&DSNHOUT2 00870000 //LKED.SYSLMOD DD DSN=DSN710.RUNLIB.LOAD(DSN8IC2), 00880001 // DISP=SHR 00890000 //LKED.SYSLIB DD DSN=IMS810.SDFSRESL,DISP=SHR 00891001 //* 00900000

Mise en œuvre Hercules & z/OS - Page - 112 -

//* STEP 4: LINKEDIT THE ENTIRE PROGRAM 00910000 //PH04CS04 EXEC PGM=IEWL,PARM='LIST,XREF,LET',COND=(4,LT) 00920000 //SYSLIB DD DISP=SHR,DSN=IGY310.SIGYCOMP 00930001 // DD DSN=DSN710.SDSNLOAD,DISP=SHR 00940001 // DD DISP=SHR,DSN=IMS810.SDFSRESL 00950001 //SYSLIN DD DDNAME=SYSIN 00960000 //SYSLMOD DD DSN=DSN710.RUNLIB.LOAD,DISP=SHR 00970001 //SYSPRINT DD SYSOUT=* 00980000 //SYSUDUMP DD SYSOUT=* 00990000 //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(50,50)) 01000000 //SYSIN DD * 01010000 INCLUDE SYSLIB(DFSLI000) 01020000 INCLUDE SYSLMOD(DSN8IC0) 01030000 INCLUDE SYSLMOD(DSN8IC1) 01040000 INCLUDE SYSLMOD(DSN8IC2) 01050000 INCLUDE SYSLMOD(DSN8MCG) 01060000 ENTRY DLITCBL 01070000 NAME DSN8IC0(R) 01080000 //* 01090000 //* STEP 5: BIND THE PLAN 01100000 //PH04CS05 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 01110000 //DBRMLIB DD DSN=DSN710.DBRMLIB.DATA,DISP=SHR 01120001 //SYSUDUMP DD SYSOUT=* 01130000 //SYSTSPRT DD SYSOUT=* 01140000 //SYSPRINT DD SYSOUT=* 01150000 //SYSIN DD * 01160000 GRANT BIND, EXECUTE ON PLAN DSN8IC0 TO PUBLIC; 01170000 //SYSTSIN DD * 01180000 DSN SYSTEM(DSN1) 01190001 BIND PACKAGE (DSN8IC71) MEMBER(DSN8IC1) - 01200001 ACT(REP) ISO(CS) ENCODING(EBCDIC) 01210000 BIND PACKAGE (DSN8IC71) MEMBER(DSN8IC2) - 01220001 ACT(REP) ISO(CS) ENCODING(EBCDIC) 01230000 BIND PLAN(DSN8IC0) PKLIST(DSN8IC71.*) - 01240001 ACT(REP) ISO(CS) ENCODING(EBCDIC) 01250000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 01260001 LIB('DSN710.RUNLIB.LOAD') 01270001 END 01280000 //* 01290000 //* STEP 6: CREATE THE MFS MAPS 01300000 //PH04CS06 EXEC MFSUTL,COND=(4,LT) 01310000 //SYSIN DD DSN=DSN710.SDSNSAMP(DSN8IPG), 01320001 // DISP=SHR 01330000 //* 01340000 //* STEP 7: CREATE THE MFS MAPS 01350000 //PH04CS07 EXEC MFSUTL,COND=(4,LT) 01360000 //SYSIN DD DSN=DSN710.SDSNSAMP(DSN8IPD), 01370001 // DISP=SHR 01380000 //* 01390000 //* STEP 8: RUN THE PSBGEN 01400000 //PH04CS08 EXEC PSBGEN,MBR=DSN8IC0,COND=(4,LT) 01410000 //C.SYSIN DD * 01420000 PRINT NOGEN 01430000 PCB TYPE=TP,EXPRESS=YES,ALTRESP=YES,MODIFY=YES,SAMETRM=YES 01440000 PSBGEN PSBNAME=DSN8IC0,LANG=COBOL 01450000 END 01460000 //* 01470000 //* STEP 9: RUN THE ACBGEN 01480000 //PH04CS09 EXEC ACBGEN,COND=(4,LT) 01490000 //G.SYSIN DD * 01500000 BUILD PSB=DSN8IC0 01510000

Page 57: SAMPLES MQ – CICS (base du call out)21 Mise en œuvre ...sites.google.com/site/jeanrollet/Herculesz-OS.doc.pdfLancement de l’environnement complet DB2 + MQ + IMS + CICS S STARTALL

Mise en œuvre Hercules & z/OS - Page - 113 -

//* 01520000 //* ALSO ADD MEMBER DSN8FIMS TO THE SYSDEF TO ADD TRANSACTIONS 01530000 //* 01540000 l