Vous êtes sur la page 1sur 57

SAMPLES MQ – CICS (base du call out).................................................................................................

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

Mise en œuvre Hercules & z/OS - Page - 1 - Mise en œuvre Hercules & z/OS - Page - 2 -
Liste des fichiers du SupportPack CA1E................................................................................................... 46 JOB DSNTEJ5A – Compilation de la SQLCA formater routine ............................................................ 104
Ajouter la loadlib dans la proc de CICSA ................................................................................................. 46 JOB DSNTEJ5C – Compilation des sources, MAPS, BIND, et GRANT du plan DB2 ......................... 107
Ajouter les ressources du fichier CICSTS22.CA1E.DEF dans le démarrage de CICS ............................ 46 Job DSNTEJ4C installaton de l’application IMS-DB2 sample.............................................................. 110
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 - 3 - Mise en œuvre Hercules & z/OS - Page - 4 -
Toute la doc livrée avec l’installation Hercules chez Scort (à cause de la directive CNSLPORT 3270)

Démarrage hercules et l’adresse de la machine virtuelle z/OS


(à cause de la directive 0E20.2 3088 CTCI <adresse virtuelle z/OS> <adresse Windows>)
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
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)
Duplication & refresh de hercules
IPL A80 (sur la session DOS ou on a démarré hercules)
1. arrêter hercules pour faire cette opération
2. copier
L’ipl charge tous les sous systèmes de z/OS sauf CICS, IMS, et MQ qui sont démarrés manuellement
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
Lancement de l’environnement complet DB2 + MQ + IMS + CICS
c. obtenir une IP Virtuelle pour le nouvel hercule (pour une création) S STARTALL
d. paramétrer hercules.cnf pour y mettre ses propres IP – cad celle de windows Cette commande enchaîne le démarrage de tous les sous –systèmes avec une séquence d’attente entre chaque
+ l’IP virtuelle de z/OS (voir annexes)

Comment dupliquer une machine hercules ? Lancement et arrêt manuel des sous systèmes
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 Si on passe ces commandes depuis une connexion à TSO sous SDSF, il faut les faire précéder d’un « / »
(receive from host) depuis la console TSO avant de faire shutdown du système cible
2. sélectionner les disques à dupliquer Démarrage de DB2
a. sélectionner les disques modifiés en comparant le répertoire -START DB2
c:\hercules\DEVICES de la source et de la cible Et arrêt par
b. copier seulement les fichiers de taille différente -STOP DB2 MODE(FORCE)
3. démarrer hercules et mettre à jour TCPIP
a. connecter une console sur le port 3270 et l’IP de la machine windows Démarrage manuel de MQ
b. faire IPL S STARTMQ
c. connecter un TSO sur le 3270
d. arrêter TCPIP Démarrage de la connexion du bridge MQ-IMS lors du démarrage de IMS ou s’il est déjà
e. reloader le fichier TCPIP.PROFILE.TCPIP ou le modifier à la main si pas de démarré par les commandes
copie du précédent <reply>/STO OTMA
f. restarter TCPIP <reply>/SECURE OTMA NONE
<reply>/STA OTMA
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)
Et arrêt par
%CSQ1 STOP QMGR MODE(FORCE)
Lancement de hercules - IPL z/OS – et tous les sous systèmes
Sur le répertoire d'installation c:\HERCMSVC taper hercules
Démarrage de IMS
Hercules Version 3.03 S STARTIMS
(c)Copyright 1999-2005 by Roger Bowler, Jan Jaeger, and others Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/NRE CHKPT 0 FMT ALL.
Built on Dec 23 2005 at 11:51:05 Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/STA DC
Build information:
Win32 (MSVC) build Pour stopper IMS
Modes: S/370 ESA/390 z/Arch Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/CHE FREEZE
Max CPU Engines: 8 Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/STO DC
…/… P IMS81OM1
HHCTE003I Waiting for console connection on port 3270 P IMS81RL1
P IMS81RM1
…/…
P IMS81SC1
C:\HERCMSVC\TunTap32.dll version 3.1.7.852 initiated
HHCCT073I 0E20: TUN device tun0 opened
…/…
Démarrage de IMS Connect (IMS doit être démarré)
HHCHT006I Waiting for HTTP requests on port 8081
S IMSRDR,MBR=IMS81CON
Et arrêt par
L’initialisation de la dll TunTap32 indique la capture et le routage des adresses et des ports et de hercules.cnf vers z/OS P IMS81CON
Même si TCPIP de z/os n’est pas configuré, on peut se connecter sur le port 3270 pour avoir la mire VTAM

Mise en œuvre Hercules & z/OS - Page - 5 - Mise en œuvre Hercules & z/OS - Page - 6 -
Démarrage de CICS DFS0739I LOGIC ERROR DDNAME=DFSOLP00 LOG SEQ=000000000
S CICSA 0000547 IVP1
Et arrêt par DFS0739X ERROR READING IMS LOG RC=22 DDNAME=DFSOLP00 LOG
F CICSA,CEMT PERF SHUT IMMED SEQ=0000000000000547 IVP1
DFS629I IMS RST TCB ABEND - IMS 0175 IVP1

Arrêt complet de z/OS avec ses sous systèmes


F CICSA,CEMT PERF SHUT IMMED Cold start par:
P IMS81CON /ERE COLDSYS.
Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/CHE FREEZE
Au reply *xx DFS996I *IMS READY* IVP1 taper <reply>/STO DC
04/sta dc
P IMS81OM1
P IMS81RL1 /xx/dis a (sous tso)
P IMS81RM1
P IMS81SC1 IMS810.TCFSLIB(DFSTCF)
-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 démarrage manuel de IMSConnect
console z/OS sur VOUVRAY IMSCONNECT ne démarre pas tout seul car il faut d’abord fair le NRE et le start DC pour
S SHUTDOWN qu’il soit opérationnel lors de son démarrage
Attendre le msg suivant:
$HASP099 ALL AVAILABLE FUNCTIONS COMPLETE S IMSRDR,MBR=IMS81CON
Puis passer la commande
D A,L
Qui doit donner ceci (uniquement JES2 actif)
Etapes de la construction de IMS
IEE114I 09.42.40 2007.092 ACTIVITY 759 IMS810.INSTALIB(IV3C201J)  macros de définition du système
JOBS M/S TS USERS SYSAS INITS ACTIVE/MAX VTAM OAS IMS810.INSTALIB(IV3C202J)  JCL de preprocesseur
00000 00001 00000 00027 00020 00000/00000 00001 IMS810.INSTALIB(IV3C203J)  Stage SYSDEF > gén_re un Syspunch
JES2 JES2 IEFPROC NSW S IMS810.INSTALIB(IV3C301T) 

1 : PSBGEN  définir les PSB dans la PSBLIB


Passer alors la commande 2 : IMSCOBOL  compiler & linkedit des pgm dans la PGMLIB
3 : ACBGEN  compilerr les ACB dans ACBLIB
$PJES2 4 : OLCUTL  préparer Online Change ACBLIB vers A ou B
Et attendre 10 secondes pour passer dans la session DOS ou l’on a lancé hercules et 5 : /Mod Prepare puis commit
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
exemples de transactions IMS
s STARTIMS qui fait ce qui suit:
part an960c10
s imsrdr,mbr=ims81rl1 disburse an960c10,28009126,u,100
s imsrdr,mbr=ims81sc1 dspinv an960c10,28009126
s imsrdr,mbr=ims81om1 addpart an911c11,karsher,93
s imsrdr,mbr=ims81rm1 addinv an911c12,12345678
s imsrdr,mbr=ims81cr1 close an911c12,12345678,15,15
dspinv an911c12,12345678
démarrage de IMS Connect dspalli an911c12
s imsrdr,mbr=ims81con (pas automatique, le faire à la main , voir plus loin)
/for IVTCM permet de lancer une conversation dans la région IMS81JMP (région java), voir
pour démarrer une transaction il faut ensuite répondre au reply IMS sur la console MVS mise en œuvre plus loin
comme suit:
02/nre chkpt 0 fmt all.
/ERE CHECKPOINT 0 BUILDQ OVERRIDE.
Arrêt de IMS
IMS ABEND au démarrage: xx/che freeze

Mise en œuvre Hercules & z/OS - Page - 7 - Mise en œuvre Hercules & z/OS - Page - 8 -
xx/dis a (si nécessaire pour router les msg ims vers la console MVS) Setup Guide MQ for z/OS
xx/sto dc
p ims81sc1 http://publibfp.boulder.ibm.com/epubs/pdf/csqsav02.pdf
p ims81om1
p ims81rl1 Ajouter les libraries
p ims81rm1 CSQ531.SCSQAUTH
p ims81cr1 CSQ531.SCSQLINK
.... (autant de de proc actives dans D J,L) à ADCD.ZOSV14S.PARMLIB(LPALSTIM)

Stopper / starter les regions IMS Mise à jour LPA et LINKLST


/IVP1DIS A REG Les commandes suivantes sont dynamiques, après un IPL, elles sont prises en compte via
/IVP1STO REG 1 2 3 4 SETPROG LPA,ADD,MODNAME=(CSQ3INI,CSQ3EPX),DSNAME=CSQ531.SCSQLINK
SETPROG LPA,ADD,MODNAME=(CSQ3EcMX),DSNAME=csq531.sCSQsNLe
Redémarrer SETPROG LPA,ADD,MASK=*,DSNAME=CSQ531.SCSQLINK
/S IMSRDR,MBR=IMSMSG
pour cela ajouter
Ou démarrer une region seulement LNKLST ADD NAME(LNKLST00) DSN(CSQ531.SCSQAUTH) VOLUME(S4RES1)
Soit par /S imsrdr,mbr=IMS81JMP LNKLST ADD NAME(LNKLST00) DSN(CSQ531.SCSQLINK) VOLUME(S4RES1)
à la fin de ADCD.ZOSV14S.PARMLIB(PROGIM)
Ou bien utiliser le command prefix de IMS
/IVP1STA REG IMS81JMP
/IVP1STO REG JOBNAME IMS81JMP
Mettre à jour ADCD.ZOSV14S.PARMLIB(PROGIM)

Arrêt de z/OS APF ADD


s shutdown DSNAME(CSQ531.SCSQLINK) VOLUME(S4RES1)
f dlf,mode=quiesce APF ADD
(eventuellement au reply xxfstop) DSNAME(CSQ531.SCSQAUTH) VOLUME(S4RES1)
p dlf APF ADD
$pjes2 DSNAME(CSQ531.CSQ1.SCSQAUTH) VOLUME(S4RES1)
APF ADD
Puis sur la fenêtre DOS de Hercules la commande : quit DSNAME(CSQ531.SCSQSNLE) VOLUME(S4RES1)
Qui va couper la session sans l’émulateur de la console 3270 APF ADD
DSNAME(CSQ531.SCSQCICS) VOLUME(S4RES1)
APF ADD
DSNAME(CSQ531.SCSQANLE) VOLUME(S4RES1)
APF ADD
DB2 DSNAME(CSQ531.SCSQMVR1) VOLUME(S4RES1)
APF ADD
Start et stop DB2 DSNAME(CSQ531.SCSQMVR2) VOLUME(S4RES1)
-START DB2
APF ADD
DSNAME(DSN710.SDSNLOAD) VOLUME(S4DB21)
-STOP DB2 MODE(QUIESCE)
-STOP DB2 MODE(FORCE) avec les
STEPLIB de la proc CSQ1MSTR

Installation WebSphere MQ for Z/OS


instructions trouvées sur http://publibfp.boulder.ibm.com/epubs/pdf/i1025483.pdf ajouter les MODULES(CSQ3EPX,CSQ3INI)dans ADCD.ZOSV14S.PARMLIB(IEALPADI)
fichier de distribution correspondant aux jcl d'installation sous la forme :
CSQ531.ACSQINST INCLUDE LIBRARY(CSQ531.SCSQLINK)
procedure à suivre page 37 MODULES(CSQ3EPX,
CSQ3INI)
JCL de customisation CSQ531.ACSQINST(CSQ8SYSJ)
Normalement il faut aussi le faire pour
(CSQ3EMX),DSNAME=CSQ531.SCSQLNLx où x est le langage local installé (pas sur hercules
ADCD)

Mise en œuvre Hercules & z/OS - Page - 9 - Mise en œuvre Hercules & z/OS - Page - 10 -
Mise à jour de la PPT // DD DSN=CSQ531.CSQ1.SCSQAUTH,DISP=SHR
Ajouter à la fin de ADCD.ZOSV14S.PARMLIB(SCHED00) // DD DSN=CSQ531.SCSQANLE,DISP=SHR
// DD DSN=CSQ531.SCSQAUTH,DISP=SHR
PPT PGMNAME(CSQYASCP) /* CSQ - THIS IS REQUIRED FOR WEBSPHERE MQ */ // DD DSN=CEE.SCEERUN,DISP=SHR
CANCEL /* CAN BE CANCELLED */ // DD DSN=DSN710.SDSNLOAD,DISP=SHR
KEY(7) /* STORAGE PROTECTION KEY */
SWAP /* PROGRAM IS SWAPPABLE */
NOPRIV /* NOT PRIVILEGED */
DSI /* REQUIRES DATA SET INTEGRITY*/ Modifier le nom de la INITQ du bridge CICS dans CSQ531.CSQ1.SCSQPROC(CSQ4INYG) comme
PASS /* NOT ALLOWED TO BYPASS PASS PROT */ suit: (à la place de CICSA.INITQ)
SYST /* SYSTEM TASK SO NOT TIMED */ DEFINE QLOCAL( 'CICS01.INITQ' ) +
AFF(NONE) /* NO PROCESSOR AFFINITY */ QSGDISP( QMGR ) +
NOPREF /* NO PREFERRED STORAGE FRAMES */ on puut le faire en ligne de commande

Define a Local Queue - 1


Mise à jour de la table des sous systems
déjà faite dans ADCD.ZOSV14S.PARMLIB(IEFSSNIM) Complete fields, then press F8 for further fields, or Enter to define queue.
SUBSYS SUBNAME(CSQ1) /* MQ CSQ1 SUBSYSTEM */
INITRTN(CSQ3INI) INITPARM('CSQ3EPX,%CSQ1,M') More: +
Queue name . . . . . . . . . CICS01.INITQ
Disposition . . . . . . . . . Q G=Group, S=Shared, Q=Qmgr on CSQ1
Description . . . . . . . . . CKTI initiation queue
Command name prefix
Put enabled . . . . . . . . . Y Y=Yes, N=No
/DISPLAY OPDATA donne le résultat suivant: (%CSQ1 est le préfixe de MQ) Get enabled . . . . . . . . . Y Y=Yes, N=No
Usage . . . . . . . . . . . . N N=Normal, X=XmitQ
Storage class . . . . . . . . SYSVOLAT
RESPONSE=P390 CF structure name . . . . . .
IEE603I 12.46.27 OPDATA DISPLAY 113
PREFIX OWNER SYSTEM SCOPE REMOVE FAILDSP
$ JES2 P390 SYSTEM NO SYSPURG
%CSQ1 CSQ1 P390 SYSTEM NO PURGE 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
Procedure de démarrage de MQ
dans ADCD.ZOSV14S.PROCLIB(CSQ1MSTR) et CSQ1CHIN
La commande de démarrage de MQ à la console MVS est Browse des Queues MQ
%CSQ1 START QMGR
%CSQ1 START CHINIT Sous le user P390 option 6 lancer :
ex 'csq531.SCSQclst(csq4rch1)'
avec les infos suivantes :(attention case sensitive)
Arret MQ
Queue Manager Name : CSQ1 :
par Queue Name : JRULES.TARGET.QUEUE :
%CSQ1 STOP CHINIT
%CSQ1 STOP QMGR MODE=FORCE

À noter que l’outil fait un MQOPEN en mode exclusif, donc ne partage pas l’ouverture
Administration MQ via le user P390 commande CSQOREXX simultanée avec un autre (code 2042: Object in use)

maj de la proc de logon de P390 ADCD.ZOSV14S.PROCLIB(DBSPROC) par ajout des lib


suivantes à ISPLLIB

Mise en œuvre Hercules & z/OS - Page - 11 - Mise en œuvre Hercules & z/OS - Page - 12 -
------------- IBM WebSphere MQ for z/OS -- Sample Programs - Row 1 to 13 of 15 ------------- IBM WebSphere MQ for z/OS -- Sample Programs - Row 1 to
COMMAND ==> COMMAND ==>

Queue Manager : CSQ1 : Queue Manager : CSQ1 :


Queue : CSQ1.DEAD.QUEUE : Queue : CSQ1.DEAD.QUEUE :
Forward to Q Mgr : CSQ1 :
Message number 01 of 15 Total Msgs : 000000015 Forward to Queue : AMQ.BFC7283E987B1000 :

Msg Put Date Put Time Format User Put Application Action : : (D)elete (F)orward
No MM/DD/YYYY HH:MM:SS Name Identifier Type Name
01 11/29/2006 12:51:53 MQDEAD START2 00000028 WebSphere MQ Client Message Content :
02 11/29/2006 15:41:47 MQDEAD START2 00000028 WebSphere MQ Client ----------------------------------------------------------------------
Message Descriptor
StrucId : 'MD '
Placer le curseur sur une ligne pour voir son détail (PF8 pour la suite) 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 '.... ....'

Mise en œuvre Hercules & z/OS - Page - 13 - Mise en œuvre Hercules & z/OS - Page - 14 -
Démarrage de CICS
S CICSA
CICS Cette procédure se trouve dans ADCD.ZOSV14S.PROCLIB(CICSA)

Mise en œuvre de CICSA


- problème de SVC 216 non installée (msg DFHKE014) arrêt de CICS
par 'F CICSA,CEMT PERF SHUT IMMED'
Installer Type3 SVC ou directement CEMT PERF SHUT IMME sur un terminal connecté à CICS
voir
http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31. DFHKE0101 DBDCCICS DFHSIP IS NOT APF-AUTHORIZED
doc/dfhg4/dfhg4b0071.htm It looks like your assembled SIT table's load module is not in the STEPLIB
1. copier de CICSTS22.CICS.SDFHLPA(DFHCSVC) vers ADCD.ZOSV14S.LPALIB(DFHCSVC) concatenation...
2. Ajouter le module DFHCSVC dans ADCD.ZOSV14S.PARMLIB(IEALPADI) j'ai vérifié, mais ça veut aussi dire que tous les modules soit ne sont pas autorisés,
3. ajouter la SVC 216 dans ADCD.ZOSV14S.PARMLIB(IEASVCIM)SVCPARM soit qu'il en manque, soit qu'ils ne sont pas en LPA, soit qu'on a pas encore fait IPL
216,REPLACE,TYPE(3),EPNAME(DFHCSVC) /* CICS SVC */ CLPA
4. Mettre la librarie de la SIT en APF (programmes autorisés) dans
ADCD.ZOSV14S.PARMLIB(PROGIM) Pour faire IPL CLPA démarrer hercules une fois avec LOADPARM 0A82CS..
5. ajouter APF ADD DSNAME(CICSTS22.CICS.SDFHAUTH)
VOLUME(S4CIC1)
6. mettre a jour la linklst LNKLST ADD NAME(LNKLST00) DSN(CICSTS22.CICS.SDFHLPA) Activation du bridge MQ-CICS
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. activer TCPIP dans CICS
During initialization, CICS may not have access to the user's applid coded in the SIT. activer TCPIP=YES dans CICSTS22.SYSIN(DFH$SIP1)
If CICS produces this message in these circumstances, it uses the default applid value CSV031I LIBRARY ACCESS FAILED FOR MODULE CEEEV003, RETURN CODE 24, REASON CODE 2
DBDCCICS. mettre REG='64M' dans les paramètres de démarrage du CICSA - ADCD.ZOSV14S.PROCLIB(CICSA)

ajouter la librairie de LPA CICS à MVS http://publib.boulder.ibm.com/infocenter/cicsts/v2r2/topic/com.ibm.cics.ts22.doc/dfhtm/d


CICSTS22.CICS.SDFHLPA, dans ADCD.ZOSV14S.PARMLIB(LPALSTIM) fhtmgm.htm#dfhtmgm
//IBMUSERB JOB (20,FB3),TRALEY,REGION=4M,
définir un fichier DFHBRNSF (unicité du token sur l'allocate à travers le bridge)
// 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 - 15 - Mise en œuvre Hercules & z/OS - Page - 16 -
//DEFDS JOB accounting info,name,MSGCLASS=A CEDA View TCpipservice( MONTCP )
//TDINTRA EXEC PGM=IDCAMS TCpipservice : MONTCP
//SYSPRINT DD SYSOUT=A GROup : GRSCORT
//SYSIN DD * DEscription : LISTENER TCP POUR CTG
DEFINE CLUSTER(NAME(CICSTS22.CICS.DFHBRNSF)- Urm :
INDEXED- POrtnumber : 01435 1-65535
TRK(1 1)- STatus : Open Open ! Closed
RECORDSIZE(384 384)- PRotocol : Eci Iiop ! Http ! Eci
KEYS(13 20)- TRansaction : CIEP
FREESPACE(0 50)- Backlog : 00010 0-32767
SHAREOPTIONS(2 3)- TSqprefix :
LOG(NONE)- Ipaddress : ANY On a qu'une seule adresse dans TCPIP hercules
VOLUME(S4CIC1)- SOcketclose : No No ! 0-240000 (HHMMSS)
CISZ(512)) - SECURITY
DATA (NAME(CICSTS22.CICS.DFHBRNSF.DATA)- SSl : No Yes ! No ! Clientauth
CISZ(512)) - Certificate :
INDEX (NAME(CICSTS22.CICS.DFHBRNSF.INDEX)- AUthenticate : No ! Basic ! Certificate ! AUTORegister
CISZ(512)) + ! AUTOMatic
/*
//

Enfin ajouter la commande d'installation


CEDA INS TCPIPSERVICE(montcp) GROUP(grscort)
suivi d'un arrêt relance de CICS (??)

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 définition du CICS Gateway
CEDA ADD GROUP(DFHBRVSL) LIST(XYZLIST) pour le prendre en compte au prochain démarrage remplacer les ++hlq ... dans CSQ531.SCSQPROC(CSQ4S100)
CEMT SET FILE(DFHBRNSF) OPEN ENABLED >>>>>>> OPEN/CLOSE FAILED DESCRIPTION(CREDIT CHECK SAMPLE - ACCOUNT FILE)
Ajouté dans la proc de démarrage de CICSA
DSNAME(CICSTS22.CSQ1.ACCTFIL) LSRPOOLID(1)
RECORDSIZE(80) KEYLENGTH(10)

//DFHBRNSF DD DISP=SHR, puis soumettre le job IBMUSER.LIB.JCL(DFHCSDUP) suivant:


// DSN=&INDEX2..DFHBRNSF
//* DATASETS FOR LINK3270 support
Activation de l’interface RACF CICS
après redémarrage les 2 commandes ci dessus sont OK RDEFINE STARTED CICSA.CICSA STDATA(USER(CICSA))
CEMT SET FILE(DFHBRNSF) OPEN ENABLED >>>>>>> NORMAL setropts raclist(started) refresh
RDEFINE ACICSPCT(C*) UACC(READ)

Autoinstall du bridge
Autoinstall du bridge par ajout de ADDUSER CICSA DFLTGRP(SYS1) NAME(CICSUser) OWNER(IBMUSER) PASSWORD(SYS1) CICS
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:

Mise en œuvre Hercules & z/OS - Page - 17 - Mise en œuvre Hercules & z/OS - Page - 18 -
//IBMUSERB JOB (20,FB3),TRALEY,REGION=4M, compilation CICS - exemple pour Call Out
// CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID,COND=(0,NE) ADCD.ZOSV14S.PROCLIB(IGYWCL) ajout de
//STEP1 EXEC PGM=DFHCSDUP,REGION=0M, //STEPLIB DD DSNAME=CICSTS22.CICS.SDFHLOAD,DISP=SHR
// PARM='CSD(READWRITE),PAGESIZE(60),NOCOMPAT'
//STEPLIB DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR JCL de Compilation : metre à jour le nom de programme en gras
//*******************************************************************
//* DEFINITION DES GROUPES DE RESSOURCES CICS GATEWAY
//* //CICSCOB JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),
//* // REGION=0M,NOTIFY=&SYSUID
//******************************************************************* //CICSCOB EXEC DFHYITVL,OUTC=*
//* DD DSN=CICSTS22.CICS.USERLIB.TABLES,DISP=SHR //*
//DFHCSD DD UNIT=SYSDA,DISP=SHR,DSN=CICSTS22.CICS.DFHCSD //* PRECOMPILE, COMPILE, REBLOCK ET LINKEDIT DES SOURCES COBOL
//SECNDCSD DD UNIT=SYSDA,DISP=SHR,DSN=CICSTS22.CICS.FILEA //* POUR SAMPLES MQ PUT ET GET SIMPLES EN COBOL
//*`INDD DD UNIT=SYSDA,DISP=SHR,DSN=EXTRACT.INPUT.DATASET //* PROCEDURE APPELEE: ADCD.ZOSV14S.PROCLIB(DFHYITVL)
//*OUTDD DD UNIT=SYSDA,DISP=SHR,DSN=EXTRACT.OUTPUT.DATASET //*
//SYSPRINT DD SYSOUT=* //* POUR MQ AJOUTER EN FIN DE SYSIN
//SYSIN DD DSN=CSQ531.SCSQPROC(CSQ4B100),DISP=SHR //* INCLUDE CSQSTUB(CSQBSTUB)
// DD DSN=CSQ531.SCSQPROC(CSQ4D100),DISP=SHR //*
// DD DSN=CSQ531.SCSQPROC(CSQ4S100),DISP=SHR //*TRN.SYSIN DD DISP=SHR,DSN=CSQ531.SCSQCOBS(CSQ4CVJ1)
// DD * //TRN.SYSIN DD DISP=SHR,DSN=IBMUSER.LIB.COBOL(CSQ4CVK2)
ADD GROUP(CSQCAT1) LIST(CICSGW) //*
ADD GROUP(CSQKDQ1) LIST(CICSGW) //* WEBSPHERE MQ FOR Z/OS LIBRARY CONTAINING CICS STUB
ADD GROUP(CSQ4SAMP) LIST(CICSGW) //*
// //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)
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) Pour prendre en compte le nouveau module dans CICS faire
CEMT SET PROG(CSQ4CVK2) NEWCOPY
//STEPLIB DD DSN=&INDEX2..SDFHAUTH,DISP=SHR Avant de relancer la transaction
// DD DSN=CEE.SCEERUN,DISP=SHR
// DD DSN=CSQ531.SCSQAUTH,DISP=SHR
// DD DSN=CSQ531.SCSQCICS,DISP=SHR Lancer la connexion avec le bridge par CKQC
//DFHRPL DD DSN=&INDEX2..SDFHLOAD,DISP=SHR option start
// DD DSN=CEE.SCEECICS,DISP=SHR name csq1
// DD DSN=CEE.SCEERUN,DISP=SHR
// DD DSN=CSQ531.SCSQANLE,DISP=SHR démarrage automatique :
http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqsav.doc/csqsav04
47.htm

une fois CICS démarré , se connecter à CICS et passer les commandes suivantes
CEDA INSTALL GROUP(CSQCAT1) Lancement des Samples MQ
CEDA INSTALL GROUP(CSQKDQ1)
CEDA INSTALL GROUP(CSQ4SAMP) voir http://www-1.ibm.com/support/docview.wss?rs=203&uid=swg24000071&loc=en_US&cs=utf-
CEDA INSTALL GROUP(CSQCKB) 8&lang=en
Les librairies sont installées dans
pour installer automatiquement les ressources CSQ dans le startup de CICS CSQ531.SCSQCLST
voir GRPLIST=(XYZLIST), dans CICSTS22.SYSIN(DFH$SIP1) CSQ531.SCSQCOBC
CEDA ADD GROUP(CSQCAT1) list(XYZLIST) CSQ531.SCSQCOBS
CEDA ADD GROUP(CSQKDQ1) list(XYZLIST) CSQ531.SCSQLOAD
CEDA ADD GROUP(CSQ4SAMP) list(XYZLIST)
CEDA ADD GROUP(CSQCKB) list(XYZLIST)

Mise en œuvre Hercules & z/OS - Page - 19 - Mise en œuvre Hercules & z/OS - Page - 20 -
Paramétrage des clists dans CSQ531.SCSQCLST Test du Call Out depuis CICS
ISPEXEC LIBDEF ISPLLIB DATASET ID('CSQ531.SCSQLOAD')
ISPEXEC LIBDEF ISPPLIB DATASET ID('CSQ531.SCSQPNLA') Définition des ressources CICS
ISPEXEC LIBDEF ISPMLIB DATASET ID('CSQ531.SCSQMSGE')
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
SAMPLES MQ – CICS (base du call out) même Correlation-id
Les sources en gras ont servis pour faire le sample Call Out sous CICS
Définir la transaction de test via CEDA :
Table 35. CICS Put and Get samples
1. définir le PROGRAM CSQ4CVK2
Member For language Description Source Executable 2. copie de la transaction MVPT en SCPT dans le groupe CSQ4SAMP puis remplacer le PROGRAM
name supplied in supplied in CSQ4CVK1 en CSQ4CVK2
library library

CSQ4CCK1 C Source program SCSQC37S SCSQCICS

CSQ4CCJ1 C Source program SCSQC37S SCSQCICS Définition des ressources MQ pour Call Out
Définir un channel de type SVRCONN et 2 queues sur le central
CSQ4CVJ1 COBOL Source SCSQCOBS SCSQCICS
program
*
* DEFINITION DE LA LOCAL QUEUE FOR INQUIRE JRULES
CSQ4CVK1 COBOL Source SCSQCOBS SCSQCICS
*
program
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) -
CSQ4S100 independent CICS system SCSQPROC None
MAXDEPTH(10000) MAXMSGL(4000)
definition data
*
set
* DEFINITION DE LA LOCAL QUEUE FOR REPLY BY JRULES
*
DEF QL(JRULES.REPLY.QUEUE) QSGDISP(QMGR) REPLACE USAGE(NORMAL) -
Lancement de la transaction sample PUT et GET ci-dessus DESCR( 'TARGET QUEUE ON CSQ1 FOR JRULES') PUT(ENABLED) DEFPSIST(NO) -
GET(ENABLED) SHARE DEFSOPT(SHARED) MSGDLVSQ(PRIORITY) -
MVPT,1,*,10,P,JRULES.TARGET.QUEUE insère un msg paddé à 10 ’*’ MAXDEPTH(10000) MAXMSGL(4000)
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 * 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')
*
CICS BMS reverse utility * DEFINITION DU CHANNEL RECEIVER SUR HOST CICS
pour décompiler des BMS format load vers un format source *
IBMUSER.LIB.JCL(DFHBMSUP) DEFINE CHANNEL(JRULES.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) +
//RUNPROG EXEC PGM=DFHBMSUP,PARM='CSQ4CCM',REGION=2M DESCR('SERVER-CONNECTION FOR JRULES')
//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=*

Test du call out


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

Mise en œuvre Hercules & z/OS - Page - 21 - Mise en œuvre Hercules & z/OS - Page - 22 -
SCPT,BUFFER on met ce qu’on veut Appel avec MFS
/for ivtnv

PSB IMS810.SDFSISRC(DFSIVP2)
MFS IMS810.SDFSISRC(DFSIVF2)
IMS IVP Sample Application ASM IMS810.SDFSISRC(DFSIVA2)

Transactions de test sous IMS IMS Sample Inventory

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

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
Transaction Online Function
pour démarrer PART Inquire about a part and its description.
/for ivtcx ou DSPALLI Inquire about a part’s inventory, cycle count, and back-order information.
ivtcx suivi de 2 blanc mini Inquire about a part’s total inventory in all locations or by specific inventory
puis envoyer 4 blancs suivi de END suivi de 5 blancs mini (bbbbENDbbbbb) DSPINV 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.
Transaction IVTNV
Transaction Non Conversationnelle VSAM
Appel sans MFS
ivtnv dis ansart

Mise en œuvre Hercules & z/OS - Page - 23 - Mise en œuvre Hercules & z/OS - Page - 24 -
Part Number AB960C10 Deleted From Data Base

Exemples : close AN960C10,28009126,15,15


dspalli AN960C10 Update Complete

Part=AN960C10; Desc=WASHER; Proc Code=74 dspinv AN960C10,28009126


Part........... AN960C10; Desc........... WASHER
Area Inv Proj Div Unit Current On In Total Count Back Proc........... 74; Area........... 2
Dept CD Price Reqmts Order Stock Disburse Taken Ordr Inv Dept....... 80; Prj............ 091
---- ---- --- --- ----- ------ ----- ----- -------- ----- ---- Div............ 26; Price.......... 0.000
1. AA 165 11 0.000 146 20 126 104 No 0 Stk Ct Date.... 513; Unit........... EACH
2. AK 287 7F 0.000 88 0 88 37 No 0 Curr Reqmts.... 630; On Order....... 0
3. 2 80 091 26 0.000 630 15 680 1157 No 0 Total Stock.... 695; Disb Planned... 1053
Disb Unplanned. 104; Stk Ct Variance 0
disburse AN960C10,28009126,U,10
Update Complete

dspinv AN960C10,28009126
part AN960C10 Part........... AN960C10; Desc........... WASHER
Proc........... 74; Area........... 2
Part........... AN960C10; Desc........... WASHER Inv Dept....... 80; Prj............ 091
Proc Code...... 74; Inv Code....... 2 Div............ 26; Price.......... 0.000
Make Dept...... 12-00; Plan Rev Num... Stk Ct Date.... 513; Unit........... EACH
Make Time...... 63; Comm Code...... 14 Curr Reqmts.... 630; On Order....... 0
Total Stock.... 685; Disb Planned... 1053
dspinv AN960C10,28009126 Disb Unplanned. 114; Stk Ct Variance 0

Part........... AN960C10; Desc........... WASHER Liste des Parts Numbers


Proc........... 74; Area........... 2
Inv Dept....... 80; Prj............ 091 AN960C10
Div............ 26; Price.......... 0.000 7438995P002
Stk Ct Date.... 513; Unit........... EACH 3003806 *
Curr Reqmts.... 630; On Order....... 15 7618032P101 *
Total Stock.... 680; Disb Planned... 1053
3007228
Disb Unplanned. 104; Stk Ct Variance 0
922399-001
3013412
addpart AB960C10,RIVET,74 82125-869
Part Number AB960C10 Added To Data Base 652799

addinv AB960C10,80091260
Inventory 80091260 Added To Part Number AB960C10

dspinv AB960C10,80091260
Part........... AB960C10; Desc........... RIVET
Proc........... 74; Area........... 8
Inv Dept....... 00; Prj............ 912
Div............ 60; Price.......... 0.000
Stk Ct Date.... ; Unit...........
Transaction de test IMS-DB2 DSN8CS
Curr Reqmts.... 0; On Order....... 0 Transaction avec accès DB2 non conversationnelle démarrée par le transaction name ou par /for DSN8ICGO
Total Stock.... 0; Disb Planned... 0 Le mode d’emploi est le même que sous CICS (documentation ci-jointe D8SC)
Disb Unplanned. 0; Stk Ct Variance 0 Installation décrite en annexes

dletinv AB960C10,80091260
Inventory 80091260 Deleted From Part Number AB960C10 D8SC Sample
Transaction.doc
dletpart AB960C10

Mise en œuvre Hercules & z/OS - Page - 25 - Mise en œuvre Hercules & z/OS - Page - 26 -
Interface IMS - DB2 et installation du sample DISPLAY résumé des class FACILITY pour le Bridge :
IMS810.PROCLIB(DFSPBIV1) avec SSM=V810,
CLASS NAME
IMS810.PROCLIB(IVP1V810) avec SST=DB2,SSN=DSN1,LIT=SYS1,ESMT=DSNMIN10,CRC=- ----- ----
IMS810.PROCLIB(IMS81CR1) avec // RGSUF=IV1,PARM1='SSM=V810',PARM2= FACILITY IMSXCF.IVP1OTMA.CSQ1
Exécuter DSN710.SDSNSAMP(DSNTEJ4C) (voir annexes)
LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING
----- -------- ---------------- ----------- -------
En cas d’erreur SQL au démarrage de la transaction faire un start du subsystem à la 00 P390 NONE ALTER NO
console : USER ACCESS ACCESS COUNT
R nn,/START SUBSYS DSN1 ---- ------ ------ -----
P390 ALTER 000000
SYS1 READ 000000
START2 READ 000000
Activation du bridge MQ-IMS CSQ1MSTR READ 000000

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 CLASS NAME
----- ----
FACILITY IMSXCF.IVP1OTMA.IMSMEM
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 LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING
----- -------- ---------------- ----------- -------
00 P390 NONE NONE NO
Assembler le source CSQ531.SCSQASMS(CSQQDEFV) contenant les littéraux CSQ1 et MQM1 avec la USER ACCESS ACCESS COUNT
procédure CSQ531.SCSQPROC(CSQ4DEFV) ---- ------ ------ -----
IBMUSER NONE 000000
SYS1 NONE 000000
Activation de la sécurité pour le bridge MQ-IMS CSQ1MSTR NONE 000000

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 Sur Hercules , la connexion du Bridge MQ-IMS ne fonctionne que avec un /SECURE OTMA NONE
Ajouter le groupe SYS1 en accès READ sur IMSXCF.IVP1OTMA.IMSMEM 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
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 Pour info : Sample JCL pour linkedit des applis IMS qui veulent appeler MQ Dynamiquement

Mise en œuvre Hercules & z/OS - Page - 27 - Mise en œuvre Hercules & z/OS - Page - 28 -
//DYNSTUB EXEC PGM=IEWL,PARM=’RENT,REUS,MAP,XREF’ Storage class name . . . . . IMSBRDG
//SYSPRINT DD SYSOUT=* Disposition . . . . . . . . : QMGR CSQ1
//ACSQMOD DD DISP=SHR,DSN=thlqual.SCSQLOAD Description . . . . . . . . : Storage class pour Brige MQ-IMS
//IMSLIB DD DISP=SHR,DSN=ims.reslib Page set identifier . . . . : 1 0 - 99
//SYSLMOD DD DISP=SHR,DSN=private.load¹
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,1)
XCF group name . . . . . . : IVP1OTMA
//SYSLIN DD * XCF member name . . . . . . : CSQ1
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 Figure 1: Définition de la Storage Class associée au groupe XCF de IMS
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 Définition du Trigger Monitor
ALIAS DFSASM,ASMTDLI IMS entry points Queue name . . . . . . . . . IVP1.INITQ
ALIAS DFSPASCL,PASTDLI IMS entry points Disposition . . . . . . . . . Q G=Group, S=Shared, Q=Qmgr on CSQ1
ALIAS DFHEI01,DFHEI1 IMS entry points Description . . . . . . . . . IMSBRDG initiation queue
ALIAS DFSAIBLI,AIBTDLI IMS entry points Put enabled . . . . . . . . . Y Y=Yes, N=No
ALIAS DFSESS,DSNWLI,DSNHLI IMS entry points Get enabled . . . . . . . . . Y Y=Yes, N=No
MODE AMODE(31),RMODE(ANY) Note RMODE
Usage . . . . . . . . . . . . N N=Normal, X=XmitQ
NAME CSQQDYNS(R)
/* Storage class . . . . . . . . IMSBRDG
CF structure name . . . . . .

Définir le Bridge IMS dans le CSQ1MSTR


Figure 2: définition de l'Init Queue du Trigger monitor
Créer un CSQ4ZPR2 en remplacement de CSQ4ZPRM (démarrage par défaut de MQ) pour ajouter les
Définition de la locale Queue pour les messages input vers IMS en utilisant l’option DEFINE LIKE de la
paramètres du bridge MQ/OTMA (le nom du groupe XCF à joindre au démarrage) SYSTEM.CICS.BRIDGE.QUEUE
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

Mise en œuvre Hercules & z/OS - Page - 29 - Mise en œuvre Hercules & z/OS - Page - 30 -
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 MQIIH Header :
Page set identifier . . . . : http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.csqzak.d
Use counts - Output . . . . : 0 Input . . . . : 0 oc/mqiih.htm
Current queue depth . . . . : 0
Default bind . . . . . . . : O O=Open, N=Notfixed
Default persistence . . . . : Y Y=Yes, N=No
Default priority . . . . . : 0 0 - 9 Activation de la sécurité RACF pour IMS
Message delivery sequence . : F P=Priority, F=FIFO
Permit shared access . . . : Y Y=Yes, N=No RDEFINE TIMS * UACC(ALTER)
Default share option . . . : E E=Exclusive, S=Shared SETROPTS RACLIST(TIMS)
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 IMS810.INSTALIB(IV3C201T) pour faire valider l’accès aux transactions par RACF
Trigger type . . . . . . : F F=First, E=Every, D=Depth, N=None SECURITY TYPE=(AGNEXIT,RACFTERM,NOTRANEX,NOSIGNEX), X
Trigger set . . . . . . : Y Y=Yes, N=No SECLVL=(TRANAUTH,SIGNON), X
Trigger message priority : 0 0 - 9
TERMNL=YES, X
Trigger depth . . . . . : 1 1 - 999999999
SECCNT=2, X
Initiation queue . . . . : IVP1.INITQ
PASSWD=YES, X
Process name . . . . . . : TRANCMD=YES
Trigger data . . . . . . :

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 Ajouter/modifier IMS810.PROCLIB(DFSPBIV1) pour que /SIGN soit validé par RACF

CLASS NAME RCF=T,


----- ---- RVFY=Y,
FACILITY IMSXCF.IVP1OTMA.CSQ1 SGN=Y,
LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING
----- -------- ---------------- ----------- -------
00 P390 NONE ALTER NO Lancer un archive pour IMS
DFS3258A SYSTEM WAITING FOR AN ONLINE LOG DATA SET - NEED ARCHIVE
USER ACCESS ACCESS COUNT Au message ci-dessus il faut archiver
---- ------ ------ -----
P390 ALTER 000000 IMS810.JOBS(GENJCL)
SYS1 READ 000000

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)

Mise en œuvre Hercules & z/OS - Page - 31 - Mise en œuvre Hercules & z/OS - Page - 32 -
IBMUSER.LIB.JCL(STAGE1O) jobs générés par STAGE1 il faut releaser les jobs 1 à 1 par la
commande A sous SDSF edit IV3C201T C2 TASK - Browse the STAGE1 Source Deck
IBMUSER.LIB.JCL(OLCUTL) Online Change après que la sysin iv3c201t a été modifiée :
IMS810.INSTALIB(IV3E314J) SMU à passer pour remettre la sécurité Exécuter la phase 1 iv3c203J
Puis sous IMS /MOD PREPARE ALL suivi de /MOD COMMIT executer phase 2 IV3C301J
Exécuter IV3E314J E3 JOB - Establish IMS Security
********************************************************************** PSBGEN ajouter les nouveaux PSB
* TRANSACTIONS DE TEST POUR SCORT
********************************************************************** //DFSIVP1 EXEC PROC=PSBGEN,MBR=TLOAV,SOUT='*'
SPACE 2 //C.SYSIN DD *
APPLCTN PSB=TEST1,PGMTYPE=TP PCB TYPE=TP,MODIFY=YES,ALTRESP=YES
TRANSACT CODE=TESTNR1,MODE=SNGL, X PSBGEN PSBNAME=TLOAV,LANG=COBOL
MSGTYPE=(SNGLSEG,NONRESPONSE,1) END
TRANSACT CODE=TESTR1,MODE=SNGL, X
MSGTYPE=(SNGLSEG,RESPONSE,1) et exécuter IMS810.INSTALIB(IV3E202J) pour ne prendre que les PSB nouveaux
SPACE
APPLCTN GPSB=TEST2,LANG=COBOL,PGMTYPE=TP ACBGEN modifier pour ajouter le build du PSB
TRANSACT CODE=TESTNR2,MODE=SNGL, X
MSGTYPE=(SNGLSEG,NONRESPONSE,1)
SPACE (BUILD PSB=TLOAV )
APPLCTN PSB=TEST3,PGMTYPE=TP
TRANSACT CODE=TESTNR3,MODE=SNGL, X
MSGTYPE=(SNGLSEG,NONRESPONSE,1) et executer IV3E203J E2 JOB - ACBGEN
SPACE
APPLCTN PSB=TEST4,PGMTYPE=TP Exécuter IV3E316J E3 JOB - Copy Staging Libraries
TRANSACT CODE=TESTC,SPA=(1000),MODE=SNGL, X
MSGTYPE=(SNGLSEG,NONRESPONSE,1)
SPACE
APPLCTN PSB=TEST5,PGMTYPE=TP HDAM/VSAM-JAVA
Création de formats nouveaux et online change
TRANSACT CODE=TESTJ,MODE=SNGL, X
MSGTYPE=(SNGLSEG,NONRESPONSE,1) Modifier IV3E204J pour ajouter les nouveaux formats dans IMS810.FORMAT
Vérifier la création du nouveau format par exemple comme ceci

DFS1048I MOMO15 MSG SIZE=0332 DATE=07/30/07 TIME=11.28.20 CREATED.


Définition de codes transactions nouveaux DFS1010I MOMG15 DOF 3270 027F IGNORE HAS BEEN DELETED - FORMAT
DFS1010I MOMG15 DIF 3270 027F IGNORE HAS BEEN DELETED - FORMAT
Dépannage Avec JJ Perrin 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.
ex 'ims810.SDFSEXEC(dfsappl)' 'ims810' 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.
------------------------------------------------------------------------------
IMS Application Menu
Command ===>
Chercher la librairie de formats en ligne pour préparer le switch par la commande MODIFY
Select the desired application and press Enter.
R 80,/MODIFY PREPARE FMTLIB
IEE600I REPLY TO 80 IS;/MODIFY PREPARE FMTLIB
DFS3499I ACTIVE DDNAMES: MODBLKSA IMSACBA FORMATA MODSTAT
1. Installation Verification Program (IVP)
2. Partition Definition Utility (HALDB)
3. Syntax Checker for IMS parameters copier par 3.3 tous les éléments de IMS810.FORMAT vers IMS810.FORMATx (ici B puisque A
4. Single Point of Control (SPOC) est en ligne)
5. IPCS
R 81,/MODIFY COMMIT
IEE600I REPLY TO 81 IS;/MODIFY COMMIT
To exit the application, press F3. DFS3499I ACTIVE DDNAMES: MODBLKSA IMSACBA FORMATB MODSTAT

options 1, 3 puis enter Se connecter à IMS et tester par la commande /for MOMO15 (dans l’exemple ci-dessus)
options 2 , 6

Mise en œuvre Hercules & z/OS - Page - 33 - Mise en œuvre Hercules & z/OS - Page - 34 -
MOUNT FILESYSTEM('IMS810.SDFSHFS')
TYPE(HFS)
Mise en place de DFSINSX MODE(RDWR)
Question : comment avoir « Invalid destination » lorsqu’on tape un code transaction MOUNTPOINT('/usr/lpp/ims')
erroné ? pour cela il faut installer et configurer l’exit DFSINSX0 IPCSEMNSEMS(35)

Purger msg sur term async : Afficher les MOUNT UNIX Services
F BPXOINIT,FILESYS=DISPLAY,ALL
/STO USER toto
/DEQ USER toto PURGE
/STA USER toto installer imsjava81
/che Executer IMS810.SDFSBASE(DFSJSMKD) qui installe imsjava81
//IKJEFT01 EXEC PGM=IKJEFT01
//SYSEXEC DD DSN=IMS810.SDFSBASE,
IMS ne démarre plus // DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
Stopper IMS81OM1 IMS81RL1 IMS81RM1 IMS81SC1 PROF MSGID
Faire un 3.2 sur IMS810.RDS DFSJMKDR /V1R4S
Le deleter puis le réallouer
Ce job crée le lien symbolique libJavTDLI.so -> DFSCLIB
Data Set Name . . . : IMS810.RDS
Exécuter IMS810.JOBS(TCHMOD)
Volume serial . . . : S4IMS1 Allocated tracks . : 5
Device type . . . . : 3390 Allocated extents . : 1 //TCHMOD PROC TPARM=
Organization . . . : PS //BPX EXEC PGM=BPXBATCH,PARM='&TPARM'
Record format . . . : FBS //SYSPRINT DD SYSOUT=*
Record length . . . : 4096 //STDOUT DD PATH='/V1R4S/usr/lpp/ims/tchmod.out',
Block size . . . . : 4096 Current Utilization // PATHOPTS=(OWRONLY,OCREAT,OTRUNC),PATHMODE=SIRWXU
1st extent tracks . : 5 Used tracks . . . . : 5 //STDERR DD PATH='/V1R4S/usr/lpp/ims/tchmod.out',
Secondary tracks . : 0 Used extents . . . : 1 // PATHOPTS=(OWRONLY,OCREAT,OTRUNC),PATHMODE=SIRWXU
// PEND
//STEP1 EXEC TCHMOD,TPARM='sh touch /V1R4S/usr/lpp/ims/JVM.out'
Passer les jobs suivants depuis la clist ‘ims810.SDFSEXEC(dfsappl)' 'ims810' //*
//STEP2 EXEC TCHMOD,
IV3H101J H1 JOB - Allocate Data Sets // TPARM='sh chmod 777 /V1R4S/usr/lpp/ims/JVM.out'
IV3H102J H1 JOB - Initialize RECON / Register Data Bases //*
//STEP3 EXEC TCHMOD,TPARM='sh touch /V1R4S/usr/lpp/ims/JVM.err'
Redémarrer IMS //*
//STEP4 EXEC TCHMOD,TPARM='sh chmod 777 /V1R4S/usr/lpp/ims/JVM.err'
IMSJAVA installation & mise en oeuvre
Les jobs d’installation: Modifier IMS810.PROCLIB(DFSJMP) pour ajouter ceci
lancer IMS810.SDFSSMPL(DFSJDDDF) avec hlqual = IMS810 //JAVAOUT DD PATH='/V1R4S/usr/lpp/ims/JVM.out'
//JAVAERR DD PATH='/V1R4S/usr/lpp/ims/JVM.err'

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) Verifier le JDK 1.3


P390:/: >PATH=/usr/lpp/Printsrv/bin:/bin:.:/usr/lpp/java/IBM/J1.3/bin
IMS810.SDFSSMPL(DFSJDDDF) P390:/: >export PATH
IMS810.JOBS(HFSMOUNT) P390:/: >java -version
http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.ims.doc.jgr/running java version "1.3.1"
jmpivp.htm 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))
Mount
permanent du HFS IMSJAVA dans ADCD.ZOSV14S.PARMLIB(BPXPRM00) JVMST039:Cannot allocate Shared Memory segment in initializeSharedMemory est

Mise en œuvre Hercules & z/OS - Page - 35 - Mise en œuvre Hercules & z/OS - Page - 36 -
http://www-1.ibm.com/support/docview.wss?uid=swg21105444 // =================================================================
//
La doc IBM de ce message est //
JVMST039 // Licensed Materials - Property of IBM
Cannot allocate Shared Memory segment in initializeSharedMemory //
Explanation: // 5655-C56
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. // (C) Copyright IBM Corp. 1996, 2002. All Rights Reserved.
//
System action: // US Government Users Restriced Rights - Use, duplication or
A return code of JNI_ENOMEM is passed back to the JNI_CreateJavaVM call. // disclosure restricted by GSA ADP Schedule Contract with IBM Corp
// The source code for this program is not published or otherwise
User response: // divested of its trade secrets, irrespective of what has been
Allocate more virtual storage to the JVM region. If the problem remains, contact your IBM service representative // deposited with the U.S. Copyright Office
//
// =================================================================
Pour cela il faut mettre RGN=0M sur IMS810.PROCLIB(DFSJMP)
// PROC SOUT=A,RGN=0M,SYS2=,……………. 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:


Démarrage et arrêt de IMSJAVA i. Set the 4 JVM members, found in IMS.PROCLIB, as follows:
A la console : a. DFSJVMAP:- (see NOTE 4)
1. IVP1STA REG IMS81JMP pour starter DFSJBP=samples/ivp/ims/IMSIVPJBP
2. IVP1STO REG JOBNAME IMS81JMP pour stopper (quand elle ne s’arrête pas toute seule) b. DFSJVMEV:-
LIBPATH=/usr/lpp/J1.3/bin/classic:/usr/lpp/J1.3/bin:/usr/lpp/ims/imsjava81
Rappel : la commande /CHE FREEZE d’arrêt de IMS stoppe toutes les MPP et JMP c. DFSJVMMS:-
-Dibm.jvm.shareable.application.class.path=/myApplications/samples.jar
Une fois démarré, Il y a 2 SYSOUT dans la IMS81JMP (ils sont visibles sous SDSF par un ? sur la sysout de -Dibm.jvm.trusted.middleware.class.path=/usr/lpp/ims/imsjava81/imsjava.jar
IMS81JMP) -Xinitacsh128k
-Xinitsh128k
SYS00001 IMS81JMP JMPRGN 103 START2 H 0 1 -Xmaxf0.6
SYS00002 IMS81JMP JMPRGN 104 IBMUSER H 0 1 -Xminf0.3
-Xmx64M
-Xoss400k
d. DFSJVMWK:-
Le premier est le MASTER qui resette la 2eme à chaque syncpoint -Xmaxf0.6
La deuxième est le WORKER cad la JVM d’exécution des transactions utilisateurs , elle -Xminf0.3
prend le user de la signature IMS lors de la création de la JVM si celui-ci est valide , -Xmx64M
sinon elle reste sous START2 comme la première -Xoss400k
ii. Edit the JBP JCL proc to set the EXEC PARMs MBR= and PSB=.
Sous OMVS on voit les 2 JVM par la commande ps -el 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.
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
1000080 HY 0 33620014 1 - - - - 2191 - ? 0:42 DFSRCJM0 iv. Check the JVM.out file or wherever the JCL has set the output
1000080 HY 0 67174448 1 - - - - 2191 - ? 0:42 DFSPCJM0 to go to. It should contain output as shown below:
LastName = LAST1
FirstName = FIRST1
Extension = 8-111-1111
La classe executée par le « /format IVTCM » est DFSIVP37=samples/ivp/ims/IMSIVP ZipCode = D01/R01
Qui est dans le /V1R4S/usr/lpp/ims/samples.jar pointé par le LIBPATH
3. To run the JMP IVP sample, do the following:
i. Set the following 4 JVM members, found in IMS.PROCLIB, as follows:
Doc de référence IMSJAVA a. DFSJVMAP:- (see NOTE 4)
DFSIVP37=samples/ivp/ims/IMSIVP
b. DFSJVMEV:-
http://www-128.ibm.com/developerworks/java/jdk/diagnosis/131.html 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
IMS Java IVP in IMS environment (JBP & JMP regions) -Xinitacsh128k

Mise en œuvre Hercules & z/OS - Page - 37 - Mise en œuvre Hercules & z/OS - Page - 38 -
-Xinitsh128k assemblage des maps
-Xmaxf0.6
-Xminf0.3 préalable par DFHMAPS car il y a des COPY ACCTSET dans les sources cobol
-Xmx64M explication: The DFHMAPS procedure writes the symbolic map set output to the library
-Xoss400k specified on the DSCTLIB parameter,
d. DFSJVMWK:- which defaults to the CICSTS22.CICS.SDFHMAC library.
-Xmaxf0.6 If you want to include symbolic map sets in a user copy library
-Xminf0.3
-Xmx64M //ACCTSET EXEC DFHMAPS,MAPNAME=ACCTSET,OUTC=*
-Xoss400k //COPY.SYSUT1 DD DISP=SHR,DSN=CICSTS22.CICS.SDFHSAMP(ACCTSET)
//*
ii. Submit the JCL job to bring up a JMP(Java Message Processing) region. The JCL //* ASSEMBLAGE ET LINKEDIT DES MAPSET DE L'APPLICATION PRIMER
should have the above 4 members specifed in the PROC definition. //* PROCEDURE APPELEE: ADCD.ZOSV14S.PROCLIB(DFHMAPS)
//*
iii. Go to the IMS terminal and invoke the formatted screen for the transaction:
/format IVTCM
compilation
iv. You can ADD, DELETE, UPDATE, INSERT the records of the IVP database from the des sources COBOL dans IBMUSER.LIB.JCL(ACCT00)
formatted screen. //ACCT00 EXEC DFHYITVL,OUTC=*
//*
//* PRECOMPILE, COMPILE, REBLOCK ET LINKEDIT DES SOURCES COBOL
NOTE: //* ACCT00 ACCT01 ACCT02 ACCT03 ACCT04
1. The last name is the key of this IVP database. //* PROCEDURE APPELEE: ADCD.ZOSV14S.PROCLIB(DFHYITVL)
2. Some of the (key)data already seeded into this database: //*
Last names:- LAST1, LAST2, LAST3, LAST4, LAST5 //TRN.SYSIN DD DISP=SHR,DSN=CICSTS22.CICS.SDFHSAMP(ACCT04)
3. For easier understanding purposes, this README file will assume the following: //LKED.SYSIN DD *
a) imsjava.jar, libJavTDLI.so and samples.tar files were installed in the INCLUDE SYSLIB(ACCT04)
directory: NAME ACCT04(R)
/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: Installation
/myApplications des composants sous CICS avec CEDA Display group(DFH$ACCT)
4. DFSIVP37 is the PSB name and IVTCM is the transaction associated with DFSIVP37 NAME TYPE GROUP
for the JMP IVP. ACCTFIL FILE DFH$ACCT
ACCTIX FILE DFH$ACCT
ACCTSET MAPSET DFH$ACCT
ACCT00 PROGRAM DFH$ACCT
CICS transactions de test ACCT01 PROGRAM DFH$ACCT
ACCT02 PROGRAM DFH$ACCT
ACCT03 PROGRAM DFH$ACCT
ACCT04 PROGRAM DFH$ACCT
Transaction ACCT ACCT TRANSACTION DFH$ACCT
ACEL TRANSACTION DFH$ACCT
Procedures for installing application programs ACLG TRANSACTION DFH$ACCT
----------------------------------------------------------------------------------------------------- AC01 TRANSACTION DFH$ACCT
|Online |EXCI |Integrated translator
AC02 TRANSACTION DFH$ACCT
|Online |EXCI
----------------------------------------------------------------------------------------------------- AC03 TRANSACTION DFH$ACCT
|Assembler |- |- |- AC05 TRANSACTION DFH$ACCT
|DFHEITAL |DFHEXTAL AC06 TRANSACTION DFH$ACCT
|C |DFHYITDL |DFHYXTDL |-
|- |-
|C++ |DFHYITEL |DFHYXTEL |-
|- |- installation par CEDA INSTALL group(DFH$ACCT) qui doit donner le message INSTALLED
|COBOL |DFHYITVL |DFHYXTVL |DFHZITCL ou celui-ci lorsqu'on le refait une seconde fois (faire PF9 pour avoir le msg détail)
|- |-
|PL/I |DFHYITPL |DFHYXTPL |DFHZITPL
|- |- 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

Mise en œuvre Hercules & z/OS - Page - 39 - Mise en œuvre Hercules & z/OS - Page - 40 -
not be deleted. SPUFI SSID: DSN1
W GROUP DFH$ACCT has been partially installed.
===>
Enter the input data set name: (Can be sequential or partitioned)
installer automatiquement le goupe DFH$ACCT dans le startup de CICS 1 DATA SET NAME ... ===> DSN710.NEW.SDSNSAMP(DSNTESA)
voir GRPLIST=(XYZLIST), dans CICSTS22.SYSIN(DFH$SIP1) 2 VOLUME SERIAL ... ===> (Enter if not cataloged)
CEDA ADD GROUP(DFH$ACCT) list(XYZLIST) 3 DATA SET PASSWORD ===> (Enter if password protected)

Enter the output data set name: (Must be a sequential data set)
OVERTYPE TO MODIFY
4 DATA SET NAME ... ===> P390.SPUFI.OUT
CEDA ADd
Group ==> DFH$ACCT Specify processing options:
List ==> XYZLIST 5 CHANGE DEFAULTS ===> * (Y/N - Display SPUFI defaults panel?)
Before ==> 6 EDIT INPUT ...... ===> * (Y/N - Enter SQL statements?)
After ==> 7 EXECUTE ......... ===> YES (Y/N - Execute SQL statements?)
ADD SUCCESSFUL 8 AUTOCOMMIT ...... ===> YES (Y/N - Commit after successful run?)
9 BROWSE OUTPUT ... ===> YES (Y/N - Browse output data set?)

Programmes de test SCORT For remote SQL processing:


10 CONNECT LOCATION ===>
(fournis par Xavier)
ECHO
VERIDATE

Activation de la sécurité dans CICS


compilation/link L’activation de la sécurité dans CICS est nécessaire pour exécuter des transactions qui ont une interface avec DB2 car
par la procédure suivante DB2 doit avoir accès à l’ACEE - le control bloc du user RACF crée au login (RACINIT)
//CICSCOB EXEC DFHYITVL,OUTC=*
//TRN.SYSIN DD DISP=SHR,DSN=IBMUSER.LIB.COBOL(ECHO) Pour activer la sécurité CICS/RACF, mettre SEC=YES dans la CICSTS22.SYSIN(DFH$SIP1)
//LKED.SYSIN DD * Plus les commandes suivantes
NAME ECHO(R)

CEDA DEFINE GROUP(SCORT)


PERMIT DSN1.SASS CLASS(DSNR) ID(CICSUSER) ACCESS(READ)
CEDA DEFINE PROG(ECHO) GROUP(SCORT)
RDEFINE DSNR (DSN1.SASS) OWNER(IBMUSER)
CEDA DEFINE PROG(VERIDATE) GROUP(SCORT) setropts raclist(dsnr) refresh
CEDA INSTALL GROUP(SCORT)
CEDA ADD GROUP(SCORT) LIST(XYZLIST)

tester le reload
CEMT SET PROG(ECHO) NEWCOPY SAMPLES LABOPHARM
A suivre…
Samples CICS DB2
http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db2.doc.apsg/rntiad.htm
• 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 - 41 - Mise en œuvre Hercules & z/OS - Page - 42 -
CICS TCPIP EZA Samples //COB EXEC PGM=IGYCRCTL,REGION=&REG,
// PARM='NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF,NODBCS' X
Compilation de EZACICSS et EZACICCS // 'NSYMBOL(DBCS)'
//SYSLIB DD DSN=&DSCTLIB,DISP=SHR
//CICSDB2 JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // DD DSN=&INDEX..SDFHCOB,DISP=SHR
// REGION=0M,NOTIFY=&SYSUID // DD DSN=&INDEX..SDFHMAC,DISP=SHR
//CICSDB2 PROC NAME=TEMPNAME,SUFFIX=1$, // DD DSN=&INDEX..SDFHSAMP,DISP=SHR
// INDEX='CICSTS22.CICS', QUALIFIER(S) FOR CICS LIBRARIES //SYSPRINT DD SYSOUT=&OUTC
// PROGLIB='CICSTS22.CICS.SDFHLOAD', NAME OF O/P LIBRARY…BA25137C //SYSIN DD DSN=&&SYSCIN,DISP=(OLD,DELETE)
// DSCTLIB='CICSTS22.CICS.SDFHCOB', PRIVATE MACRO/DSECT…BA25137C //SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),
// LE370HLQ='CEE', Qualifier(s) for LE/370 libraries // UNIT=&WORK,SPACE=(80,(250,100))
// OUTC=*, Class for print output //SYSUT1 DD UNIT=&WORK,SPACE=(460,(350,100))
// REG=0M, REGION SIZE FOR ALL STEPS //SYSUT2 DD UNIT=&WORK,SPACE=(460,(350,100))
// LNKPARM='LIST,XREF', Link edit parameters //SYSUT3 DD UNIT=&WORK,SPACE=(460,(350,100))
// STUB='DFHEILIC', Linkedit INCLUDE for DFHELII //SYSUT4 DD UNIT=&WORK,SPACE=(460,(350,100))
// WORK=SYSDA Unit for work datasets //SYSUT5 DD UNIT=&WORK,SPACE=(460,(350,100))
//********************************************************* //SYSUT6 DD UNIT=&WORK,SPACE=(460,(350,100))
//* DB2 PRECOMPILE THE COBOL PROGRAM //SYSUT7 DD UNIT=&WORK,SPACE=(460,(350,100))
//********************************************************* //*
//PC EXEC PGM=DSNHPC, //COPYLINK EXEC PGM=IEBGENER,COND=(7,LT,COB)
// PARM='HOST(COB2),XREF,SOURCE,FLAG(I),APOST',REGION=8M //SYSUT1 DD DSN=&INDEX..SDFHCOB(&STUB),DISP=SHR
//STEPLIB DD DISP=SHR,DSN=DSN710.SDSNEXIT //SYSUT2 DD DSN=&&COPYLINK,DISP=(NEW,PASS),
// DD DISP=SHR,DSN=DSN710.SDSNLOAD // DCB=(LRECL=80,BLKSIZE=400,RECFM=FB),
//DBRMLIB DD DISP=OLD,DSN=IBMUSER.DBRMLIB.DATA(&NAME) // UNIT=&WORK,SPACE=(400,(20,20))
//SYSCIN DD DSN=&&DSNHOUT,DISP=(MOD,PASS),UNIT=SYSDA, //SYSPRINT DD SYSOUT=&OUTC
// SPACE=(800,(500,500)) //SYSIN DD DUMMY
//SYSLIB DD DISP=SHR,DSN=IBMUSER.LIB.COBOL //*
//SYSPRINT DD SYSOUT=* //LKED EXEC PGM=IEWL,REGION=&REG,
//SYSTERM DD SYSOUT=* // PARM='&LNKPARM',COND=(5,LT,COB)
//SYSUDUMP DD SYSOUT=* //SYSLIB DD DSN=&INDEX..SDFHLOAD,DISP=SHR
//SYSUT1 DD SPACE=(800,(500,500),,,ROUND),UNIT=SYSDA // DD DSN=&LE370HLQ..SCEELKED,DISP=SHR
//SYSUT2 DD SPACE=(800,(500,500),,,ROUND),UNIT=SYSDA // DD DISP=SHR,DSN=TCPIP.SEZATCP
//SYSIN DD DISP=SHR,DSN=IBMUSER.LIB.COBOL(&NAME) // DD DISP=SHR,DSN=DSN710.SDSNLOAD
//******************************************************************** //SYSLMOD DD DSN=&PROGLIB,DISP=SHR
//*** BIND THIS PROGRAM. //SYSUT1 DD UNIT=&WORK,DCB=BLKSIZE=1024,
//******************************************************************** // SPACE=(1024,(200,20))
//BIND EXEC PGM=IKJEFT01, //SYSPRINT DD SYSOUT=&OUTC
// COND=((4,LT,PC)) //SYSLIN DD DSN=&&COPYLINK,DISP=(OLD,DELETE)
//STEPLIB DD DISP=SHR,DSN=DSN710.SDSNEXIT // DD DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD DISP=SHR,DSN=DSN710.SDSNLOAD // DD DDNAME=SYSIN
//DBRMLIB DD DISP=OLD,DSN=IBMUSER.DBRMLIB.DATA(&NAME) // PEND
//SYSPRINT DD SYSOUT=* //CICSDB2 EXEC CICSDB2,NAME=EZACICSC
//SYSTSPRT DD SYSOUT=* //TRN.SYSIN DD DSN=&&DSNHOUT,DISP=(OLD,DELETE)
//SYSUDUMP DD SYSOUT=* //COB.SYSLIB DD DSN=CSQ531.SCSQCOBC,DISP=SHR
//******************************************************************** // DD DISP=SHR,DSN=IBMUSER.LIB.COBOL
//* COMPILE THE COBOL PROGRAM // DD DSN=CICSTS22.CICS.SDFHCOB,DISP=SHR
//******************************************************************** // DD DSN=CICSTS22.CICS.SDFHSAMP,DISP=SHR
//TRN EXEC PGM=DFHECP&SUFFIX, // DD DSN=CICSTS22.CICS.SDFHMAC,DISP=SHR
// REGION=&REG, //LKED.SYSLMOD DD DISP=SHR,DSN=IBMUSER.LIB.LOAD
// PARM='SP' //LKED.CICSLOAD DD DISP=SHR,DSN=CICSTS22.CICS.SDFHLOAD
//STEPLIB DD DSN=&INDEX..SDFHLOAD,DISP=SHR //BIND.SYSTSIN DD *
//SYSPRINT DD SYSOUT=&OUTC DSN S(DSN1)
//SYSPUNCH DD DSN=&&SYSCIN, BIND PLAN(EZACICSC) MEMBER(EZACICSC) ACTION(REP) RETAIN ISOLATION(CS)
// DISP=(,PASS),UNIT=&WORK, END
// DCB=BLKSIZE=400, //LKED.SYSIN DD *
// SPACE=(400,(400,100)) INCLUDE SYSLIB(EZACICAL)
//* INCLUDE CICSLOAD(DSNCLI)
NAME EZACICSC(R)
/*
Puis test de

Mise en œuvre Hercules & z/OS - Page - 43 - Mise en œuvre Hercules & z/OS - Page - 44 -
Test de EZACICSS par lancement de CECI START TR(SRV2) FROM(4000) CEDA I GROUP DFHCLNT
Qui donne EZACICSS: CONNECT NOT ESTABLISHED ATTACHMENT FACILITY NOT ACTIVE CEDA I GROUP DFH$SOT
Démarrage manuel de l’interface TCPIP CICS CEDA I GROUP DFHIPECI
CEDA I GROUP DFHBRVSL installation du fichier DFHBRNSF as local VSAM non RLS
EZAO,START,CICS

Pour cela il faut activer l’interface DB2CONN


CEDA copy group(DFH$DB2) as(DB2CICS) to(DFH£DB2)
Installation du Bridge Passthrough pour Link3270
Puis modification du DB2ID à DSN1 suivi de CEDA INSTALL GROUP(DB2GRP)
Liste des fichiers du SupportPack CA1E
téléchargement à http://www.ibm.com/software/cics/txppacs
Mise en œuvre Link3270 CICSTS22.CA1E.CPY
CICSTS22.CA1E.DEF
Installation transaction NACT CICSTS22.CA1E.JCL
Assembler les MAP via IBMUSER.LIB.JCL(DFHMAPS) CICSTS22.CA1E.LOAD
//DFHMAPS EXEC DFHMAPS,MAPNAME=DFH0MNA,OUTC=* CICSTS22.CA1E.MAP
//COPY.SYSUT1 DD DISP=SHR,DSN=CICSTS22.CICS.SDFHSAMP(DFH0MNA)

Ajouter la loadlib dans la proc de CICSA


Compiler les programmes DFH0CNA1 à 5 via le job IBMUSER.LIB.JCL(CSQ4CV)
DFHRPL DD DSN=&INDEX2..SDFHLOAD,DISP=SHR
En remplaçant les cartes suivantes :
…/…
DD DISP=SHR,DSN=CICSTS22.CA1E.LOAD
//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) Ajouter les ressources du fichier CICSTS22.CA1E.DEF dans le démarrage de CICS

CEDA ADD GROUP(BRQTOOL) LIST(XYZLIST)


Définir les fichiers de l’application et remplir le jeu d’essai: CEDA ADD GROUP(BRQTYPE) LIST(XYZLIST)
Lancer le job CICSTS22.CICS.SDFHINST(DFHNADEF) en modifiant CEDA ADD GROUP(BRQTERM) LIST(XYZLIST)
&DSVOL=S4CIC1
&DSUNIT=SYSDA Charger le fichier BRQFILOD
&DSINDEX=CICSTS22.CICS conformément à l’installation Hercules par la transaction BRFL

Modifier la TWASize de BRLI


CEDA ALTER TRANSAC(BRLI) GROUP(BRQTOOL)
Puis metre 2500 dans TWASize et faire
Installation automatique de ressources CICS CEDA I TRANSAC(BRLI) GROUP(BRQTOOL) pour prendre en compte cette modif

pour la transaction NACT et le TCPIPSERVICE ECI


CEDA ADD GROUP(DFH$NACT) LIST(XYZLIST)
CEDA ADD GROUP(DFH$SOT) LIST(XYZLIST) CICS BMS reverse utility
pour décompiler des BMS format load vers un format source
IBMUSER.LIB.JCL(DFHBMSUP)
CEDA I GROUP DFHCLNT //RUNPROG EXEC PGM=DFHBMSUP,PARM='CSQ4CCM',REGION=2M
//STEPLIB DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR
//DFHRPL DD DISP=SHR,DSN=CSQ531.SCSQCICS
DFHZCN1 PROGRAM DFHCLNT * INSTALL SUCCESSFUL //BMSOUT DD DISP=SHR,DSN=CICSTS22.BMSOUT(CSQ4CCM)
DFHZCT1 PROGRAM DFHCLNT * INSTALL SUCCESSFUL //SYSUDUMP DD SYSOUT=*
DFHCOMCL TRANCLASS DFHCLNT * INSTALL SUCCESSFUL
CCIN TRANSACTION DFHCLNT * INSTALL SUCCESSFUL
CTIN TRANSACTION DFHCLNT * INSTALL SUCCESSFUL

Mise en œuvre Hercules & z/OS - Page - 45 - Mise en œuvre Hercules & z/OS - Page - 46 -
Test de samples PUT et GET MQ en batch //LKED.SYSIN DD *
INCLUDE CSQSTUB(CSQBSTUB)
NAME CSQ4BVK1(R)
Programmes Batch MQ pour Call Out
Sources en annexes issu des samples CVQ4BVJ1 et CVQ4BVK1

Exécution
Compilation par CSQ531.SCSQPROC(CSQ4BVJR) - 01.01
//CSQ4BVK3 JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), //*
// REGION=0M,NOTIFY=&SYSUID //*PUTMSGS EXEC PGM=CSQ4BVK1,REGION=1024K,
//COMPILE EXEC IGYWCL, //* PARM=('CSQ1,TARGET.QUEUE,1,$,50,P')
// PARM='NODYNAM,LIB,OBJECT,RENT,APOST,MAP,XREF' //*
//* //GETMSGS EXEC PGM=CSQ4BVJ1,REGION=1024K,
//* COMPILE ET LINKEDIT DES SOURCES COBOL BATCH // PARM=('CSQ1,TARGET.QUEUE,1,D,N')
//* CSQ4BVK1 ET CSQ4BVJ1 //* PARM=('++QMGR++,++QUEUE++,++MSGS++,++GET++,++SYNC++')
//* PROCEDURE APPELEE: ADCD.ZOSV14S.PROCLIB(IGYWCL)
//*
//*COBOL.SYSIN DD DISP=SHR,DSN=CSQ531.SCSQCOBS(CSQ4BVK1) Test de samples PUT et GET MQ sous cics
//COBOL.SYSIN DD DISP=SHR,DSN=IBMUSER.LIB.COBOL(CSQ4BVK3) sources CSQ531.SCSQCOBS(CSQ4CVJ1) GET via la transaction MVGT
//COBOL.SYSLIB DD DISP=SHR,DSN=CSQ531.SCSQCOBC CSQ531.SCSQCOBS(CSQ4CVK1) PUT via la transaction MVPT
// 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 *
Compilation et link-edit
INCLUDE CSQSTUB(CSQBSTUB) tester le chargement si problème par
NAME CSQ4BVK3(R) CEMT SET PROG(CSQ4CVJ1) NEWCOPY
/*
//CICSCOB EXEC DFHYITVL,OUTC=*
//*
//* PRECOMPILE, COMPILE, REBLOCK ET LINKEDIT DES SOURCES COBOL
Exécution du call out en batch //* POUR SAMPLES MQ PUT ET GET SIMPLES EN COBOL
//* PROCEDURE APPELEE: ADCD.ZOSV14S.PROCLIB(DFHYITVL)
//*
//CSQ4BVK3 JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), //* POUR MQ AJOUTER EN FIN DE SYSIN
// REGION=0M,NOTIFY=&SYSUID //* INCLUDE CSQSTUB(CSQBSTUB)
//* parm: nbre d’appels , buffer //*
//EXEC EXEC PGM=CSQ4BVK3,PARM='1119,11111111111111111111' //TRN.SYSIN DD DISP=SHR,DSN=CSQ531.SCSQCOBS(CSQ4CVJ1)
//STEPLIB DD DSN=CSQ531.SCSQANLE,DISP=SHR //*
// DD DSN=CSQ531.SCSQANLE,DISP=SHR //* WEBSPHERE MQ FOR Z/OS LIBRARY CONTAINING CICS STUB
// DD DSN=CSQ531.SCSQAUTH,DISP=SHR //*
// DD DSN=CSQ531.SCSQLOAD,DISP=SHR //COB.SYSLIB DD DSN=CSQ531.SCSQCOBC,DISP=SHR
//SYSPRINT DD SYSOUT=* //LKED.CSQSTUB DD DSN=CSQ531.SCSQLOAD,DISP=SHR
//SYSOUT DD SYSOUT=* //LKED.SYSIN DD *
INCLUDE CSQSTUB(CSQCSTUB)
NAME CSQ4CVJ1(R)

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) Mise en place CALL OUT JRULES
//*
//COBOL.SYSIN DD DISP=SHR,DSN=CSQ531.SCSQCOBS(CSQ4BVK1) Définitions
//LKED.CSQSTUB DD DSN=CSQ531.SCSQLOAD,DISP=SHR
//LKED.SYSLMOD DD DISP=SHR,DSN=CSQ531.SCSQLOAD JCL de soumission de commandes

Mise en œuvre Hercules & z/OS - Page - 47 - Mise en œuvre Hercules & z/OS - Page - 48 -
Placer les commandes dans le fichier CSQUCMD (j’ai mi 1h à comprendre…) Installer TOMCAT sur z/OS
IBMUSER.LIB.JCL(CSQUTIL) http://mir2.ovh.net/ftp.apache.org/dist/tomcat/tomcat-4/v4.1.36/bin/apache-tomcat-4.1.36.zip
//CSQUTIL JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),
// REGION=0M,NOTIFY=&SYSUID
Upload par FTP sur Hercules à /u/ibmuser/SCORT/ et Creation d’un lien pour commodité
Ln –s apache-tomcat-4.1.36.zip tomcat
//CSQUTIL EXEC PGM=CSQUTIL,REGION=4096K,PARM='CSQ1'
//STEPLIB DD DSN=CSQ531.SCSQANLE,DISP=SHR
// DD DSN=CSQ531.SCSQAUTH,DISP=SHR
Création d’une STC pour TOMCAT dans ADCD.ZOSV14S.PROCLIB(TOMCAT)
//CSQUCMD DD DISP=SHR,DSN=IBMUSER.LIB.JCL(QUEUEJRU)
//SYSPRINT DD SYSOUT=* //EXJZOSVM PROC JAVACLS='org.apache.catalina.startup.Bootstrap',
//SYSIN DD * // ARGS='start', < Args to Java class
COMMAND // 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'
Objets MQ pour JRULES //STEPLIB DD DSN=&LIBRARY,DISP=SHR
Une queue pour les questions une autre pour la Reply-to-Queue et un channel type SVRCONN pour //SYSPRINT DD SYSOUT=* < System stdout
//SYSOUT DD SYSOUT=* < System stderr
permettre à MQCLIENT de se connecter et d’accéder directement des queues locales //STDOUT DD SYSOUT=* < Java System.out
//STDERR DD SYSOUT=* < Java System.err
//CEEDUMP DD SYSOUT=*
* //ABNLIGNR DD DUMMY
* DéFINITION DE LA LOCAL QUEUE FOR INQUIRE JRULES //*
* //*The following DDs can/should be present in the calling JCL
DEF QL(JRULES.TARGET.QUEUE) QSGDISP(QMGR) REPLACE USAGE(NORMAL) - //*
DESCR( 'TARGET QUEUE ON CSQ1 FOR JRULES') PUT(ENABLED) DEFPSIST(NO) - //*STDIN DD < OPTIONAL - Java System.in
GET(ENABLED) SHARE DEFSOPT(SHARED) MSGDLVSQ(PRIORITY) - //STDENV DD DSN=ADCD.ZOSV14S.PROCLIB(TOMCATIN),DISP=SHR
MAXDEPTH(10000) MAXMSGL(4000)
*
* DéFINITION DE LA LOCAL QUEUE FOR REPLY BY JRULES Creation du STDENV
*
DEF QL(JRULES.REPLY.QUEUE) QSGDISP(QMGR) REPLACE USAGE(NORMAL) - . /etc/profile
DESCR( 'TARGET QUEUE ON CSQ1 FOR JRULES') PUT(ENABLED) DEFPSIST(NO) - export JZOS_HOME=/u/ibmuser/jzos
GET(ENABLED) SHARE DEFSOPT(SHARED) MSGDLVSQ(PRIORITY) - export JAVA_HOME=/usr/lpp/java/IBM/J1.3
MAXDEPTH(10000) MAXMSGL(4000) TOMCAT_HOME=/u/ibmuser/SCORT/tomcat
* export PATH=/bin:"$éJAVA_HOMEè"/bin:
* DéFINITION DU CHANNEL RECEIVER FOR MQCLIENT LIBPATH=/lib:/usr/lib:"$éJAVA_HOMEè"/bin
* à FAIRE COTé JRULES UNIQUEMENT SI ON AVAIT UN QMGR COTé JRULES LIBPATH="$LIBPATH":"$éJAVA_HOMEè"/bin/classic
* LIBPATH="$LIBPATH":"$éJZOS_HOMEè"
*DEFINE CHANNEL(JRULES.TO.HOST) CHLTYPE(CLNTCONN) TRPTYPE(TCP) + export LIBPATH="$LIBPATH":
*CONNAME(10.1.15.43) QMNAME(CSQ1) DESCR('CLIENT-CONNECTION TO CSQ1') export _BPXK_AUTOCVT=OFF
* CLASSPATH="$éJAVA_HOMEè/lib/tools.jar"
* DéFINITION DU CHANNEL RECEIVER SUR HOST CICS CLASSPATH="$CLASSPATH":"$éTOMCAT_HOMEè/bin/bootstrap.jar"
* CLASSPATH="$CLASSPATH":"$éJZOS_HOMEè/jzos.jar"
DEFINE CHANNEL(JRULES.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) + export CLASSPATH="$CLASSPATH":
DESCR('SERVER-CONNECTION FOR JRULES') 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è"
Installation de jZOS (TOMCAT sur z/OS) IJO="$IJO -Dfile.encoding=ISO8859-1"
IJO="$IJO -Dcatalina.base=$éTOMCAT_HOMEè"
Voir http://www.dovetail.com/docs/jzos/tomcat.html IJO="$IJO -Dcatalina.home=$éTOMCAT_HOMEè"
Ajouter export PATH=/usr/lpp/Printsrv/bin:/usr/lpp/java/IBM/J1.3/bin:$PATH dans /etc/profile IJO="$IJO -Djava.io.tmpdir=$éTOMCAT_HOMEè/temp"
IJO="$IJO -Djava.endorsed.dirs="
IJO="$éIJOè$éTOMCAT_HOMEè/common/endorsed"
export IBM_JAVA_OPTIONS="$IJO "
Download JZOS export JAVA_DUMP_HEAP=false
export JAVA_PROPAGATE=NO
http://www-03.ibm.com/servers/eserver/zseries/software/java/ export IBM_JAVA_ZOS_TDUMP=NO
http://www-03.ibm.com/servers/eserver/zseries/software/java/j142pcont.html

Mise en œuvre Hercules & z/OS - Page - 49 - Mise en œuvre Hercules & z/OS - Page - 50 -
Déployer l’application smart MOUNT FILESYSTEM('IBMUSER.SCORT.HFS')
MOUNTPOINT('/u/ibmuser/SCORT')
Copier smart.war dans /u/ibmuser/SCORT/tomcat/webapps TYPE(HFS)
Aller dans /u/ibmuser/SCORT/apache-tomcat-4.1.36/webapps/smart/WEB-INF/classes TAG(TEXT,819) TAG(TEXT,819) identifies text files containing ASCII (ISO-8859-1) data

Et passer la commande MODE(RDWR)


sed s/.$// log4j.xml > log4j.xml1
Puis Too many open files
mv log4j.xml1 log4j.xml
/u/ibmuser/SCORT/apache-tomcat-4.1.36/work/Standalone/localhost/fastrack/index_jsp.java:8: error while
aller dans http://hercules:8080/manager/html/list et faire install comme suit: 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.)
Install
Adapter les parameters suivants dans ADCD.ZOSV14S.PARMLIB(BPXPRM00)
Install directory or WAR file located on server
MAXFILEPROC(10000)
Context Path (optional): NETWORK DOMAINNAME(AF_UNIX)
DOMAINNUMBER(1)
XML Configuration file URL: MAXSOCKETS(12000)
smart.w ar
TYPE(UDS)
WAR or Directory URL:

Install
Installation de WebSphere 4.0.1
Et verifier les erreurs dans /u/ibmuser/SCORT/apache-tomcat-4.1.36/logs Sous P390 exec 'was401.sbboclib(bbowstrt)' 'WAS401'
Puis metre à jour le host dans /u/ibmuser/SCORT/3.0/standalone/webapps/smart/WEB- Puis suivre les prescriptions de P390.WAS.CNTL(BBOINSTR)
INF/classes/scortconnectors.properties
Et lancer le host simulator avant de démarrer la connexion de l’application smart Ajouter les lignes suivantes à ADCD.ZOSV14S.PARMLIB(PROGIM )
APF ADD
DSNAME(WAS401.SBBOLPA) VOLUME(S4WAS2)
APF ADD
DSNAME(WAS401.SBBOLOAD) VOLUME(S4WAS2)
Problems & TIPS on UNIX z/OS
APF ADD
DSNAME(WAS401.SBBOLD2) VOLUME(S4WAS2)
Edition de fichers ASCII sur z/OS. Les commandes UNIX voient des fichiers EBCDIC par défaut, pour éditer LNKLST ADD NAME(BBODBMDT) DSN(WAS401.SBBOLD2) VOLUME(S4WAS2)
en ASCII voir : http://www.dovetail.com/docs/jzos/editascii.html LNKLST ADD NAME(BBOOCRMT) DSN(WAS401.SBBOLD2) VOLUME(S4WAS2)
2 étapes: LNKLST ADD NAME(BBODBMDT) DSN(WAS401.SBBOLD2) VOLUME(S4WAS2)
1. il faut positionner le tag ASCII sur les fichiers à éditer
2. exporter la variable _BPXK_AUTOCVT Ajouter les lignes suivantes à ADCD.ZOSV14S.PARMLIB(COMMNDDI )
chtag -tc ISO8859-1 myfile.properties
export _BPXK_AUTOCVT=ON COM='SETPROG LPA,ADD,MASK=*,DSNAME=WAS401.SBBOLOAD'
COM='SETPROG LPA,ADD,MASK=*,DSNAME=WAS401.SBBOLPA'
Les commandes suivantes sont ajoutées dans le /etc/profile pour que les comptes UNIX en héritent au logging COM='SETPROG LPA,ADD,MASK=*,DSNAME=WAS401.SBBOMIG'
COM='SETPROG LPA,ADD,MASK=*,DSNAME=WAS401.SBBOULIB'
export PATH=/usr/lpp/Printsrv/bin:/usr/lpp/java/IBM/J1.3/bin:$PATH
export _BPXK_AUTOCVT=ON
Ajouter les lignes suivantes à ADCD.ZOSV14S.PARMLIB(BPXPRM00 )
Conversion des CR/LF(DOS) en LF(Unix)
sed s/.$// infilename >outfilename <<<<<<< à utiliser pour hercules z/OS MOUNT FILESYSTEM('OMVS.WAS.CONFIG.HFS')
MOUNTPOINT('/WebSphere390/CB390')
Conversion UNIX vers DOS TYPE(HFS)
sed s/$/x0d/ infilename >outfilename MODE(RDWR)
MOUNT FILESYSTEM('WAS401.SBBOHFS')
Prise en compte permanente des fichiers ASCII sur le file System SCORT MOUNTPOINT('/usr/lpp/WebSphere')

Mise en œuvre Hercules & z/OS - Page - 51 - Mise en œuvre Hercules & z/OS - Page - 52 -
TYPE(HFS) SSIGNON(key_description)
MODE(READ) UACC(access_authority)

SETROPTS RACLIST(PTKTDATA)
Mettre à jour ADCD.ZOSV14S.PARMLIB(IEASYSDI )

SCH=(DB,BB), Exemple pour le passticket de TSO


RDEFINE PTKTDATA TSOSYS1 SSIGNON(KEYMASKED(0123456789abcdef))
Ajouter à TCPIP.PROFILE.TCPIP SETROPTS LIST
SETR REFRESH RACLIST(PTKTDATA) *
5556 TCP DAEMON01 SHAREPORT ; SSL port number for DAEMON01
5556 TCP BBODMN ; SSL port number for BBODMN Exemple pour le passticket des jobs batch

Jobs de cutomization: voir P390.WAS.CNTL(BBOINSTR) RDEFINE PTKTDATA MVSSYS1 SSIGNON(KEYMASKED(0123456789abcdef))


SETROPTS LIST
SETR REFRESH RACLIST(PTKTDATA)
BBOWCTR
BBOERRLG
BBORRSLS Exemple pour le passticket de IMS
BBOCBRAJ
BBOLDRAJ RDEFINE PTKTDATA IVP1ABC SSIGNON(KEYMASKED(0123456789abcdef))
BBOCBRAK SETR REFRESH RACLIST(PTKTDATA)
BBOWCHFS
BBOMCFG RDEFINE PTKTDATA CICS SSIGNON(KEYMASKED(0123456789abcdef))
BBOWCPY1 SETR REFRESH RACLIST(PTKTDATA)
BBOMCRDB
BBOBIND
BBOTDBMC
BBOLDTBC DIVERS JOBS et questions
BBO1JCL
BBO2JCL Mise à l’heure et timezone
BBOCBGRT Exemple de mise à l’heure à 15h21 : /T CLOCK=15.21.00
BBOLDGRT Synchronisation de l’heure MVS avec la machine Windows de hercules dans la parmlib CLOCK00
BBOMTDBM (can’t contact LDAP server) OPERATOR NOPROMPT
BBOLD2DB TIMEZONE E.01.00.00
ETRMODE NO
ETRZONE NO
Doc WAS 401 : ETRDELTA 10
http://publib.boulder.ibm.com/infocenter/wasinfo/v4r0/index.jsp?topic=/com.ibm.websphere.v4.doc/welcome.
html
clear de la sys1.logrec
Samples: http://www-306.ibm.com/software/webservers/appserv/zos_os390/lib/was_clients.html //IFCDIP00 JOB CLASS=A,MSGLEVEL=(1,1),MSGCLASS=A
//********************************************************************
export PATH=$PATH:/V1R4S/usr/lpp/db2/db2710/lib //* CLEAR AND INITIALIZE HARDWARE EVENT RECORDER DATASET *
IBMUSER:/V1R4S/usr/lpp/java/IBM/J1.3: >bin/java -cp /usr/lpp/db2/db2710/classes/db2j2classes.zip //********************************************************************
//IFCDIP00 EXEC PGM=IFCDIP00
COM/ibm/db2os390/sqlj/util/DB2DriverInfo //SERERDS DD DSN=SYS1.LOGREC,DISP=OLD,
// VOL=SER=OS39M1,
Mise en œuvre du passticket // UNIT=SYSDA

SETROPTS CLASSACT(PTKTDATA)
SETROPTS RACLIST(PTKTDATA)
RDEFINE PTKTDATA IVP1234

Mise en œuvre Hercules & z/OS - Page - 53 - Mise en œuvre Hercules & z/OS - Page - 54 -
démarrage d'un INIT supplémentaire Vérifier le nouveau status des page dataset
(quand un job reste en INPUT queue et qu'on a démarré tout IMS et CICS) D ASM
$DI pout voir tous les INIT started et drained et démarrer le premier qui est DRAINED RESPONSE=P390
IEE200I 10.25.41 DISPLAY ASM 251
exemple TYPE FULL STAT DEV DATASET NAME
PLPA 87% OK 0A82 SYS1.PLPA.PAGE
$HASP892 INIT(11) STATUS=DRAINED,CLASS=ABCD,NAME=11 COMMON 2% OK 0A82 SYS1.COMMON.PAGE
par la commande LOCAL 14% OK 0A82 SYS1.LOCAL.PAGE
$S I11 LOCAL 5% OK 0A82 PAGE.MHQPROD.LOCAL3
PAGEDEL COMMAND IS NOT ACTIVE

Purge de tous les vieux sysouts dans JES


/$P J1-9999,/DAYS>1 To ensure this new page data set remains a permanent part of your OS/390 system, you
/$P T1-9999,/DAYS>1 should update the PAGE= parameter in your ADCD.ZOSV14S.PARMLIB(IEASYSDI) parmlib member
/$P S1-9999,/DAYS>1 to include the new page data set as shown

PAGE=(SYS1.PLPA.PAGE,
SYS1.COMMON.PAGE,
PAGE.MHQPROD.LOCAL3,
récupérer des membres de PDS ou un fichier complet de load modules depuis SYS1.LOCAL.PAGE,L),
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 GTF Trace
receive indsn(csq531.SCSQCICS.SEQ) Exemple pour MQ
au prompt entrer odsn(csq531.SCSQCICS.PDS) (par exemple) pour recopier ensuite les START GTFxx.yy
membres détruits £HASP100 GTFxx.yy ON STCINRDR
£HASP373 GTFxx.yy STARTED
*01 AHL100A SPECIFY TRACE OPTIONS
R 01,TRACE=JOBNAMEP,USRP
TRACE=JOBNAMEP,USRP
Ajouter un Page data set IEE600I REPLY TO 12 IS;TRACE=JOBNAMEP,USRP
En cas de msg IRA200E AUXILIARY STORAGE SHORTAGE *02 ALH101A SPECIFY TRACE EVENT KEYWORDS - JOBNAME=,USR=
R 02,JOBNAME=xxxxMSTR,(x,y),USR=(5E9,5EA,5EE)
Il faut ajouter un PAGE DATA SET JOBNAME=xxxxMSTR,(x,y),USR=(5E9,5EA,5EE)
//DEFPAGE JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), IEE600I REPLY TO 13 IS;JOBNAME=xxxxMSTR,(x,y),USR=(5E9,5EA,5EE)
*03 ALH102A CONTINUE TRACE DEFINITION OR REPLY END
// REGION=0M,NOTIFY=&SYSUID R 03,END
//STEP1 EXEC PGM=IDCAMS,COND=(4000,LT) END
//SYSPRINT DD SYSOUT=* IEE600I REPLY TO 14 IS;END
//PAGELOC DD UNIT=SYSDA,VOL=SER=OS39M1,DISP=OLD AHL103I TRACE OPTIONS SELECTED-USR=(5E9,5EA,5EE)
AHL103I JOBNAME=xxxxMSTR,(x,y)
//SYSIN DD * *04 AHL125A RESPECIFY TRACE OPTIONS OR REPLY U
DEFINE PAGESPACE( - R 04,U
FILE(PAGELOC) - U
NAME(PAGE.MHQPROD.LOCAL3) - IEE600I REPLY TO 15 IS;U
AHL031I GTF INITIALIZATION COMPLETE
CYLINDERS(200) -
VOLUME(OS39M1) ) where xxxxMSTR is the name of the queue manager
and (x,y) is the jobname: x = the queue manager
y = CHINIT, CICS, or batch

After you have successfully defined a new page data set, you can now relieve the STOP de la trace
auxiliary shortage by STOP yy
adding the new page data set to the system as shown in Figure 57.
Formattage de la trace
//S1 EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4096K
//IPCSPARM DD DSN=SYS1.PARMLIB,DISP=SHR
PAGEADD PAGE=PAGE.MHQPROD.LOCAL3 //IPCSDDIR DD DSN=thlqual.ipcs.dataset.directory,DISP=SHR
IEE783I PAGEADD COMMAND- 531 //SYSTSPRT DD SYSOUT=*,DCB=(LRECL=137)
PAGE.MHQPROD.LOCAL3 PAGE DATA SET //IPCSTOC DD SYSOUT=*
NOW AVAILABLE FOR SYSTEM USE //GTFIN DD DSN=gtf.trace,DISP=SHR
//SYSTSIN DD *
IPCS
SETDEF FILE(GTFIN) NOCONFIRM

Mise en œuvre Hercules & z/OS - Page - 55 - Mise en œuvre Hercules & z/OS - Page - 56 -
GTFTRACE USR(5E9,5EA,5EE) K S,DEL=N,SEG=09,CON=Y,RNUM=19,RTME=046
/*
//STEPLIB DD DSN=thlqual.SCSQAUTH,DISP=SHR
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
Création d’un nouveau volume pour hercules z/OS to RTME=001 (set the interval between message updating to 1 second), and press ENTER to set the new
Voir infos dans http://www.conmicro.cx/hercules/hercload.html parameters in effect.

Exemple de commande
Pour créér un nouveau volume “VOLSER” avec comme filename windows scort2.a19 (pourquoi
pas …)
Sous Cygwin lancer la commande suivante: How can I set a PFK on the MVS console?

$ dasdinit scort1.a90 3390 S4WAS0 You can set any of the Program Function Keys to valid MVS console commands, so that frequently used
HHCDU044I Creating 3390 volume S4WAS0: 1113 cyls, 15 trks/cyl, 56832 bytes/track commands may be entered simply by pressing the appropriate Program Function Key. The command:
HHCDU041I 1113 cylinders successfully written to file scort2.a19
HHCDI001I DASD initialization successfully completed.
K N,PFK=(n,CMD='command text'),CON=N
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: where n specifies the PFKey number (1, 2, 3, ... 12) and command text specifies the command to be sent to
0A19 3390 C:/HERCMSVC/DEVICES/scort2.a19
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.
Au démarrage il apparaît en 3.4
+-------------------------- VTOC Summary Information --------------------------+ To display the current settings, use the command:
| Volume . : S4WAS0 |
| Command ===> | D PFK
| |
| Unit . . : 3390 |
| |
| Volume Data VTOC Data Free Space Tracks Cyls |
| Tracks . : 16,695 Tracks . : 5 Size . . : 4,365 291 | How do I display information about DASD on the console?
| %Used . : 73 %Used . . : 3 Largest . : 4,350 290 |
| Trks/Cyls: 15 Free DSCBS: 243 |
| Free Extents . : 2 | 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:
MVS Frequently Asked Questions k d,f
Console Operations To terminate the display and erase the area the output occupied, use the command:
Why do I have a "message waiting" on the MVS console? k e,d
After an IPL, the default for message handling is "manual deleting"; all messages remain on the MVS console Volker Bandke has put together a great list of this and other MVS console and JES2 commands at
screen until the operator issues a command to delete them. A more usable solution is to have MVS http://www.bsp-gmbh.com/hercules/oscmds.html.
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:

ks What are the reply options for the message - $HASP098 ENTER TERMINATION
which will cause MVS to echo to the command input area the command:
OPTION - issued during JES2 shutdown?
Answers supplied by Phil Roberts and Jack Schudel in the Hercules MVS forum:

Mise en œuvre Hercules & z/OS - Page - 57 - Mise en œuvre Hercules & z/OS - Page - 58 -
r 00,dump to produce a system dump To delete all output from TSO User sessions, enter $PT1-9999. To delete all output from started tasks, enter
r 00,snap to produce a snap dump $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.
r 00,purge
to shutdown JES2
r 00,exit

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


Why does VTAM not seem to recognize my 3270 terminals? mean, and what should I do about it?
You must connect a tn3270 client to each of the terminal addresses that you intend to use for VTAM/TSO This fairly nasty looking message is issued following the entry of the z eod command on the MVS console
prior to IPL, or you may experience this. Also, sometimes after logging off a TSO session, VTAM will "lose" and is the result of the IEFU29 user exit being applied to the system. The short explanation is that the exit is
the terminal. Either of these is indicated if you do not see the Network Solicitor message on the terminal: 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
THIS TERMINAL IS LOGGED ON TO THE NETWORK SOLICITOR 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
On the MVS console, enter these two commands: 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
v net,inact,id=cuu0cx run to save the SMF data properly. You can read more about the IEFU29.
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 - 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
What does the message - $HASP050 JES2 RESOURCE SHORTAGE - mean and how
Operator messages are in use. It is doubtful that you could have operated MVS with messages pending on the
can I fix it? 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.
This message is issued whenever JES2 is approaching 100% utilization of one of its resources and may be one Switch to the tn3270 client attached to the alternate console (device address 011) and press the PFKey to
of several. The particular resource is indicated in the text of the message, such as: 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
JQE - Job Queue Elements present!)
JOE - Job Output Elements
SMFB - System Management Facilities buffers 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.
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.
Why are my tape devices "offline" when MVS starts?
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 Sometime around version 3.00 of Hercules, the behavior of tape devices under MVS changed. Tape devices
of your JES2 parameters, locate the HASPPARM DD statement in the JES2 procedure in SYS1.PROCLIB, defined in the configuration file were marked as "offline" by MVS 3.8j during IPL. The first time a job
which points to the location of the active JES2PARM. requires a tape device, in a series of messages will be displayed similar to this:
Edit the member, either with TSO edit or with IEBUPDTE, to increase the allocation for the resource which is IEF244I TAPEMAP TAPEMAP - UNABLE TO ALLOCATE 1 UNIT(S)
nearing full utilization and cycle JES2 - shut down JES2 and restart it. AT LEAST 1 OFFLINE UNIT(S) NEEDED.
IEF489I TAPEMAP - 1 UNIT(S) NEEDED FOR SYSUT1
You can immediately alleviate the shortage in JQE and JOE by purging some of the jobs from the queue. Use IEF247I TAPEMAP - 310,311,312,313,314,315,316,317 OFFLINE
*03 IEF238D TAPEMAP - REPLY DEVICE NAME OR 'CANCEL'.
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 - 59 - Mise en œuvre Hercules & z/OS - Page - 60 -
Of course, you can resolve this by issuing a VARY command to bring one (or more) of the configured tape 1. Download the AWS tape image from Gregor's site containing the load module:
drives online and then respond to the outstanding message with the address of the now available drives. In http://www.grzes.com/herccmd.aws
fact, you can simply respond to the outstanding message with the address of an offline, but otherwise 2. Use IEBCOPY to restore the load module from the tape image to a load library on your MVS system
available, drive. A more practical solution is to setup your MVS initialization to bring the configured drives 3. Catalog the procedure to invoke the program
online at IPL automatically. 4. Enable DIAG8 commands in Hercules

There are two places the commands to accomplish this task may be placed. 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):
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 //IEBCOPYR JOB (001),'RESTORE HERCCMD',CLASS=A,MSGCLASS=A
needs to contain a line pointing to the COMMND?? member: //RELOAD EXEC PGM=IEBCOPY,REGION=1024K
//SYSPRINT DD SYSOUT=*
//TAPEIN DD UNIT=TAPE,DISP=OLD,DSN=GRZES.HERCCMD,
CMD=00, AUTO COMMANDS: COMMND00
// VOL=SER=DHRCMD,LABEL=(,SL)
//LIBOUT DD DISP=SHR,DSN=SYS2.LINKLIB
CMD=00 specifies that the command member suffix is 00, resulting in the full name of the command //SYSUT3 DD UNIT=SYSDA,SPACE=(80,(60,45)),DISP=(NEW,DELETE)
member: COMMND00. Note the comma, which indicates that there are additional commands following this //SYSIN DD *
one in the IEASYS00 member. During IPL, lines are processed from this member until a line is encountered COPY INDD=TAPEIN,OUTDD=LIBOUT
/*
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??
Here is an IEBUPDTE jobstream that will catalog the procedure to execute the HERCCMD program as a
member, adding your commands to any already existing.
Started Task from the MVS console:
Create (or edit) the COMMND?? member pointed to from the IEASYS00 member and insert a VARY
//IEBUPDTE JOB (001),'HERCCMD PROC',CLASS=A,MSGCLASS=A
command: //IEBUPDTE EXEC PGM=IEBUPDTE,REGION=1024K,PARM=NEW
//SYSUT2 DD DISP=SHR,DSN=SYS2.PROCLIB
COM='VARY (310,311),ONLINE' //SYSPRINT DD SYSOUT=*
//SYSIN DD DATA,DLM='$$'
inserting the address of one or more tape drives defined in your configuration file between the parentheses. In //HERCCMD PROC CMD=MISSING
//HERCCMD EXEC PGM=HERCCMD,PARM='&CMD'
my system, the two tape drives I have defined are 310 and 311, as shown in the VARY command above. ./ ENDUP
$$
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 You need to add a line to your Hercules' configuration file to enable DIAG 8 commands:
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 DIAG8CMD ENABLE
end of the member. Insert a VARY command:
You should also be aware of the security ramifications of enabling this feature of Hercules:
$VS,'V (310,311),ONLINE'

again substituting the address(es) of your defined tape drives in the command. 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
Once you set up this automatic command, your tape drives will be online following each IPL.
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.
How can I use DIAG 8 to submit Hercules' commands from MVS?
An example of the use of the command - when a tape mount is requested, you can issue an MVS Start
Grzes Plucinski has written a program to do this (see message posted on Hercules-390 discussion list: command to execute the catalogued procedure to send a devinit command to Hercules:
http://groups.yahoo.com/group/hercules-390/message/37861). You will need to complete four steps to
implement this on your system: *IEC501A M 311,000001,BLP,6250 BPI,TAPEMAP,TAPEMAP
S HERCCMD,CMD='devinit 0311 tape/cobol.het'

Mise en œuvre Hercules & z/OS - Page - 61 - Mise en œuvre Hercules & z/OS - Page - 62 -
$HASP100 HERCCMD ON STCINRDR print and punch output) will be lost. If it is still executing, you must first terminate the JES2 that encountered
$HASP373 HERCCMD STARTED the problem, which may require a reply of 'TERM' or 'PURGE'. Then enter the command:
HERCCMD - CMD : devinit 0311 tape/cobol.het
HERCCMD - SECURITY PRODUCT UNAVALIABLE, UNABLE TO CHECK AUTH S JES2,PARM='FORMAT,NOREQ'
HERCCMD - RESP : Mounted tape tape/cobol.het
HERCCMD - RESP : HHCTA998I Device 0311 : tape/cobol.het is a Hercules Formatted Tape to start JES2 and have it format the spool dataset(s) and begin execution with no further prompts to the
HERCCMD - RESP : HHCPN098I Device 0311 initialized console.
$HASP395 HERCCMD ENDED
If you have changed values for some of the parameters in the dataset pointed to by the HASPPARM DD to
You could also insert into a jobstream a step executing HERCCMD to pre-mount a required tape before a step invalid values and failed to backup the working set of parameters, you will need to use a standalone editor,
in which the tape is to be used. 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
Why is it necessary to use FORMAT or COLD START when JES2 options change? 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
Although it is not always the case, there are some JES2 options (specified either through the MVS console or SYS1.PARMLIB(JES2PM01), I would use the command:
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 S JES2,M=JES2PM01
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 to restart JES2 and use the newly modified parameters by overriding the default member name (specified by
FORMAT, JES2 will assume that you intended to do a COLD START and message $HASP436 will be issued the symbolic variable M). If everything works satisfactorily I can then replace the contents of
asking you to confirm that you wish to format the SPOOL dataset. Since JES2 will be unable to start without SYS1.PARMLIB(JES2PM00) with the contents of SYS1.PARMLIB(JES2PM01) and the next time MVS is
formatting the SPOOL dataset, you have little option other than to proceed, but note that formatting the IPLed, the new version of the parameters will be read without needing an override from the console. Note
SPOOL dataset will cause the loss of any held SYSOUT data or jobs held awaiting execution. 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.

How can I recover from terminal JES2 problems (corrupted/full spool, damaged 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
checkpoint, invalid parameters, etc)? 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
Most of the questions similar to this asked on the Hercules' forums arise from problems encountered when
the M= value in the start command.
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
I hope that you have found my instructions useful. If you have questions that I can answer to help expand
system was generated, but regardless of the command issued, a procedure that resides in SYS1.PROCLIB is
upon my explanations and examples shown here, please don't hesitate to send them to me:
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
This page was last updated on.
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 - 63 - Mise en œuvre Hercules & z/OS - Page - 64 -
ANNEXES - Démarrage Hercules MVS TCPIP configuration using CTCI-W32
--------------------------------------
Toute la doc Hercules The following values belong in the TCP profile. This configuration has been
http://www.bsp-gmbh.com/hercules/ tested using OS/390 2.9 through z/OS 1.1. The example uses the addresses in
Téléchargements Hercules for Windows en version précompilées: the sample above.
http://www.bsp-gmbh.com/hercules/snapshots/index.html#snapshots
Téléchargement CTCI-W32: The first entry in the TCP profile is the DEVICE entry. This is the
http://www.softdevlabs.com/Hercules/ctci-w32-index.html parameter that defines the UCB address assigned to the interface within the
prendre WINCAP 3.1 MVS environment. It is related to the LINK statement to build the TCPIP
CTCI-W32 connection between the hardware and the TCPIP stack.
Fishlib (téléchargement à http://www.softdevlabs.com/Hercules/hercgui-
index.html )
DEVICE CTC1 CTC E20
Dans Hercules.cnf le boot (IPL) est configuré notamment par LINK CTC1L CTC 0 CTC1
LOADPARM 0A82IW.. (détermine les disques et la config sur laquelle on démarre)
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.
Shéma général
HOME
+----------------------------------------------------------------------+ 192.168.0.4 CTC1L
| |
| W I N D O W S H O S T |
| | 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
| +-------------+ 00-00-5E-A8-00-04 | network. In our example, we are defining a gateway to one physical IP
| | Hercules | +-------------+ | address, 192.168.0.2. 1492 is the data packet size.
| | ----------- | | Hercules's | +-------------|
| | OS/390 | | "virtual" | (FishPack dll) | WinPCap | (to GATEWAY
other LAN work- 192.168.0.2 = CTC1L 1492 HOST
| | TCP/IP | | adapter |<------------------>| device | ATTENTION IL FAUT AJOUTER une ROUTE POUR LE RETOUR sous la forme
stations, Internet, 10 = CTC1 1492 0.255.0.0 0.1.0.0
| | ----------- | | | | driver |
etc...)
| | CTCA | |(192.168.0.4)| + - - - - - - + The DEFAULTNET statement instructs what path the IP stack should take to
| |(192.168.0.4)| +-----+-------+ | Windows's | +- 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.
| +------+------+ | | REAL *--------->|
192.168.0.1 | DEFAULTNET 192.168.0.2 = CTC1L 1492 0
| | | +------------------>| adapter | (LAN) |
Gateway adapter | The final statement needed in the profile is the command to instruct TCPIP
| +------------------+ | (Winsock dll) | 192.168.0.2 | +- to start the device.
----------------+
| (TunTap32 dll) | +-------------+ START CTC1
00-02-48-8B-8D-60
| | 00-80-B3-E1-DF-69
| +---------V-------+ |
| +-| | | Building the static route from the PC to the emulated environment
| +-| | (Windows | | -----------------------------------------------------------------
| | | | Applications) | |
| | | | | | 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

Mise en œuvre Hercules & z/OS - Page - 65 - Mise en œuvre Hercules & z/OS - Page - 66 -
entry persistent. If the command fails (persistent isn't supported under EZZ2500I NETSTAT CS V1R4 TCPIP 407
Win98 SE), remove the -p after ROUTE. You will need to repeat this command DESTINATION GATEWAY FLAGS REFCNT INTERFACE
every re-boot of the PC. 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
installer un loopback sur windows (finalement pas nécessaire, mais je l'ai fait quand 127.0.0.1 0.0.0.0 UH 000004 LOOPBACK
même) 4 OF 4 RECORDS DISPLAYED
http://www.windowsnetworking.com/articles_tutorials/Install-Microsoft-Loopback-adapter-
Windows-XP.html ==============================================================================

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
Définitions réseau coté z/OS
============================================================================== ==============================================================================
; Vérifier qu'on a bien les routes définies coté Windows
; TCPIP.PROFILE.TCPIP ==============================================================================
; =============
; route print
DEVICE CTCA1 CTC E20 Itinéraires actifs :
LINK CTC1 CTC 0 CTCA1 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
HOME 10.1.0.0 255.255.0.0 10.1.15.35 10.1.15.35 20
10.1.3.35 CTC1 10.1.15.35 255.255.255.255 127.0.0.1 127.0.0.1 20 >>> pour
PRIMARYINTERFACE CTC1 marcher en local uniquement
10.255.255.255 255.255.255.255 10.1.15.35 10.1.15.35 20 >>>
GATEWAY 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
10.1.15.35 = CTC1 1492 HOST
10 = CTC1 1492 0.255.0.0 0.1.0.0 >>> nécessaire 224.0.0.0 240.0.0.0 10.1.15.35 10.1.15.35 20
pour le retour des trames IP 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
DEFAULTNET 10.1.15.35 = CTC1 1492 0 Passerelle par défaut : 10.1.255.254
===========================================================================
START CTCA1 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
============================================================================== ==============================================================================
Vérifier que le CTC est bien défini et Actif
==============================================================================
D U,CTC Définition du DNS SCORT dans Hercules
IEE457I 08.13.41 UNIT STATUS 410 On ne défini pas de DNS dans le PROFILE.TCPIP de z/OS,
UNIT TYPE STATUS VOLSER VOLSTATE on prend celui qui existe dans le réseau de SCORT
0E20 CTC A-BSY
0E21 CTC A Préparer les modifs dans le fichier de travail suivant ADCD.ZOSV14S.TCPPARMS(TCPDATA)
0E22 CTC OFFLINE modifier les lignes suivantes:
0E23 CTC OFFLINE
0E40 CTC OFFLINE HOSTNAME HERCULES
0E41 CTC OFFLINE DOMAINORIGIN suresnes.scort.com
0E42 CTC OFFLINE NSINTERADDR 10.1.0.1
0E43 CTC OFFLINE NSINTERADDR 10.1.0.5
NSPORTADDR 53
RESOLVEVIA UDP
RESOLVERTIMEOUT 20
==============================================================================
Vérifier qu'on a bien les routes définies coté z/OS
==============================================================================
HOSTS.LOCAL
D TCPIP,,NET,ROUTE

Mise en œuvre Hercules & z/OS - Page - 67 - Mise en œuvre Hercules & z/OS - Page - 68 -
Dans TCPIP.HOSTS.LOCAL on peut ajouter des noms locaux pour un fonctionnement en local 003800 88 NOT-PERSISTENT VALUE 'N'.
(cas où Hercules est sur un LAN indépendant) 003900*
004000* W03 - API fields
004100*
Exemples de syntaxe
004200 01 W03-HCONN PIC S9(9) BINARY VALUE ZERO.
004300 01 W03-HOBJ PIC S9(9) BINARY VALUE ZERO.
HOST : 10.1.15.37 : JPAREPONDEUR : 004400 01 W03-OPENOPTIONS PIC S9(9) BINARY VALUE ZERO.
HOST : 10.1.15.36 : WLSBEA : 004500 01 W03-COMPCODE PIC S9(9) BINARY VALUE ZERO.
HOST : 10.1.15.35 : ERIKA : (noter que :ERIKA , AUTRENOM: ne fonctionne pas) 004600 01 W03-COMPCODE-CHAR PIC X(9) VALUE SPACES.
HOST : 10.1.3.35 : HERCULES : 004700 01 W03-REASON PIC S9(9) BINARY VALUE ZERO.
004800 01 W03-REASON-CHAR PIC X(9) VALUE SPACES.
La commande Makesite hlq=hlq va créer les fichiers caches locaux, Output is written to 004801 01 W03-CORRELID PIC X(24) VALUE SPACES.
hlq.HOSTS.ADDRINFO and hlq.HOSTS.SITEINFO 004802 01 W03-REQUEST.
004803 COPY CAREQH.
tso makesite hlq=TCPIP 004804 10 W03-DATA-IN PIC X(100).
004810*
004820* W04 - API response fields
Stopper/relancer TCPIP 004830*
004840 01 W04-HCONN PIC S9(9) BINARY VALUE ZERO.
Cette operation est nécessaire pour modifier TCPIP.PROFILE.TCPIP ainsi que
004850 01 W04-HOBJ PIC S9(9) BINARY VALUE ZERO.
TCPIP.TCPIP.DATA 004860 01 W04-OPENOPTIONS PIC S9(9) BINARY VALUE ZERO.
004880 01 W04-DATALEN PIC S9(9) BINARY VALUE 100.
("/p TSPIP" sous SDSF) 004890 01 W04-BUFFERLEN PIC S9(9) BINARY VALUE 100.
Attention: il faut être connecté sur le port 3270 et non sur le port 23 pour éviter 004891 01 W04-RESPONSE.
d'être coupé avec hercules 004892 COPY CAREPH.
et le relancer par "/S TCPIP" 004893 10 W03-DATA-OUT PIC X(1000).
004900*
005000* API control blocks
005100*
Source COBOL CICS pour test Call Out 005200 01 MQM-OBJECT-DESCRIPTOR.
000100* CBL XOPTS(ANSI85) 005300 COPY CMQODV.
000200* CBL NODYNAM,LIB,OBJECT,RENT,RES,APOST 005400 01 MQM-MESSAGE-DESCRIPTOR.
000300* * 005500 COPY CMQMDV.
000400* ------------------------------------------------------------- * 005600 01 MQM-PUT-MESSAGE-OPTIONS.
000500 IDENTIFICATION DIVISION. 005700 COPY CMQPMOV.
000600* ------------------------------------------------------------- * 005710 01 MQM-GET-MESSAGE-OPTIONS.
000700 PROGRAM-ID. CSQ4CVK2. 005720 COPY CMQGMOV.
000800 DATA DIVISION. 005800*
000900* ------------------------------------------------------------- * 005900* MQV contains constants (for filling in the control blocks)
001000 FILE SECTION. 006000* and return codes (for testing the result of a call)
001100* ------------------------------------------------------------- * 006100*
001200 WORKING-STORAGE SECTION. 006200 01 MQM-CONSTANTS.
001300* ------------------------------------------------------------- * 006300 COPY CMQV SUPPRESS.
001400* 006400*
001500* W00 - General work fields 006500* DFHAID contains the constants used for checking for
001600* 006600* attention identifiers
001700 01 W00-RETURN-CODE PIC S9(4) BINARY VALUE ZERO. 006700*
001800 01 W00-LOOP PIC S9(9) BINARY VALUE 0. 006800 COPY DFHAID SUPPRESS.
001900 01 W00-NUMPUTS-NUM PIC 9(9) VALUE 0. 006900*
002000 01 W00-NUMPUTS PIC S9(9) BINARY VALUE 0. 007000*
002010 01 W00-NUMGETS-NUM PIC 9(9) VALUE 0. 007100* ------------------------------------------------------------- *
002020 01 W00-NUMGETS PIC S9(9) BINARY VALUE 0. 007200 LINKAGE SECTION.
002100 01 W00-ERROR-MESSAGE PIC X(10) VALUE SPACES. 007300* ------------------------------------------------------------- *
002200 01 W00-MESSAGE PIC X(80) VALUE SPACES. 007400 EJECT
002210 01 W00-WAIT-INTERVAL PIC S9(09) BINARY VALUE 5000. 007500* ------------------------------------------------------------- *
002300* 007600 PROCEDURE DIVISION.
002400* Parameter variables 007700* ------------------------------------------------------------- *
002500* 007800* ------------------------------------------------------------- *
002600 01 W00-PARM-LEN PIC S9(03) BINARY. 007900 A-MAIN SECTION.
002700 01 W00-PARM-STRING. 008000* ------------------------------------------------------------- *
002800 02 W00-PARM-STRING-ARRAY PIC X(1) OCCURS 100 TIMES. 008100*
002900* 008200* Receive the parameter list passed in by CICS
003000 01 W00-TRANSNAME PIC X(8) VALUE ' '. 008300*
003100 01 W00-QNAME PIC X(48) VALUE 'JRULES.TARGET.QUEUE'. 008400 MOVE SPACES TO W00-PARM-STRING.
003200 01 W00-RTQNAME PIC X(18) VALUE 'JRULES.REPLY.QUEUE'. 008500 MOVE LENGTH OF W00-PARM-STRING TO W00-PARM-LEN.
003400 01 W00-MSGBUFFER PIC X(100) VALUE SPACES. 008600*
003600 01 W00-MSGLENGTH PIC S9(9) BINARY VALUE 622. 008700 EXEC CICS IGNORE CONDITION LENGERR END-EXEC.
003700 01 W00-PERSISTENCE PIC X(1) VALUE 'N'. 008800 EXEC CICS RECEIVE

Mise en œuvre Hercules & z/OS - Page - 69 - Mise en œuvre Hercules & z/OS - Page - 70 -
008900 INTO( W00-PARM-STRING ) 015900*
009000 LENGTH( W00-PARM-LEN ) 015901 IF (W03-COMPCODE NOT = MQCC-OK) THEN
009100 END-EXEC. 015902 MOVE 'MQOPEN' TO W00-ERROR-MESSAGE
009200* 015903 PERFORM DISPLAY-ERROR-MESSAGE
009300* Move parameters into corresponding variables 015904 MOVE W03-REASON TO W00-RETURN-CODE
009400* 015905 GO TO CLOSEH03
009500 UNSTRING W00-PARM-STRING 015906 END-IF.
009600 DELIMITED BY ALL ',' 015910 MOVE MQPER-NOT-PERSISTENT TO MQMD-PERSISTENCE.
009700 INTO W00-TRANSNAME 016000 MOVE MQFMT-STRING TO MQMD-FORMAT.
009800 W00-MSGBUFFER. 016100 MOVE W00-RTQNAME TO MQMD-REPLYTOQ.
010100* 016110 MOVE FUNCTION CURRENT-DATE TO W03-CORRELID.
010200* Display parameters to be used in the program 016111 MOVE W03-CORRELID TO MQMD-CORRELID
010300* 016200 MOVE MQMI-NONE TO MQMD-MSGID.
010400* DISPLAY '==========================================='. 016210 MOVE SPACES TO W03-DATA-IN
010500* DISPLAY ' INQUIRE QUEUE :', W00-QNAME. 016220 MOVE W00-MSGBUFFER TO W03-DATA-IN
010510* DISPLAY ' REPLY QUEUE :', W00-RTQNAME. 016230 MOVE LENGTH OF W03-DATA-IN TO RQ-LENGTH
010700* DISPLAY ' MSGBUFFER - ', W00-MSGBUFFER. 016250 MOVE 'TestBeanSOAPRPCLiteralService' TO RQ-SERVICE
011000* DISPLAY '==========================================='. 016260 MOVE 'executeString' TO RQ-OPERATION
011100* 016310* COMPUTE MQPMO-OPTIONS = MQPMO-NEW-MSG-ID +
011200* If parameter list invalid then call USAGE-ERROR 016400* MQPMO-NEW-CORREL-ID +
011300* and exit 016401* MQPMO-SET-IDENTITY-CONTEXT +
011400* 016402 COMPUTE MQPMO-OPTIONS = MQPMO-FAIL-IF-QUIESCING +
012410 IF W00-MSGBUFFER = SPACES 016510 MQPMO-NO-SYNCPOINT.
012420 PERFORM USAGE-ERROR 017000*
012430 MOVE 8 TO W00-RETURN-CODE 017100* Put msg to dest queue
012440 GO TO A-MAIN-END 017200*
012450 END-IF. 017210* DISPLAY 'PUT W03-HOBJ'
013300* 017300 CALL 'MQPUT' USING W03-HCONN
013400* Open the queue for output. Fail the call if the queue 017400 W03-HOBJ
013500* manager is quiescing. 017500 MQMD
013600* 017600 MQPMO
013700 COMPUTE W03-OPENOPTIONS = MQOO-OUTPUT + 017700 W00-MSGLENGTH
013800 MQOO-INQUIRE + 017800 W03-REQUEST
013900 MQOO-SET-IDENTITY-CONTEXT. 017900 W03-COMPCODE
014000* MQOO-FAIL-IF-QUIESCING. 018000 W03-REASON.
014100 018100* DISPLAY 'MQMD-MSGID:' MQMD-MSGID.
014200 MOVE W00-QNAME TO MQOD-OBJECTNAME. 018200* DISPLAY 'MQMD-CORRELID:' MQMD-CORRELID.
014300* 018300*
014310* DISPLAY 'OPEN W03-HOBJ' 018400* If put failed then display error message
014400 CALL 'MQOPEN' USING W03-HCONN 018500* and break out of loop
014500 MQOD 018600*
014600 W03-OPENOPTIONS 018700 ADD 1 TO W00-NUMPUTS
014700 W03-HOBJ 018800 IF (W03-COMPCODE NOT = MQCC-OK) THEN
014800 W03-COMPCODE 018900 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM
014900 W03-REASON. 019000 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR
015300 IF (W03-COMPCODE NOT = MQCC-OK) THEN 019100 MOVE W03-REASON TO W03-REASON-CHAR
015400 MOVE 'MQOPEN' TO W00-ERROR-MESSAGE 019200
015500 PERFORM DISPLAY-ERROR-MESSAGE 019300 MOVE SPACES TO W00-MESSAGE
015600 MOVE W03-REASON TO W00-RETURN-CODE 019400 STRING 'MQPUT ', W00-NUMPUTS-NUM, ' failed'
015700 GO TO A-MAIN-END 019500 ' * CC : ', W03-COMPCODE-CHAR,
015800 END-IF. 019600 ' * RC : ', W03-REASON-CHAR, ' *'
015810* 019700 DELIMITED BY SIZE INTO W00-MESSAGE
015820* Open the queue for GET from JRULES (same options) 019800 PERFORM DISPLAY-MESSAGE
015830* 019900
015840 COMPUTE W04-OPENOPTIONS = MQOO-INPUT-SHARED + 020000 MOVE W03-REASON TO W00-RETURN-CODE
015850 MQOO-INQUIRE + 020010 GO TO CLOSEH04
015870 MQOO-FAIL-IF-QUIESCING. 020200*
015880 MOVE W00-RTQNAME TO MQOD-OBJECTNAME. 020400*
015890* 020500* If no error occurred, display the number of messages
015891* DISPLAY 'W04-HOBJ' 020600* successfully put to the queue
015892 CALL 'MQOPEN' USING W03-HCONN 020700*
015893 MQOD 020800 IF (W03-COMPCODE = MQCC-OK) THEN
015894 W04-OPENOPTIONS 020900 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM
015895 W04-HOBJ 021000 MOVE SPACES TO W00-MESSAGE
015896 W03-COMPCODE 021100 STRING W00-NUMPUTS-NUM, ' MESSAGES PUT TO QUEUE'
015897 W03-REASON. 021200 DELIMITED BY SIZE INTO W00-MESSAGE
015898* 021300 PERFORM DISPLAY-MESSAGE
015899* If open failed then display error message and exit 021400 END-IF.

Mise en œuvre Hercules & z/OS - Page - 71 - Mise en œuvre Hercules & z/OS - Page - 72 -
021401 GET-RESPONSE. 022800*
021403 COMPUTE MQGMO-OPTIONS = MQGMO-NO-SYNCPOINT + 022900*
021404 MQGMO-WAIT + 023000 A-MAIN-END.
021405 MQGMO-FAIL-IF-QUIESCING. 023100*
021408 MOVE W00-WAIT-INTERVAL TO MQGMO-WAITINTERVAL. 023200*
021413 MOVE MQMI-NONE TO MQMD-MSGID. 023300 MOVE W00-RETURN-CODE TO RETURN-CODE
021414 MOVE W03-CORRELID TO MQMD-CORRELID. 023400 EXEC CICS RETURN END-EXEC.
021415 MOVE MQENC-NATIVE TO MQMD-ENCODING. 023500*
021416 MOVE MQCCSI-Q-MGR TO MQMD-CODEDCHARSETID. 023600 GOBACK.
021418 MOVE LENGTH OF W04-RESPONSE TO W04-BUFFERLEN. 023700 EJECT
021419* 023800*
021421* DISPLAY 'GET W04-HOBJ' 023900* ------------------------------------------------------------- *
021422 CALL 'MQGET' USING W03-HCONN 024000 USAGE-ERROR SECTION.
021423 W04-HOBJ 024100* ------------------------------------------------------------- *
021424 MQMD 024200*
021425 MQGMO 024300 MOVE SPACES TO W00-MESSAGE.
021426 W04-BUFFERLEN 024400 MOVE '=Usage : SCPT,BUFFER' TO W00-MESSAGE.
021427 W04-RESPONSE 024600 PERFORM DISPLAY-MESSAGE.
021428 W04-DATALEN 024700*
021429 W03-COMPCODE 024800 USAGE-ERROR-END.
021430 W03-REASON. 024900*
021446 ADD 1 TO W00-NUMGETS 025000* RETURN TO PERFORMING FUNCTION
021447 IF (W03-COMPCODE NOT = MQCC-OK) THEN 025100*
021448 MOVE W00-NUMGETS TO W00-NUMGETS-NUM 025200 EXIT.
021449 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR 025300*
021450 MOVE W03-REASON TO W03-REASON-CHAR 025400* ------------------------------------------------------------- *
021451 025500 DISPLAY-ERROR-MESSAGE SECTION.
021452 MOVE SPACES TO W00-MESSAGE 025600* ------------------------------------------------------------- *
021453 STRING 'MQGET ', W00-NUMGETS-NUM, ' failed' 025700*
021454 ' * CC : ', W03-COMPCODE-CHAR, 025800 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR.
021455 ' * RC : ', W03-REASON-CHAR, ' *' 025900 MOVE W03-REASON TO W03-REASON-CHAR.
021456 DELIMITED BY SIZE INTO W00-MESSAGE 026000*
021457 PERFORM DISPLAY-MESSAGE 026100 MOVE SPACES TO W00-MESSAGE.
021458 MOVE W03-REASON TO W00-RETURN-CODE 026200 STRING '* ', W00-ERROR-MESSAGE,
021459 END-IF. 026300 ' * CC : ', W03-COMPCODE-CHAR,
021460 IF (W03-COMPCODE = MQCC-OK) THEN 026400 ' * RC : ', W03-REASON-CHAR, ' *'
021461 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM 026500 DELIMITED BY SIZE INTO W00-MESSAGE.
021462 MOVE SPACES TO W00-MESSAGE 026600 PERFORM DISPLAY-MESSAGE.
021463 MOVE W03-DATA-OUT(1:79) TO W00-MESSAGE 026700*
021465 PERFORM DISPLAY-MESSAGE 026800 DISPLAY-ERROR-MESSAGE-END.
021467 END-IF. 026900*
022701 CLOSEH04. 027000* RETURN TO PERFORMING FUNCTION
022702* 027100*
022703* Close the queues 027200 EXIT.
022704* 027300*
022705* DISPLAY 'CLOS W04-HOBJ' 027400* ------------------------------------------------------------- *
022706 CALL 'MQCLOSE' USING W03-HCONN 027500 DISPLAY-MESSAGE SECTION.
022707 W04-HOBJ 027600* ------------------------------------------------------------- *
022708 MQCO-NONE 027700*
022709 W03-COMPCODE 027800 EXEC CICS SEND
022710 W03-REASON. 027900 FROM( W00-MESSAGE )
022711 IF (W03-COMPCODE NOT = MQCC-OK) THEN 028000 LENGTH( 79 )
022712 MOVE 'MQCLOSE' TO W00-ERROR-MESSAGE 028100 ERASE
022713 PERFORM DISPLAY-ERROR-MESSAGE 028200 END-EXEC.
022714 MOVE W03-REASON TO W00-RETURN-CODE 028300 MOVE SPACES TO W00-MESSAGE.
022715 END-IF. 028400*
022716 CLOSEH03. 028500 DISPLAY-MESSAGE-END.
022717* DISPLAY 'CLOS W03-HOBJ' 028600*
022718 CALL 'MQCLOSE' USING W03-HCONN 028700* RETURN TO PERFORMING FUNCTION
022720 W03-HOBJ 028800*
022730 MQCO-NONE 028900 EXIT.
022740 W03-COMPCODE 029000*
022750 W03-REASON. 029100*
022760 IF (W03-COMPCODE NOT = MQCC-OK) THEN 029200* ------------------------------------------------------------- *
022770 MOVE 'MQCLOSE' TO W00-ERROR-MESSAGE 029300* END OF PROGRAM
022780 PERFORM DISPLAY-ERROR-MESSAGE 029400* ------------------------------------------------------------- *
022790 MOVE W03-REASON TO W00-RETURN-CODE
022791 END-IF.

Mise en œuvre Hercules & z/OS - Page - 73 - Mise en œuvre Hercules & z/OS - Page - 74 -
004893 COPY CAREPH.
Source COBOL Batch pour test Call Out 004894 10 W03-DATA-OUT PIC X(1000) VALUE SPACES.
000100* CBL XOPTS(ANSI85) 004900*
000200* CBL NODYNAM,LIB,OBJECT,RENT,RES,APOST 005000* API control blocks
000300* * 005100*
000400* ------------------------------------------------------------- * 005200 01 MQM-OBJECT-DESCRIPTOR.
000500 IDENTIFICATION DIVISION. 005300 COPY CMQODV.
000600* ------------------------------------------------------------- * 005400 01 MQM-MESSAGE-DESCRIPTOR.
000700 PROGRAM-ID. CSQ4BVK3. 005500 COPY CMQMDV.
000800 DATA DIVISION. 005600 01 MQM-PUT-MESSAGE-OPTIONS.
000900* ------------------------------------------------------------- * 005700 COPY CMQPMOV.
001000 FILE SECTION. 005710 01 MQM-GET-MESSAGE-OPTIONS.
001100* ------------------------------------------------------------- * 005720 COPY CMQGMOV.
001200 WORKING-STORAGE SECTION. 005800*
001300* ------------------------------------------------------------- * 005900* MQV contains constants (for filling in the control blocks)
001400* 006000* and return codes (for testing the result of a call)
001500* W00 - General work fields 006100*
001600* 006200 01 MQM-CONSTANTS.
001700 01 W00-RETURN-CODE PIC S9(4) BINARY VALUE ZERO. 006300 COPY CMQV SUPPRESS.
001800 01 W00-LOOP-NUMS PIC 9(5). 006400*
001810 01 W00-LOOP PIC S9(9) BINARY VALUE 0. 007100* ------------------------------------------------------------- *
001900 01 W00-NUMPUTS-NUM PIC 9(9) VALUE 0. 007200 LINKAGE SECTION.
002000 01 W00-NUMPUTS PIC S9(9) BINARY VALUE 0. 007300* ------------------------------------------------------------- *
002010 01 W00-NUMGETS-NUM PIC 9(9) VALUE 0. 007310 01 PARMDATA.
002020 01 W00-NUMGETS PIC S9(9) BINARY VALUE 0. 007320 05 PARM-LEN PIC S9(03) BINARY.
002100 01 W00-ERROR-MESSAGE PIC X(10) VALUE SPACES. 007330 05 PARM-STRING PIC X(100).
002200 01 W00-MESSAGE PIC X(80) VALUE SPACES. 007400 EJECT
002210 01 W00-WAIT-INTERVAL PIC S9(09) BINARY VALUE 5000. 007500* ------------------------------------------------------------- *
002300* 007600 PROCEDURE DIVISION USING PARMDATA.
002400* Parameter variables 007700* ------------------------------------------------------------- *
002500* 007800* ------------------------------------------------------------- *
002510 01 W00-NUMMSGS-NUM PIC 9(4) VALUE 0. 007900 A-MAIN SECTION.
002520 01 W00-NUMMSGS PIC S9(9) BINARY VALUE 1. 008000* ------------------------------------------------------------- *
002600 01 W00-PARM-LEN PIC S9(03) BINARY. 008100 IF PARM-LEN = 0 THEN
002700 01 W00-PARM-STRING. 008200 PERFORM USAGE-ERROR
002800 02 W00-PARM-STRING-ARRAY PIC X(1) OCCURS 100 TIMES. 008300 MOVE 8 TO W00-RETURN-CODE
002900* 008400 GO TO A-MAIN-END
003000 01 W00-TRANSNAME PIC X(8) VALUE ' '. 008500 END-IF.
003100 01 W00-QMGR PIC X(48) VALUE 'CSQ1'. 008600*
003110 01 W00-QNAME PIC X(48) VALUE 'JRULES.TARGET.QUEUE'. 008700* Move parameters into corresponding variables
003200 01 W00-RTQNAME PIC X(18) VALUE 'JRULES.REPLY.QUEUE'. 008800*
003400 01 W00-MSGBUFFER PIC X(20) VALUE SPACES. 008900 UNSTRING PARM-STRING DELIMITED BY ALL ','
003600 01 W00-MSGLENGTH PIC S9(9) BINARY VALUE 622. 009000 INTO W00-NUMMSGS-NUM
003700 01 W00-PERSISTENCE PIC X(1) VALUE 'N'. 009400 W00-MSGBUFFER.
003800 88 NOT-PERSISTENT VALUE 'N'. 009500 MOVE W00-NUMMSGS-NUM TO W00-NUMMSGS.
003900* 009600*
004000* W03 - API fields 009700* Display parameters to be used in the program
004100* 009800*
004200 01 W03-HCONN PIC S9(9) BINARY VALUE ZERO. 010100 DISPLAY '==========================================='.
004300 01 W03-HOBJ PIC S9(9) BINARY VALUE ZERO. 010200 DISPLAY 'PARAMETERS PASSED :'.
004400 01 W03-OPENOPTIONS PIC S9(9) BINARY VALUE ZERO. 010700 DISPLAY ' Nbre de boucles- ', W00-NUMMSGS-NUM.
004500 01 W03-COMPCODE PIC S9(9) BINARY VALUE ZERO. 010800 DISPLAY ' MSGBUFFER - ', W00-MSGBUFFER.
004600 01 W03-COMPCODE-CHAR PIC X(9) VALUE SPACES. 011000 DISPLAY '==========================================='.
004700 01 W03-REASON PIC S9(9) BINARY VALUE ZERO. 011100*
004800 01 W03-REASON-CHAR PIC X(9) VALUE SPACES. 011200* If parameter list invalid then call USAGE-ERROR
004801 01 W03-CORRELID PIC X(24) VALUE SPACES. 011300* and exit
004804 01 W03-REQUEST. 011400*
004805 COPY CAREQH. 012410 IF W00-NUMMSGS-NUM = SPACES
004809 10 W03-DATA-IN PIC X(100) VALUE SPACES. 012420 PERFORM USAGE-ERROR
004810* 012430 MOVE 8 TO W00-RETURN-CODE
004820* W04 - API response fields 012440 GO TO A-MAIN-END
004830* 012450 END-IF.
004840 01 W04-HCONN PIC S9(9) BINARY VALUE ZERO. 012451 IF W00-MSGBUFFER = SPACES
004850 01 W04-HOBJ PIC S9(9) BINARY VALUE ZERO. 012452 PERFORM USAGE-ERROR
004860 01 W04-OPENOPTIONS PIC S9(9) BINARY VALUE ZERO. 012453 MOVE 8 TO W00-RETURN-CODE
004880 01 W04-DATALEN PIC S9(9) BINARY VALUE 100. 012454 GO TO A-MAIN-END
004890 01 W04-BUFFERLEN PIC S9(9) BINARY VALUE 100. 012455 END-IF.
004891 01 W04-RESPONSE. 012460*

Mise en œuvre Hercules & z/OS - Page - 75 - Mise en œuvre Hercules & z/OS - Page - 76 -
012470* Connect to the queue manager 016308 MOVE W00-MSGBUFFER TO W03-DATA-IN
012480* 016309 MOVE LENGTH OF W03-DATA-IN TO RQ-LENGTH
012490 CALL 'MQCONN' USING W00-QMGR 016311 MOVE 'TestBeanSOAPRPCLiteralService' TO RQ-SERVICE
012500 W03-HCONN 016312 MOVE 'executeString' TO RQ-OPERATION
012600 W03-COMPCODE 016320* COMPUTE MQPMO-OPTIONS = MQPMO-NEW-MSG-ID +
012700 W03-REASON. 016400* MQPMO-NEW-CORREL-ID +
012800* 016401* MQPMO-SET-IDENTITY-CONTEXT +
012900* If connection failed then display error message and exit 016402 COMPUTE MQPMO-OPTIONS = MQPMO-FAIL-IF-QUIESCING +
013000* 016510 MQPMO-NO-SYNCPOINT
013100 IF (W03-COMPCODE NOT = MQCC-OK) THEN 017000*
013200 MOVE 'MQCONN' TO W00-ERROR-MESSAGE 017100* Put msg to dest queue
013210 PERFORM DISPLAY-ERROR-MESSAGE 017200*
013220 MOVE W03-REASON TO W00-RETURN-CODE 017300 CALL 'MQPUT' USING W03-HCONN
013230 GO TO A-MAIN-END 017400 W03-HOBJ
013240 END-IF. 017500 MQMD
013250 DISPLAY 'MQCONN SUCCESSFUL'. 017600 MQPMO
013300* 017700 W00-MSGLENGTH
013400* Open the queue for output. Fail the call if the queue 017800 W03-REQUEST
013500* manager is quiescing. 017900 W03-COMPCODE
013600* 018000 W03-REASON
013700 COMPUTE W03-OPENOPTIONS = MQOO-OUTPUT + 018100* DISPLAY 'MQMD-MSGID:' MQMD-MSGID
013800 MQOO-INQUIRE + 018200* DISPLAY 'MQMD-CORRELID:' MQMD-CORRELID
013900 MQOO-SET-IDENTITY-CONTEXT + 018300*
014000 MQOO-FAIL-IF-QUIESCING. 018400* If put failed then display error message
014200 MOVE W00-QNAME TO MQOD-OBJECTNAME. 018500* and break out of loop
014400 CALL 'MQOPEN' USING W03-HCONN 018600*
014500 MQOD 018700 ADD 1 TO W00-NUMPUTS
014600 W03-OPENOPTIONS 018800 IF (W03-COMPCODE NOT = MQCC-OK) THEN
014700 W03-HOBJ 018900 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM
014800 W03-COMPCODE 019000 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR
014900 W03-REASON. 019100 MOVE W03-REASON TO W03-REASON-CHAR
015300 IF (W03-COMPCODE NOT = MQCC-OK) THEN 019200
015400 MOVE 'MQOPEN' TO W00-ERROR-MESSAGE 019300 MOVE SPACES TO W00-MESSAGE
015500 PERFORM DISPLAY-ERROR-MESSAGE 019400 STRING 'MQPUT ', W00-NUMPUTS-NUM, ' failed'
015600 MOVE W03-REASON TO W00-RETURN-CODE 019500 ' * CC : ', W03-COMPCODE-CHAR,
015700 GO TO A-MAIN-END 019600 ' * RC : ', W03-REASON-CHAR, ' *'
015800 END-IF. 019700 DELIMITED BY SIZE INTO W00-MESSAGE
015810* 019800 PERFORM DISPLAY-MESSAGE
015820* Open the queue for GET from JRULES (same options) 019900
015830* 020000 MOVE W03-REASON TO W00-RETURN-CODE
015840 COMPUTE W04-OPENOPTIONS = MQOO-INPUT-SHARED + 020010 GO TO CLOSEH04
015850 MQOO-INQUIRE + 020020 END-IF
015870 MQOO-FAIL-IF-QUIESCING. 020400*
015880 MOVE W00-RTQNAME TO MQOD-OBJECTNAME. 020500* If no error occurred, display the number of messages
015891 CALL 'MQOPEN' USING W03-HCONN 020600* successfully put to the queue
015892 MQOD 020700*
015893 W04-OPENOPTIONS 020800 IF (W03-COMPCODE = MQCC-OK) THEN
015894 W04-HOBJ 020900 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM
015895 W03-COMPCODE 021000 MOVE SPACES TO W00-MESSAGE
015896 W03-REASON. 021100 STRING W00-NUMPUTS-NUM, ' MESSAGES PUT TO QUEUE'
015900 IF (W03-COMPCODE NOT = MQCC-OK) THEN 021200 DELIMITED BY SIZE INTO W00-MESSAGE
015901 MOVE 'MQOPEN' TO W00-ERROR-MESSAGE 021300 PERFORM DISPLAY-MESSAGE
015902 PERFORM DISPLAY-ERROR-MESSAGE 021400 END-IF
015903 MOVE W03-REASON TO W00-RETURN-CODE 021403 COMPUTE MQGMO-OPTIONS = MQGMO-NO-SYNCPOINT +
015905 GO TO CLOSEH03 021404 MQGMO-WAIT +
015906 END-IF. 021405 MQGMO-FAIL-IF-QUIESCING
015907 PERFORM WITH TEST BEFORE VARYING W00-LOOP FROM 0 BY 1 021408 MOVE W00-WAIT-INTERVAL TO MQGMO-WAITINTERVAL
015908 UNTIL (W00-LOOP >= W00-NUMMSGS) 021413 MOVE MQMI-NONE TO MQMD-MSGID
015910 MOVE MQPER-NOT-PERSISTENT TO MQMD-PERSISTENCE 021414 MOVE W03-CORRELID TO MQMD-CORRELID
016000 MOVE MQFMT-STRING TO MQMD-FORMAT 021415 MOVE MQENC-NATIVE TO MQMD-ENCODING
016100 MOVE W00-RTQNAME TO MQMD-REPLYTOQ 021416 MOVE MQCCSI-Q-MGR TO MQMD-CODEDCHARSETID
016200 MOVE MQMI-NONE TO MQMD-MSGID 021418 MOVE LENGTH OF W04-RESPONSE TO W04-BUFFERLEN
016301 MOVE W00-LOOP TO W00-LOOP-NUMS 021421 CALL 'MQGET' USING W03-HCONN
016303 MOVE FUNCTION CURRENT-DATE TO MQMD-CORRELID 021422 W04-HOBJ
016304* DISPLAY 'LOOP : ' W00-LOOP-NUMS 021423 MQMD
016305 MOVE W00-LOOP-NUMS TO MQMD-CORRELID(17:5) 021424 MQGMO
016306 MOVE MQMD-CORRELID TO W03-CORRELID 021425 W04-BUFFERLEN
016307 MOVE SPACES TO W03-DATA-IN 021426 W04-RESPONSE

Mise en œuvre Hercules & z/OS - Page - 77 - Mise en œuvre Hercules & z/OS - Page - 78 -
021427 W04-DATALEN 023200*
021428 W03-COMPCODE 023300 MOVE W00-RETURN-CODE TO RETURN-CODE
021429 W03-REASON 023400 STOP RUN.
021446 ADD 1 TO W00-NUMGETS 023500*
021447 IF (W03-COMPCODE NOT = MQCC-OK) THEN 023600 GOBACK.
021448 MOVE W00-NUMGETS TO W00-NUMGETS-NUM 023700 EJECT
021449 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR 023800*
021450 MOVE W03-REASON TO W03-REASON-CHAR 023900* ------------------------------------------------------------- *
021451 024000 USAGE-ERROR SECTION.
021452 MOVE SPACES TO W00-MESSAGE 024100* ------------------------------------------------------------- *
021453 STRING 'MQGET ', W00-NUMGETS-NUM, ' failed' 024200*
021454 ' * CC : ', W03-COMPCODE-CHAR, 024300 MOVE SPACES TO W00-MESSAGE.
021455 ' * RC : ', W03-REASON-CHAR, ' *' 024400 MOVE '=Usage : nbre boucles,Buffer' TO W00-MESSAGE.
021456 DELIMITED BY SIZE INTO W00-MESSAGE 024600 PERFORM DISPLAY-MESSAGE.
021457 PERFORM DISPLAY-MESSAGE 024700*
021458 MOVE W03-REASON TO W00-RETURN-CODE 024800 USAGE-ERROR-END.
021459 END-IF 024900*
021460 IF (W03-COMPCODE = MQCC-OK) THEN 025000* RETURN TO PERFORMING FUNCTION
021461 MOVE W00-NUMPUTS TO W00-NUMPUTS-NUM 025100*
021462 MOVE SPACES TO W00-MESSAGE 025200 EXIT.
021463 MOVE W03-DATA-OUT TO W00-MESSAGE 025300*
021465 PERFORM DISPLAY-MESSAGE 025400* ------------------------------------------------------------- *
021466 DISPLAY 'RECU: ' W04-DATALEN 025500 DISPLAY-ERROR-MESSAGE SECTION.
021467 END-IF 025600* ------------------------------------------------------------- *
021468 END-PERFORM. 025700*
021470 CLOSEH04. 025800 MOVE W03-COMPCODE TO W03-COMPCODE-CHAR.
021500* 025900 MOVE W03-REASON TO W03-REASON-CHAR.
021600* Close the queues 026000*
021700* 026100 MOVE SPACES TO W00-MESSAGE.
021800 CALL 'MQCLOSE' USING W03-HCONN 026200 STRING '* ', W00-ERROR-MESSAGE,
021900 W04-HOBJ 026300 ' * CC : ', W03-COMPCODE-CHAR,
022000 MQCO-NONE 026400 ' * RC : ', W03-REASON-CHAR, ' *'
022100 W03-COMPCODE 026500 DELIMITED BY SIZE INTO W00-MESSAGE.
022200 W03-REASON. 026600 PERFORM DISPLAY-MESSAGE.
022300 IF (W03-COMPCODE NOT = MQCC-OK) THEN 026700*
022400 MOVE 'MQCLOSE' TO W00-ERROR-MESSAGE 026800 DISPLAY-ERROR-MESSAGE-END.
022500 PERFORM DISPLAY-ERROR-MESSAGE 026900*
022600 MOVE W03-REASON TO W00-RETURN-CODE 027000* RETURN TO PERFORMING FUNCTION
022700 END-IF. 027100*
022701 CLOSEH03. 027200 EXIT.
022710 CALL 'MQCLOSE' USING W03-HCONN 027300*
022720 W03-HOBJ 027400* ------------------------------------------------------------- *
022730 MQCO-NONE 027500 DISPLAY-MESSAGE SECTION.
022740 W03-COMPCODE 027600* ------------------------------------------------------------- *
022750 W03-REASON. 027700*
022760 IF (W03-COMPCODE NOT = MQCC-OK) THEN 027800 DISPLAY W00-MESSAGE
022770 MOVE 'MQCLOSE' TO W00-ERROR-MESSAGE 028300 MOVE SPACES TO W00-MESSAGE.
022780 PERFORM DISPLAY-ERROR-MESSAGE 028400*
022790 MOVE W03-REASON TO W00-RETURN-CODE 028500 DISPLAY-MESSAGE-END.
022791 END-IF. 028600*
022800* 028700* RETURN TO PERFORMING FUNCTION
022810 A-MAIN-DISCONNECT. 028800*
022820* 028900 EXIT.
022830* Disconnect from the queue manager 029000*
022840* 029100*
022850 CALL 'MQDISC' USING W03-HCONN 029200* ------------------------------------------------------------- *
022860 W03-COMPCODE 029300* END OF PROGRAM
022870 W03-REASON. 029400* ------------------------------------------------------------- *
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 COPY CAREQH et CAREPH pour Call Out SCORT
022893 ELSE 10 CALL-OUT-REQUEST-HEADER.
022894 DISPLAY 'MQDISC SUCCESSFUL' 15 RQ-VERSION PIC 9(2) VALUE 01.
022895 END-IF. 15 RQ-SERVICE PIC X(256) VALUE SPACES.
022900* 15 RQ-OPERATION PIC X(256) VALUE SPACES.
023000 A-MAIN-END. 15 RQ-LENGTH PIC S9(8) COMP VALUE 100.
023100* 10 CALL-OUT-RESPONSE-HEADER.

Mise en œuvre Hercules & z/OS - Page - 79 - Mise en œuvre Hercules & z/OS - Page - 80 -
15 RESP-VERSION PIC 9(2) VALUE 01. // COND=(4,LT,ASM) 00530000
15 RESP-RC PIC S9(8) COMP. //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) 00540000
15 RESP-LENGTH PIC S9(8) COMP. //SYSLMOD DD DSN=DSN710.SDSNEXIT(&MEM),DISP=SHR 00550000
//SYSPRINT DD SYSOUT=* 00560000
//SYSUDUMP DD SYSOUT=* 00570000
Samples CICS DB2 pour transaction D8SC //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(50,50)) 00580000
//* 00590000
JOB DSNTEJ1 – création des objets DB2 et chargement des tables //ASMCL PEND 00600000
//********************************************************************* 00610000
//* 00620000
//********************************************************************* 00010000 //* STEP 1: CREATE SAMPLE STORAGE GROUPS, TABLESPACES 00630000
//* NAME = DSNTEJ1 00020000 //* 00640000
//* 00030000 //PH01S01 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 00650000
//* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION 00040000 //SYSTSPRT DD SYSOUT=* 00660000
//* PHASE 1 (LOCAL SITE ONLY) 00050000 //SYSTSIN DD * 00670000
//* 00060000 DSN SYSTEM(DSN1) 00680000
//* LICENSED MATERIALS - PROPERTY OF IBM 00070000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 00690000
//* 5675-DB2 00080000 LIB('DSN710.RUNLIB.LOAD') 00700000
//* (C) COPYRIGHT 1982, 2000 IBM CORP. ALL RIGHTS RESERVED. 00090000 //SYSPRINT DD SYSOUT=* 00710000
//* 00100000 //SYSUDUMP DD SYSOUT=* 00720000
//* STATUS = VERSION 7 00110000 //SYSIN DD * 00730000
//* 00120000 00740000
//* FUNCTION = THIS JCL PERFORMS THE PHASE 1 SETUP FOR THE SAMPLE 00130000 CREATE STOGROUP DSN8G710 00750000
//* APPLICATIONS ON A LOCAL DB2 SYSTEM (A SYSTEM WHICH 00140000 VOLUMES (S4DB21) 00760000
//* WILL CONTAIN THE ACTUAL SAMPLE TABLES). 00150000 VCAT DSNC710; 00770000
//* 00160000 00780000
//* NOTICE = 00170000 CREATE DATABASE DSN8D71A 00790000
//* THIS SAMPLE JOB USES DB2 UTILITIES. SOME UTILITY FUNCTIONS ARE 00180000 STOGROUP DSN8G710 00800000
//* ELEMENTS OF SEPARATELY ORDERABLE PRODUCTS. SUCCESSFUL USE OF 00190000 BUFFERPOOL BP0 00810000
//* A PARTICULAR SAMPLE JOB MAY BE DEPENDENT UPON THE OPTIONAL 00200000 CCSID EBCDIC; 00820000
//* PRODUCT BEING LICENSED AND INSTALLED IN YOUR ENVIRONMENT. 00210000 00830000
//* 00220000 CREATE DATABASE DSN8D71P 00840000
//* CHANGE ACTIVITY = 00230000 STOGROUP DSN8G710 00850000
//********************************************************************* 00240000 BUFFERPOOL BP0 00860000
//* 00250000 CCSID EBCDIC; 00870000
//JOBLIB DD DSN=DSN710.SDSNLOAD,DISP=SHR 00260000 00880000
//* 00270000 CREATE TABLESPACE DSN8S71D 00890000
//********************************************************************* 00280000 IN DSN8D71A 00900000
//* ASMCL PROC - ASSEMBLE AND LINKEDIT AN ASM PROGRAM 00290000 USING STOGROUP DSN8G710 00910000
//* 00300000 PRIQTY 20 00920000
//ASMCL PROC WSPC=500,MEM=TEMPNAME 00310000 SECQTY 20 00930000
//* 00320000 ERASE NO 00940000
//* ASSEMBLE 00330000 LOCKSIZE PAGE LOCKMAX SYSTEM 00950000
//* 00340000 BUFFERPOOL BP0 00960000
//ASM EXEC PGM=ASMA90,PARM='OBJECT,NODECK' 00350000 CLOSE NO 00970000
//SYSIN DD DSN=DSN710.SDSNSAMP(&MEM), 00360000 CCSID EBCDIC; 00980000
// DISP=SHR 00370000 00990000
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR 00380000 COMMIT ; 01000000
// DD DSN=DSN710.SDSNMACS,DISP=SHR 00390000 01010000
// DD DSN=DSN710.SDSNSAMP,DISP=SHR 00400000 CREATE TABLESPACE DSN8S71E 01020000
//SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA, 00410000 IN DSN8D71A 01030000
// SPACE=(800,(&WSPC,&WSPC)),DCB=(BLKSIZE=800) 00420000 USING STOGROUP DSN8G710 01040000
//SYSPRINT DD SYSOUT=* 00430000 PRIQTY 20 01050000
//SYSUDUMP DD SYSOUT=* 00440000 SECQTY 20 01060000
//SYSUT1 DD UNIT=SYSDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND) 00450000 ERASE NO 01070000
//SYSUT2 DD UNIT=SYSDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND) 00460000 NUMPARTS 4 01080000
//SYSUT3 DD UNIT=SYSDA,SPACE=(800,(&WSPC,&WSPC),,,ROUND) 00470000 (PART 1 USING STOGROUP DSN8G710 01090000
//* 00480000 PRIQTY 12 01100000
//* LINKEDIT IF THE ASSEMBLER 00490000 SECQTY 12, 01110000
//* RETURN CODE IS 4 OR LESS 00500000 PART 3 USING STOGROUP DSN8G710 01120000
//* 00510000 PRIQTY 12 01130000
//LKED EXEC PGM=IEWL,PARM='LIST,XREF,NCAL', 00520000

Mise en œuvre Hercules & z/OS - Page - 81 - Mise en œuvre Hercules & z/OS - Page - 82 -
SECQTY 12) 01140000 USING STOGROUP DSN8G710 01750000
LOCKSIZE PAGE LOCKMAX SYSTEM 01150000 PRIQTY 20 01760000
BUFFERPOOL BP0 01160000 SECQTY 20 01770000
CLOSE NO 01170000 ERASE NO 01780000
COMPRESS YES 01180000 LOCKSIZE PAGE LOCKMAX SYSTEM 01790000
CCSID EBCDIC; 01190000 BUFFERPOOL BP0 01800000
01200000 CLOSE NO 01810000
COMMIT ; 01210000 CCSID EBCDIC; 01820000
01220000 01830000
CREATE TABLESPACE DSN8S71C 01230000 COMMIT; 01840000
IN DSN8D71P 01240000 01850000
USING STOGROUP DSN8G710 01250000 //* 01860000
PRIQTY 160 01260000 //* STEP 2: CREATE SAMPLE TABLES, VIEWS 01870000
SECQTY 80 01270000 //* 01880000
SEGSIZE 4 01280000 //PH01S02 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 01890000
LOCKSIZE TABLE 01290000 //SYSTSPRT DD SYSOUT=* 01900000
BUFFERPOOL BP0 01300000 //SYSTSIN DD * 01910000
CLOSE NO 01310000 DSN SYSTEM(DSN1) 01920000
CCSID EBCDIC; 01320000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 01930000
01330000 LIB('DSN710.RUNLIB.LOAD') 01940000
COMMIT ; 01340000 //SYSPRINT DD SYSOUT=* 01950000
01350000 //SYSUDUMP DD SYSOUT=* 01960000
CREATE TABLESPACE DSN8S71Q 01360000 //SYSIN DD * 01970000
IN DSN8D71P 01370000 01980000
USING STOGROUP DSN8G710 01380000 CREATE TABLE DSN8710.DEPT 01990000
PRIQTY 160 01390000 (DEPTNO CHAR(3) NOT NULL, 02000000
SECQTY 80 01400000 DEPTNAME VARCHAR(36) NOT NULL, 02010000
SEGSIZE 4 01410000 MGRNO CHAR(6) , 02020000
LOCKSIZE PAGE 01420000 ADMRDEPT CHAR(3) NOT NULL, 02030000
BUFFERPOOL BP0 01430000 LOCATION CHAR(16) , 02040000
CLOSE NO 01440000 PRIMARY KEY(DEPTNO)) 02050000
CCSID EBCDIC; 01450000 IN DSN8D71A.DSN8S71D 02060000
01460000 CCSID EBCDIC; 02070000
COMMIT ; 01470000 02080000
01480000 CREATE UNIQUE INDEX DSN8710.XDEPT1 02090000
CREATE TABLESPACE DSN8S71R 01490000 ON DSN8710.DEPT 02100000
IN DSN8D71A 01500000 (DEPTNO ASC) 02110000
USING STOGROUP DSN8G710 01510000 USING STOGROUP DSN8G710 02120000
PRIQTY 20 01520000 PRIQTY 12 02130000
SECQTY 20 01530000 ERASE NO 02140000
ERASE NO 01540000 BUFFERPOOL BP0 02150000
LOCKSIZE PAGE LOCKMAX SYSTEM 01550000 CLOSE NO; 02160000
BUFFERPOOL BP0 01560000 02170000
CLOSE NO 01570000 CREATE INDEX DSN8710.XDEPT2 02180000
CCSID EBCDIC; 01580000 ON DSN8710.DEPT 02190000
01590000 (MGRNO ASC) 02200000
CREATE TABLESPACE DSN8S71P 01600000 USING STOGROUP DSN8G710 02210000
IN DSN8D71A 01610000 PRIQTY 12 02220000
USING STOGROUP DSN8G710 01620000 ERASE NO 02230000
PRIQTY 160 01630000 BUFFERPOOL BP0 02240000
SECQTY 80 01640000 CLOSE NO; 02250000
SEGSIZE 4 01650000 02260000
LOCKSIZE ROW 01660000 CREATE INDEX DSN8710.XDEPT3 02270000
BUFFERPOOL BP0 01670000 ON DSN8710.DEPT 02280000
CLOSE NO 01680000 (ADMRDEPT ASC) 02290000
CCSID EBCDIC; 01690000 USING STOGROUP DSN8G710 02300000
01700000 PRIQTY 12 02310000
COMMIT ; 01710000 ERASE NO 02320000
01720000 BUFFERPOOL BP0 02330000
CREATE TABLESPACE DSN8S71S 01730000 CLOSE NO; 02340000
IN DSN8D71A 01740000 02350000

Mise en œuvre Hercules & z/OS - Page - 83 - Mise en œuvre Hercules & z/OS - Page - 84 -
CREATE VIEW DSN8710.VDEPT 02360000 CLOSE NO; 02970000
AS SELECT ALL DEPTNO , 02370000 02980000
DEPTNAME, 02380000 CREATE VIEW DSN8710.VEMP 02990000
MGRNO , 02390000 AS SELECT ALL EMPNO , 03000000
ADMRDEPT 02400000 FIRSTNME, 03010000
FROM DSN8710.DEPT; 02410000 MIDINIT , 03020000
02420000 LASTNAME, 03030000
CREATE VIEW DSN8710.VHDEPT 02430000 WORKDEPT 03040000
AS SELECT ALL DEPTNO , 02440000 FROM DSN8710.EMP; 03050000
DEPTNAME, 02450000 03060000
MGRNO , 02460000 COMMIT ; 03070000
ADMRDEPT, 02470000 03080000
LOCATION 02480000 CREATE TABLE DSN8710.PROJ 03090000
FROM DSN8710.DEPT; 02490000 (PROJNO CHAR(6) PRIMARY KEY NOT NULL, 03100000
02500000 PROJNAME VARCHAR(24) NOT NULL WITH DEFAULT 03110000
COMMIT ; 02510000 'PROJECT NAME UNDEFINED', 03120000
02520000 DEPTNO CHAR(3) NOT NULL REFERENCES 03130000
CREATE TABLE DSN8710.EMP 02530000 DSN8710.DEPT ON DELETE RESTRICT, 03140000
(EMPNO CHAR(6) NOT NULL, 02540000 RESPEMP CHAR(6) NOT NULL REFERENCES 03150000
FIRSTNME VARCHAR(12) NOT NULL, 02550000 DSN8710.EMP ON DELETE RESTRICT, 03160000
MIDINIT CHAR(1) NOT NULL, 02560000 PRSTAFF DECIMAL(5, 2) , 03170000
LASTNAME VARCHAR(15) NOT NULL, 02570000 PRSTDATE DATE , 03180000
WORKDEPT CHAR(3) , 02580000 PRENDATE DATE , 03190000
PHONENO CHAR(4) CONSTRAINT NUMBER CHECK 02590000 MAJPROJ CHAR(6)) 03200000
(PHONENO >= '0000' AND PHONENO <= '9999'), 02600000 IN DSN8D71A.DSN8S71P 03210000
HIREDATE DATE , 02610000 CCSID EBCDIC; 03220000
JOB CHAR(8) , 02620000 03230000
EDLEVEL SMALLINT , 02630000 ALTER TABLESPACE DSN8D71A.DSN8S71P CLOSE NO; 03240000
SEX CHAR(1) , 02640000 03250000
BIRTHDATE DATE , 02650000 ALTER TABLESPACE DSN8D71A.DSN8S71E 03260000
SALARY DECIMAL(9, 2) , 02660000 PART 3 COMPRESS NO; 03270000
BONUS DECIMAL(9, 2) , 02670000 03280000
COMM DECIMAL(9, 2) , 02680000 CREATE UNIQUE INDEX DSN8710.XPROJ1 03290000
PRIMARY KEY(EMPNO), 02690000 ON DSN8710.PROJ 03300000
FOREIGN KEY RED (WORKDEPT) REFERENCES DSN8710.DEPT 02700000 (PROJNO ASC) 03310000
ON DELETE SET NULL) 02710000 USING STOGROUP DSN8G710 03320000
EDITPROC DSN8EAE1 02720000 PRIQTY 12 03330000
IN DSN8D71A.DSN8S71E 02730000 ERASE NO 03340000
CCSID EBCDIC; 02740000 BUFFERPOOL BP0 03350000
02750000 CLOSE NO; 03360000
CREATE UNIQUE INDEX DSN8710.XEMP1 02760000 03370000
ON DSN8710.EMP 02770000 CREATE INDEX DSN8710.XPROJ2 03380000
(EMPNO ASC) 02780000 ON DSN8710.PROJ 03390000
USING STOGROUP DSN8G710 02790000 (RESPEMP ASC) 03400000
PRIQTY 12 02800000 USING STOGROUP DSN8G710 03410000
ERASE NO 02810000 PRIQTY 12 03420000
CLUSTER 02820000 ERASE NO 03430000
(PART 1 VALUES('099999'), 02830000 BUFFERPOOL BP0 03440000
PART 2 VALUES('199999'), 02840000 CLOSE NO; 03450000
PART 3 VALUES('299999'), 02850000 03460000
PART 4 VALUES('999999')) 02860000 CREATE VIEW DSN8710.VPROJ 03470000
BUFFERPOOL BP0 02870000 AS SELECT ALL 03480000
CLOSE NO; 02880000 PROJNO, PROJNAME, DEPTNO, RESPEMP, PRSTAFF, 03490000
02890000 PRSTDATE, PRENDATE, MAJPROJ 03500000
CREATE INDEX DSN8710.XEMP2 02900000 FROM DSN8710.PROJ ; 03510000
ON DSN8710.EMP 02910000 03520000
(WORKDEPT ASC) 02920000 COMMIT ; 03530000
USING STOGROUP DSN8G710 02930000 03540000
PRIQTY 12 02940000 CREATE TABLE DSN8710.ACT 03550000
ERASE NO 02950000 (ACTNO SMALLINT NOT NULL, 03560000
BUFFERPOOL BP0 02960000 ACTKWD CHAR(6) NOT NULL, 03570000

Mise en œuvre Hercules & z/OS - Page - 85 - Mise en œuvre Hercules & z/OS - Page - 86 -
ACTDESC VARCHAR(20) NOT NULL, 03580000 AS SELECT ALL 04190000
PRIMARY KEY(ACTNO)) 03590000 PROJNO,ACTNO, ACSTAFF, ACSTDATE, ACENDATE 04200000
IN DSN8D71A.DSN8S71P 03600000 FROM DSN8710.PROJACT ; 04210000
CCSID EBCDIC; 03610000 04220000
03620000 COMMIT ; 04230000
ALTER TABLESPACE DSN8D71A.DSN8S71P CLOSE NO; 03630000 04240000
03640000 CREATE TABLE DSN8710.EMPPROJACT 04250000
CREATE UNIQUE INDEX DSN8710.XACT1 03650000 (EMPNO CHAR(6) NOT NULL, 04260000
ON DSN8710.ACT 03660000 PROJNO CHAR(6) NOT NULL, 04270000
(ACTNO ASC) 03670000 ACTNO SMALLINT NOT NULL, 04280000
USING STOGROUP DSN8G710 03680000 EMPTIME DECIMAL(5, 2) , 04290000
PRIQTY 12 03690000 EMSTDATE DATE , 04300000
ERASE NO 03700000 EMENDATE DATE , 04310000
BUFFERPOOL BP0 03710000 FOREIGN KEY REPAPA (PROJNO, ACTNO, EMSTDATE) 04320000
CLOSE NO; 03720000 REFERENCES DSN8710.PROJACT 04330000
03730000 ON DELETE RESTRICT, 04340000
CREATE UNIQUE INDEX DSN8710.XACT2 03740000 FOREIGN KEY REPAE (EMPNO) REFERENCES DSN8710.EMP 04350000
ON DSN8710.ACT 03750000 ON DELETE RESTRICT) 04360000
(ACTKWD ASC) 03760000 IN DSN8D71A.DSN8S71P 04370000
USING STOGROUP DSN8G710 03770000 CCSID EBCDIC; 04380000
PRIQTY 12 03780000 04390000
ERASE NO 03790000 ALTER TABLESPACE DSN8D71A.DSN8S71P CLOSE NO; 04400000
BUFFERPOOL BP0 03800000 04410000
CLOSE NO; 03810000 CREATE UNIQUE INDEX DSN8710.XEMPPROJACT1 04420000
03820000 ON DSN8710.EMPPROJACT 04430000
CREATE VIEW DSN8710.VACT 03830000 (PROJNO ASC, 04440000
AS SELECT ALL ACTNO , 03840000 ACTNO ASC, 04450000
ACTKWD , 03850000 EMSTDATE ASC, 04460000
ACTDESC 03860000 EMPNO ASC) 04470000
FROM DSN8710.ACT ; 03870000 USING STOGROUP DSN8G710 04480000
03880000 PRIQTY 12 04490000
COMMIT ; 03890000 ERASE NO 04500000
03900000 BUFFERPOOL BP0 04510000
CREATE TABLE DSN8710.PROJACT 03910000 CLOSE NO; 04520000
(PROJNO CHAR(6) NOT NULL, 03920000 04530000
ACTNO SMALLINT NOT NULL, 03930000 CREATE INDEX DSN8710.XEMPPROJACT2 04540000
ACSTAFF DECIMAL(5, 2) , 03940000 ON DSN8710.EMPPROJACT 04550000
ACSTDATE DATE NOT NULL, 03950000 (EMPNO ASC) 04560000
ACENDATE DATE , 03960000 USING STOGROUP DSN8G710 04570000
PRIMARY KEY(PROJNO,ACTNO,ACSTDATE), 03970000 PRIQTY 12 04580000
FOREIGN KEY RPAP (PROJNO) REFERENCES DSN8710.PROJ 03980000 ERASE NO 04590000
ON DELETE RESTRICT, 03990000 BUFFERPOOL BP0 04600000
FOREIGN KEY RPAA (ACTNO) REFERENCES DSN8710.ACT 04000000 CLOSE NO; 04610000
ON DELETE RESTRICT) 04010000 04620000
IN DSN8D71A.DSN8S71P 04020000 CREATE VIEW DSN8710.VEMPPROJACT 04630000
CCSID EBCDIC; 04030000 AS SELECT ALL 04640000
04040000 EMPNO, PROJNO, ACTNO, EMPTIME, EMSTDATE, EMENDATE 04650000
ALTER TABLESPACE DSN8D71A.DSN8S71P CLOSE NO; 04050000 FROM DSN8710.EMPPROJACT ; 04660000
04060000 04670000
CREATE UNIQUE INDEX DSN8710.XPROJAC1 04070000 COMMIT ; 04680000
ON DSN8710.PROJACT 04080000 04690000
(PROJNO ASC, 04090000 CREATE TABLE DSN8710.PARTS 04700000
ACTNO ASC, 04100000 (ITEMNUM CHAR(6) NOT NULL, 04710000
ACSTDATE ASC) 04110000 DESCRIPT VARCHAR(30) NOT NULL, 04720000
USING STOGROUP DSN8G710 04120000 COLOR VARCHAR(8) , 04730000
PRIQTY 12 04130000 SUPPLIER VARCHAR(15) NOT NULL) 04740000
ERASE NO 04140000 IN DSN8D71A.DSN8S71S 04750000
BUFFERPOOL BP0 04150000 CCSID EBCDIC; 04760000
CLOSE NO; 04160000 04770000
04170000 CREATE INDEX DSN8710.XPARTS 04780000
CREATE VIEW DSN8710.VPROJACT 04180000 ON DSN8710.PARTS 04790000

Mise en œuvre Hercules & z/OS - Page - 87 - Mise en œuvre Hercules & z/OS - Page - 88 -
(ITEMNUM ASC) 04800000 05410000
USING STOGROUP DSN8G710 04810000 CREATE VIEW DSN8710.VOPTVAL 05420000
PRIQTY 12 04820000 AS SELECT ALL 05430000
ERASE NO 04830000 MAJSYS, ACTION, OBJFLD, SRCHCRIT, SCRTYPE, HEADTXT, 05440000
BUFFERPOOL BP0 04840000 SELTXT, INFOTXT, HELPTXT, PFKTXT, DSPINDEX 05450000
CLOSE NO; 04850000 FROM DSN8710.TOPTVAL ; 05460000
04860000 05470000
COMMIT ; 04870000 COMMIT ; 05480000
04880000 05490000
CREATE TABLE DSN8710.TCONA 04890000 CREATE TABLE DSN8710.TDSPTXT 05500000
(CONVID CHAR(16) NOT NULL, 04900000 (DSPINDEX CHAR(2) NOT NULL, 05510000
LASTSCR CHAR(8) NOT NULL, 04910000 LINENO CHAR(2) NOT NULL, 05520000
LASTPOS CHAR(254) NOT NULL, 04920000 DSPLINE CHAR(79) NOT NULL) 05530000
LASTPOSC CHAR(254) NOT NULL, 04930000 IN DSN8D71P.DSN8S71C 05540000
LASTMSG VARCHAR(1609) NOT NULL) 04940000 CCSID EBCDIC; 05550000
IN DSN8D71P.DSN8S71C 04950000 05560000
CCSID EBCDIC; 04960000 CREATE UNIQUE INDEX DSN8710.XDSPTXT1 05570000
04970000 ON DSN8710.TDSPTXT 05580000
CREATE UNIQUE INDEX DSN8710.XCONA1 04980000 (DSPINDEX ASC, 05590000
ON DSN8710.TCONA 04990000 LINENO ASC) 05600000
(CONVID ASC) 05000000 USING STOGROUP DSN8G710 05610000
USING STOGROUP DSN8G710 05010000 PRIQTY 12 05620000
PRIQTY 12 05020000 ERASE NO 05630000
ERASE NO 05030000 BUFFERPOOL BP0 05640000
BUFFERPOOL BP0 05040000 CLOSE NO; 05650000
CLOSE NO; 05050000 05660000
05060000 CREATE VIEW DSN8710.VDSPTXT 05670000
CREATE VIEW DSN8710.VCONA 05070000 AS SELECT ALL 05680000
AS SELECT ALL 05080000 DSPINDEX, LINENO, DSPLINE 05690000
CONVID, LASTSCR, LASTPOS, LASTPOSC, LASTMSG 05090000 FROM DSN8710.TDSPTXT ; 05700000
FROM DSN8710.TCONA ; 05100000 05710000
05110000 ALTER TABLE DSN8710.DEPT 05720000
COMMIT ; 05120000 FOREIGN KEY RDD (ADMRDEPT) REFERENCES DSN8710.DEPT 05730000
05130000 ON DELETE CASCADE; 05740000
CREATE TABLE DSN8710.TOPTVAL 05140000 ALTER TABLE DSN8710.DEPT 05750000
(MAJSYS CHAR(1) NOT NULL, 05150000 FOREIGN KEY RDE (MGRNO) REFERENCES DSN8710.EMP 05760000
ACTION CHAR(1) NOT NULL, 05160000 ON DELETE SET NULL; 05770000
OBJFLD CHAR(2) NOT NULL, 05170000 ALTER TABLE DSN8710.PROJ 05780000
SRCHCRIT CHAR(2) NOT NULL, 05180000 FOREIGN KEY RPP (MAJPROJ) REFERENCES DSN8710.PROJ 05790000
SCRTYPE CHAR(1) NOT NULL, 05190000 ON DELETE CASCADE; 05800000
HEADTXT CHAR(50) NOT NULL, 05200000 05810000
SELTXT CHAR(50) NOT NULL, 05210000 CREATE TABLE DSN8710.EDEPT LIKE DSN8710.DEPT 05820000
INFOTXT CHAR(79) NOT NULL, 05220000 IN DSN8D71A.DSN8S71R ; 05830000
HELPTXT CHAR(79) NOT NULL, 05230000 CREATE TABLE DSN8710.EEMP LIKE DSN8710.EMP 05840000
PFKTXT CHAR(79) NOT NULL, 05240000 IN DSN8D71A.DSN8S71R ; 05850000
DSPINDEX CHAR(2) NOT NULL) 05250000 CREATE TABLE DSN8710.EPROJ LIKE DSN8710.PROJ 05860000
IN DSN8D71P.DSN8S71C 05260000 IN DSN8D71A.DSN8S71R ; 05870000
CCSID EBCDIC; 05270000 CREATE TABLE DSN8710.EACT LIKE DSN8710.ACT 05880000
05280000 IN DSN8D71A.DSN8S71R ; 05890000
CREATE UNIQUE INDEX DSN8710.XOPTVAL1 05290000 CREATE TABLE DSN8710.EPROJACT LIKE DSN8710.PROJACT 05900000
ON DSN8710.TOPTVAL 05300000 IN DSN8D71A.DSN8S71R ; 05910000
(MAJSYS ASC, 05310000 CREATE TABLE DSN8710.EEPA LIKE DSN8710.EMPPROJACT 05920000
ACTION ASC, 05320000 IN DSN8D71A.DSN8S71R ; 05930000
OBJFLD ASC, 05330000 05940000
SRCHCRIT ASC, 05340000 ALTER TABLE DSN8710.EDEPT 05950000
SCRTYPE ASC) 05350000 ADD RID CHAR(4); 05960000
USING STOGROUP DSN8G710 05360000 ALTER TABLE DSN8710.EDEPT 05970000
PRIQTY 12 05370000 ADD TSTAMP TIMESTAMP; 05980000
ERASE NO 05380000 ALTER TABLE DSN8710.EEMP 05990000
BUFFERPOOL BP0 05390000 ADD RID CHAR(4); 06000000
CLOSE NO; 05400000 ALTER TABLE DSN8710.EEMP 06010000

Mise en œuvre Hercules & z/OS - Page - 89 - Mise en œuvre Hercules & z/OS - Page - 90 -
ADD TSTAMP TIMESTAMP; 06020000 BUFFERPOOL BP0 06630000
ALTER TABLE DSN8710.EPROJ 06030000 CLOSE NO; 06640000
ADD RID CHAR(4); 06040000 06650000
ALTER TABLE DSN8710.EPROJ 06050000 //* 06660000
ADD TSTAMP TIMESTAMP; 06060000 //* STEP 4: CREATE SAMPLE VIEWS 06670000
ALTER TABLE DSN8710.EACT 06070000 //* 06680000
ADD RID CHAR(4); 06080000 //PH01S04 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 06690000
ALTER TABLE DSN8710.EACT 06090000 //SYSTSPRT DD SYSOUT=* 06700000
ADD TSTAMP TIMESTAMP; 06100000 //SYSTSIN DD * 06710000
ALTER TABLE DSN8710.EPROJACT 06110000 DSN SYSTEM(DSN1) 06720000
ADD RID CHAR(4); 06120000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 06730000
ALTER TABLE DSN8710.EPROJACT 06130000 LIB('DSN710.RUNLIB.LOAD') 06740000
ADD TSTAMP TIMESTAMP; 06140000 //SYSPRINT DD SYSOUT=* 06750000
ALTER TABLE DSN8710.EEPA 06150000 //SYSUDUMP DD SYSOUT=* 06760000
ADD RID CHAR(4); 06160000 //SYSIN DD * 06770000
ALTER TABLE DSN8710.EEPA 06170000 06780000
ADD TSTAMP TIMESTAMP; 06180000 CREATE VIEW DSN8710.VDEPMG1 06790000
06190000 (DEPTNO, DEPTNAME, MGRNO, FIRSTNME, MIDINIT, LASTNAME, ADMRDEPT)06800000
//* 06200000 AS SELECT ALL 06810000
//* STEP 3: CREATE SAMPLE MAPPING TABLE FOR ONLINE REORG 06210000 DEPTNO, DEPTNAME, EMPNO, FIRSTNME, MIDINIT, LASTNAME, ADMRDEPT 06820000
//* 06220000 FROM DSN8710.DEPT LEFT OUTER JOIN DSN8710.EMP 06830000
//********************************************************************* 06230000 ON MGRNO = EMPNO ; 06840000
//* THE FOLLOWING IS AN EXAMPLE DEFINITION OF THE MAPPING TABLE * 06240000 06850000
//* THAT IS REQUIRED TO RUN AN ONLINE REORGANIZATION WITH SHRLEVEL * 06250000 CREATE VIEW DSN8710.VEMPDPT1 06860000
//* CHANGE. * 06260000 (DEPTNO, DEPTNAME, EMPNO, FRSTINIT, MIDINIT, 06870000
//* * 06270000 LASTNAME, WORKDEPT) 06880000
//* A MAPPING TABLE MUST BE CREATED IN A SEGMENTED TABLE SPACE. * 06280000 AS SELECT ALL 06890000
//* THAT TABLESPACE SHOULD CONTAIN ONLY MAPPING TABLES. IT MUST * 06290000 DEPTNO, DEPTNAME, EMPNO, SUBSTR(FIRSTNME, 1, 1), MIDINIT, 06900000
//* NOT BE THE TABLE SPACE THAT IS TO BE REORGANIZED. * 06300000 LASTNAME, WORKDEPT 06910000
//* * 06310000 FROM DSN8710.DEPT RIGHT OUTER JOIN DSN8710.EMP 06920000
//* IF YOU WANT CONCURRENT EXECUTIONS OF REORG (ON SEVERAL TABLE * 06320000 ON WORKDEPT = DEPTNO ; 06930000
//* SPACES AND/OR ON SEVERAL PARTITIONS OF A TABLE SPACE) THE * 06330000 06940000
//* EXECUTIONS SHOULD USE DIFFERENT MAPPING TABLES. * 06340000 CREATE VIEW DSN8710.VASTRDE1 06950000
//********************************************************************* 06350000 (DEPT1NO,DEPT1NAM,EMP1NO,EMP1FN,EMP1MI,EMP1LN,TYPE2, 06960000
//PH01S03 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 06360000 DEPT2NO,DEPT2NAM,EMP2NO,EMP2FN,EMP2MI,EMP2LN) 06970000
//SYSTSPRT DD SYSOUT=* 06370000 AS SELECT ALL 06980000
//SYSTSIN DD * 06380000 D1.DEPTNO,D1.DEPTNAME,D1.MGRNO,D1.FIRSTNME,D1.MIDINIT, 06990000
DSN SYSTEM(DSN1) 06390000 D1.LASTNAME, '1', 07000000
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 06400000 D2.DEPTNO,D2.DEPTNAME,D2.MGRNO,D2.FIRSTNME,D2.MIDINIT, 07010000
LIB('DSN710.RUNLIB.LOAD') 06410000 D2.LASTNAME 07020000
//SYSPRINT DD SYSOUT=* 06420000 FROM DSN8710.VDEPMG1 D1, DSN8710.VDEPMG1 D2 07030000
//SYSUDUMP DD SYSOUT=* 06430000 WHERE D1.DEPTNO = D2.ADMRDEPT ; 07040000
//SYSIN DD * 06440000 07050000
06450000 CREATE VIEW DSN8710.VASTRDE2 07060000
CREATE TABLE DSN8710.MAP_TBL 06460000 (DEPT1NO,DEPT1NAM,EMP1NO,EMP1FN,EMP1MI,EMP1LN,TYPE2, 07070000
(TYPE CHAR( 01 ) NOT NULL, 06470000 DEPT2NO,DEPT2NAM,EMP2NO,EMP2FN,EMP2MI,EMP2LN) 07080000
SOURCE_RID CHAR( 05 ) NOT NULL, 06480000 AS SELECT ALL 07090000
TARGET_XRID CHAR( 09 ) NOT NULL, 06490000 D1.DEPTNO,D1.DEPTNAME,D1.MGRNO,D1.FIRSTNME,D1.MIDINIT, 07100000
LRSN CHAR( 06 ) NOT NULL) 06500000 D1.LASTNAME,'2', 07110000
IN DSN8D71P.DSN8S71Q 06510000 D1.DEPTNO,D1.DEPTNAME,E2.EMPNO,E2.FIRSTNME,E2.MIDINIT, 07120000
CCSID EBCDIC; 06520000 E2.LASTNAME 07130000
06530000 FROM DSN8710.VDEPMG1 D1, DSN8710.EMP E2 07140000
CREATE UNIQUE INDEX DSN8710.XMAP_TBL 06540000 WHERE D1.DEPTNO = E2.WORKDEPT; 07150000
ON DSN8710.MAP_TBL 06550000 07160000
(SOURCE_RID ASC, 06560000 CREATE VIEW DSN8710.VPROJRE1 07170000
TYPE, 06570000 (PROJNO,PROJNAME,PROJDEP,RESPEMP,FIRSTNME,MIDINIT,LASTNAME,MAJPROJ) 07180000
TARGET_XRID, 06580000 AS SELECT ALL 07190000
LRSN) 06590000 PROJNO,PROJNAME,DEPTNO,EMPNO,FIRSTNME,MIDINIT,LASTNAME,MAJPROJ 07200000
USING STOGROUP DSN8G710 06600000 FROM DSN8710.PROJ, DSN8710.EMP 07210000
PRIQTY 12 06610000 WHERE RESPEMP = EMPNO ; 07220000
ERASE NO 06620000 07230000

Mise en œuvre Hercules & z/OS - Page - 91 - Mise en œuvre Hercules & z/OS - Page - 92 -
CREATE VIEW DSN8710.VPSTRDE1 07240000 AS SELECT ALL LASTNAME, 07850000
(PROJ1NO,PROJ1NAME,RESP1NO,RESP1FN,RESP1MI,RESP1LN, 07250000 FIRSTNME, 07860000
PROJ2NO,PROJ2NAME,RESP2NO,RESP2FN,RESP2MI,RESP2LN) 07260000 MIDINIT , 07870000
AS SELECT ALL 07270000 VALUE(PHONENO,' '), 07880000
P1.PROJNO,P1.PROJNAME,P1.RESPEMP,P1.FIRSTNME,P1.MIDINIT, 07280000 EMPNO, 07890000
P1.LASTNAME, 07290000 DEPTNO, 07900000
P2.PROJNO,P2.PROJNAME,P2.RESPEMP,P2.FIRSTNME,P2.MIDINIT, 07300000 DEPTNAME 07910000
P2.LASTNAME 07310000 FROM DSN8710.EMP, DSN8710.DEPT 07920000
FROM DSN8710.VPROJRE1 P1, 07320000 WHERE WORKDEPT = DEPTNO; 07930000
DSN8710.VPROJRE1 P2 07330000 07940000
WHERE P1.PROJNO = P2.MAJPROJ ; 07340000 CREATE VIEW DSN8710.VEMPLP 07950000
07350000 (EMPLOYEENUMBER, 07960000
CREATE VIEW DSN8710.VPSTRDE2 07360000 PHONENUMBER) 07970000
(PROJ1NO,PROJ1NAME,RESP1NO,RESP1FN,RESP1MI,RESP1LN, 07370000 AS SELECT ALL EMPNO , 07980000
PROJ2NO,PROJ2NAME,RESP2NO,RESP2FN,RESP2MI,RESP2LN) 07380000 PHONENO 07990000
AS SELECT ALL 07390000 FROM DSN8710.EMP ; 08000000
P1.PROJNO,P1.PROJNAME,P1.RESPEMP,P1.FIRSTNME,P1.MIDINIT, 07400000 //* 08010000
P1.LASTNAME, 07410000 //* STEP 5: DROP SYNONYMS 08020000
P1.PROJNO,P1.PROJNAME,P1.RESPEMP,P1.FIRSTNME,P1.MIDINIT, 07420000 //* 08030000
P1.LASTNAME 07430000 //PH01S05 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 08040000
FROM DSN8710.VPROJRE1 P1 07440000 //SYSTSPRT DD SYSOUT=* 08050000
WHERE NOT EXISTS 07450000 //SYSTSIN DD * 08060000
(SELECT * FROM DSN8710.VPROJRE1 P2 07460000 DSN SYSTEM(DSN1) 08070000
WHERE P1.PROJNO = P2.MAJPROJ) ; 07470000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) PARM('RC0') - 08080000
07480000 LIB('DSN710.RUNLIB.LOAD') 08090000
CREATE VIEW DSN8710.VFORPLA 07490000 //SYSPRINT DD SYSOUT=* 08100000
(PROJNO,PROJNAME,RESPEMP,PROJDEP,FRSTINIT,MIDINIT,LASTNAME) 07500000 //SYSUDUMP DD SYSOUT=* 08110000
AS SELECT ALL 07510000 //SYSIN DD * 08120000
F1.PROJNO,PROJNAME,RESPEMP,PROJDEP, SUBSTR(FIRSTNME, 1, 1), 07520000 DROP SYNONYM ACT ; 08130000
MIDINIT, LASTNAME 07530000 DROP SYNONYM TCONA ; 08140000
FROM DSN8710.VPROJRE1 F1 LEFT OUTER JOIN DSN8710.EMPPROJACT F2 07540000 DROP SYNONYM DEPT ; 08150000
ON F1.PROJNO = F2.PROJNO; 07550000 DROP SYNONYM TDSPTXT ; 08160000
07560000 DROP SYNONYM EMP ; 08170000
CREATE VIEW DSN8710.VSTAFAC1 07570000 DROP SYNONYM EMPPROJACT; 08180000
(PROJNO, ACTNO, ACTDESC, EMPNO, FIRSTNME, MIDINIT, LASTNAME, 07580000 DROP SYNONYM TOPTVAL ; 08190000
EMPTIME,STDATE,ENDATE, TYPE) 07590000 DROP SYNONYM PROJACT ; 08200000
AS SELECT ALL 07600000 DROP SYNONYM PROJ ; 08210000
PA.PROJNO, PA.ACTNO, AC.ACTDESC,' ', ' ', ' ', ' ', 07610000 DROP SYNONYM VPHONE ; 08220000
PA.ACSTAFF, PA.ACSTDATE, 07620000 DROP SYNONYM VACT ; 08230000
PA.ACENDATE,'1' 07630000 DROP SYNONYM VCONA ; 08240000
FROM DSN8710.PROJACT PA, DSN8710.ACT AC 07640000 DROP SYNONYM VDEPT ; 08250000
WHERE PA.ACTNO = AC.ACTNO ; 07650000 DROP SYNONYM VHDEPT ; 08260000
07660000 DROP SYNONYM VDSPTXT ; 08270000
CREATE VIEW DSN8710.VSTAFAC2 07670000 DROP SYNONYM VEMP ; 08280000
(PROJNO, ACTNO, ACTDESC, EMPNO, FIRSTNME, MIDINIT, LASTNAME, 07680000 DROP SYNONYM VEMPPROJACT; 08290000
EMPTIME,STDATE, ENDATE, TYPE) 07690000 DROP SYNONYM VOPTVAL ; 08300000
AS SELECT ALL 07700000 DROP SYNONYM VPROJACT ; 08310000
EP.PROJNO, EP.ACTNO, AC.ACTDESC, EP.EMPNO,EM.FIRSTNME, 07710000 DROP SYNONYM VPROJ ; 08320000
EM.MIDINIT, EM.LASTNAME, EP.EMPTIME, EP.EMSTDATE, 07720000 DROP SYNONYM VEMPLP ; 08330000
EP.EMENDATE,'2' 07730000 DROP SYNONYM VDEPMG1 ; 08340000
FROM DSN8710.EMPPROJACT EP, DSN8710.ACT AC, DSN8710.EMP EM 07740000 DROP SYNONYM VEMPDPT1 ; 08350000
WHERE EP.ACTNO = AC.ACTNO AND EP.EMPNO = EM.EMPNO ; 07750000 DROP SYNONYM VASTRDE1 ; 08360000
07760000 DROP SYNONYM VASTRDE2 ; 08370000
CREATE VIEW DSN8710.VPHONE 07770000 DROP SYNONYM VPROJRE1 ; 08380000
(LASTNAME, 07780000 DROP SYNONYM VPSTRDE1 ; 08390000
FIRSTNAME, 07790000 DROP SYNONYM VPSTRDE2 ; 08400000
MIDDLEINITIAL, 07800000 DROP SYNONYM VFORPLA ; 08410000
PHONENUMBER, 07810000 DROP SYNONYM VSTAFAC1 ; 08420000
EMPLOYEENUMBER, 07820000 DROP SYNONYM VSTAFAC2 ; 08430000
DEPTNUMBER, 07830000 //* 08440000
DEPTNAME) 07840000 //* STEP 6: GRANT AUTHORITY, CREATE SYNONYMS 08450000

Mise en œuvre Hercules & z/OS - Page - 93 - Mise en œuvre Hercules & z/OS - Page - 94 -
//* 08460000 TO PUBLIC AT ALL LOCATIONS; 09070000
//PH01S06 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 08470000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.TOPTVAL 09080000
//SYSTSPRT DD SYSOUT=* 08480000 TO PUBLIC AT ALL LOCATIONS; 09090000
//SYSTSIN DD * 08490000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.PARTS 09100000
DSN SYSTEM(DSN1) 08500000 TO PUBLIC AT ALL LOCATIONS; 09110000
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 08510000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.PROJACT 09120000
LIB('DSN710.RUNLIB.LOAD') 08520000 TO PUBLIC AT ALL LOCATIONS; 09130000
//SYSPRINT DD SYSOUT=* 08530000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.PROJ 09140000
//SYSUDUMP DD SYSOUT=* 08540000 TO PUBLIC AT ALL LOCATIONS; 09150000
//SYSIN DD * 08550000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.MAP_TBL 09160000
CREATE SYNONYM ACT FOR DSN8710.ACT ; 08560000 TO PUBLIC AT ALL LOCATIONS; 09170000
CREATE SYNONYM TCONA FOR DSN8710.TCONA ; 08570000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPHONE 09180000
CREATE SYNONYM DEPT FOR DSN8710.DEPT ; 08580000 TO PUBLIC AT ALL LOCATIONS; 09190000
CREATE SYNONYM TDSPTXT FOR DSN8710.TDSPTXT ; 08590000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VACT 09200000
CREATE SYNONYM EMP FOR DSN8710.EMP ; 08600000 TO PUBLIC AT ALL LOCATIONS; 09210000
CREATE SYNONYM EMPPROJACT FOR DSN8710.EMPPROJACT ; 08610000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VCONA 09220000
CREATE SYNONYM TOPTVAL FOR DSN8710.TOPTVAL ; 08620000 TO PUBLIC AT ALL LOCATIONS; 09230000
CREATE SYNONYM PROJACT FOR DSN8710.PROJACT ; 08630000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VDEPT 09240000
CREATE SYNONYM PROJ FOR DSN8710.PROJ ; 08640000 TO PUBLIC AT ALL LOCATIONS; 09250000
CREATE SYNONYM VPHONE FOR DSN8710.VPHONE ; 08650000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VHDEPT 09260000
CREATE SYNONYM VACT FOR DSN8710.VACT ; 08660000 TO PUBLIC AT ALL LOCATIONS; 09270000
CREATE SYNONYM VCONA FOR DSN8710.VCONA ; 08670000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VDSPTXT 09280000
CREATE SYNONYM VDEPT FOR DSN8710.VDEPT ; 08680000 TO PUBLIC AT ALL LOCATIONS; 09290000
CREATE SYNONYM VHDEPT FOR DSN8710.VHDEPT ; 08690000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VEMP 09300000
CREATE SYNONYM VDSPTXT FOR DSN8710.VDSPTXT ; 08700000 TO PUBLIC AT ALL LOCATIONS; 09310000
CREATE SYNONYM VEMP FOR DSN8710.VEMP ; 08710000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VEMPPROJACT 09320000
CREATE SYNONYM VEMPPROJACT FOR DSN8710.VEMPPROJACT ; 08720000 TO PUBLIC AT ALL LOCATIONS; 09330000
CREATE SYNONYM VOPTVAL FOR DSN8710.VOPTVAL ; 08730000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VOPTVAL 09340000
CREATE SYNONYM VPROJACT FOR DSN8710.VPROJACT ; 08740000 TO PUBLIC AT ALL LOCATIONS; 09350000
CREATE SYNONYM VPROJ FOR DSN8710.VPROJ ; 08750000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPROJACT 09360000
CREATE SYNONYM VEMPLP FOR DSN8710.VEMPLP ; 08760000 TO PUBLIC AT ALL LOCATIONS; 09370000
CREATE SYNONYM VDEPMG1 FOR DSN8710.VDEPMG1 ; 08770000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPROJ 09380000
CREATE SYNONYM VEMPDPT1 FOR DSN8710.VEMPDPT1 ; 08780000 TO PUBLIC AT ALL LOCATIONS; 09390000
CREATE SYNONYM VASTRDE1 FOR DSN8710.VASTRDE1; 08790000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VEMPLP 09400000
CREATE SYNONYM VASTRDE2 FOR DSN8710.VASTRDE2; 08800000 TO PUBLIC AT ALL LOCATIONS; 09410000
CREATE SYNONYM VPROJRE1 FOR DSN8710.VPROJRE1; 08810000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VDEPMG1 09420000
CREATE SYNONYM VPSTRDE1 FOR DSN8710.VPSTRDE1; 08820000 TO PUBLIC AT ALL LOCATIONS; 09430000
CREATE SYNONYM VPSTRDE2 FOR DSN8710.VPSTRDE2; 08830000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VEMPDPT1 09440000
CREATE SYNONYM VFORPLA FOR DSN8710.VFORPLA; 08840000 TO PUBLIC AT ALL LOCATIONS; 09450000
CREATE SYNONYM VSTAFAC1 FOR DSN8710.VSTAFAC1; 08850000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VASTRDE1 09460000
CREATE SYNONYM VSTAFAC2 FOR DSN8710.VSTAFAC2; 08860000 TO PUBLIC AT ALL LOCATIONS; 09470000
GRANT USE OF STOGROUP DSN8G710 TO PUBLIC; 08870000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VASTRDE2 09480000
GRANT DBADM ON DATABASE DSN8D71A TO PUBLIC; 08880000 TO PUBLIC AT ALL LOCATIONS; 09490000
GRANT DBADM ON DATABASE DSN8D71P TO PUBLIC; 08890000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPROJRE1 09500000
GRANT USE OF TABLESPACE DSN8D71A.DSN8S71D TO PUBLIC; 08900000 TO PUBLIC AT ALL LOCATIONS; 09510000
GRANT USE OF TABLESPACE DSN8D71A.DSN8S71E TO PUBLIC; 08910000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPSTRDE1 09520000
GRANT USE OF TABLESPACE DSN8D71A.DSN8S71P TO PUBLIC; 08920000 TO PUBLIC AT ALL LOCATIONS; 09530000
GRANT USE OF TABLESPACE DSN8D71A.DSN8S71S TO PUBLIC; 08930000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VPSTRDE2 09540000
GRANT USE OF TABLESPACE DSN8D71P.DSN8S71C TO PUBLIC; 08940000 TO PUBLIC AT ALL LOCATIONS; 09550000
GRANT USE OF TABLESPACE DSN8D71P.DSN8S71Q TO PUBLIC; 08950000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VFORPLA 09560000
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.ACT 08960000 TO PUBLIC AT ALL LOCATIONS; 09570000
TO PUBLIC AT ALL LOCATIONS; 08970000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VSTAFAC1 09580000
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.TCONA 08980000 TO PUBLIC AT ALL LOCATIONS; 09590000
TO PUBLIC AT ALL LOCATIONS; 08990000 GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.VSTAFAC2 09600000
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.DEPT 09000000 TO PUBLIC AT ALL LOCATIONS; 09610000
TO PUBLIC AT ALL LOCATIONS; 09010000 //* 09620000
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.TDSPTXT 09020000 //* 09630000
TO PUBLIC AT ALL LOCATIONS; 09030000 //* 09640000
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.EMP 09040000 //* STEP 7: ASSEMBLE AND LINKEDIT EDIT EXIT 09650000
TO PUBLIC AT ALL LOCATIONS; 09050000 //* 09660000
GRANT DELETE, INSERT, SELECT, UPDATE ON TABLE DSN8710.EMPPROJACT 09060000 //PH01S07 EXEC ASMCL,MEM=DSN8EAE1,COND=(4,LT), 09670000

Mise en œuvre Hercules & z/OS - Page - 95 - Mise en œuvre Hercules & z/OS - Page - 96 -
// PARM.LKED='LIST,XREF,NCAL,RENT' 09680000 // DISP=SHR 10290000
//* 09690000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND) 10300000
//* STEP 8: ASSEMBLE AND LINKEDIT EDIT EXIT 09700000 //SYSIN DD * 10310000
//* 09710000 10320000
//PH01S08 EXEC ASMCL,MEM=DSN8HUFF,COND=(4,LT), 09720000 LOAD DATA INDDN(SYSRECOV) CONTINUEIF(72:72)='X' 10330000
// PARM.LKED='LIST,XREF,NCAL,RENT' 09730000 INTO TABLE DSN8710.TOPTVAL 10340000
//* 09740000 (MAJSYS POSITION( 2) CHAR(1), 10350000
//* STEP 9: ASSEMBLE AND LINKEDIT FIELD PROCEDURE 09750000 ACTION POSITION( 4) CHAR(1), 10360000
//* 09760000 OBJFLD POSITION( 6) CHAR(2), 10370000
//PH01S09 EXEC ASMCL,MEM=DSN8FPRC,COND=(4,LT), 09770000 SRCHCRIT POSITION( 9) CHAR(2), 10380000
// PARM.ASM='RENT,OBJECT,NODECK,SYSPARM(FLDPROC)', 09780000 SCRTYPE POSITION( 12) CHAR(1), 10390000
// PARM.LKED='LIST,XREF,NCAL,RENT' 09790000 HEADTXT POSITION( 80) CHAR(50), 10400000
//* 09800000 SELTXT POSITION(159) CHAR(50), 10410000
//* STEP 10: PRECOMPILE, ASSEMBLE AND LINKEDIT THE 09810000 INFOTXT POSITION(238) CHAR(71), 10420000
//* CALL ATTACH ASSEMBLER INTERFACE 09820000 HELPTXT POSITION(317) CHAR(71), 10430000
//* 09830000 PFKTXT POSITION(396) CHAR(71), 10440000
//PH01S10 EXEC DSNHASM,MEM=DSN8CA, 09840000 DSPINDEX POSITION(475) CHAR(2)) 10450000
// COND=(4,LT), 09850000 SORTDEVT SYSDA SORTNUM 4 10460000
// PARM.PC='HOST(ASM),STDSQL(NO)', 09860000 10470000
// PARM.ASM='RENT,OBJECT,NODECK', 09870000 LOAD DATA INDDN(SYSRECDT) CONTINUEIF(72:72)='X' RESUME(YES) 10480000
// PARM.LKED='RENT,XREF' 09880000 INTO TABLE DSN8710.TDSPTXT 10490000
//PC.DBRMLIB DD DSN=DSN710.DBRMLIB.DATA(DSN8CA), 09890000 (DSPINDEX POSITION( 2) CHAR(2), 10500000
// DISP=SHR 09900000 LINENO POSITION( 6) CHAR(2), 10510000
//PC.SYSLIB DD DSN=DSN710.SDSNSAMP, 09910000 DSPLINE POSITION(80) CHAR(71)) 10520000
// DISP=SHR 09920000 SORTDEVT SYSDA SORTNUM 4 10530000
//PC.SYSIN DD DSN=DSN710.SDSNSAMP(DSN8CA), 09930000 10540000
// DISP=SHR 09940000 //* 10550000
//ASM.SYSLIB DD 09950000 //* STEP 13: LOAD DATA INTO SAMPLE APPLICATION TABLES 10560000
// DD DSN=DSN710.SDSNSAMP, 09960000 //* 10570000
// DISP=SHR 09970000 //PH01S13 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 10580000
//LKED.SYSLMOD DD DSN=DSN710.RUNLIB.LOAD(DSN8CA), 09980000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10590000
// DISP=SHR 09990000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 10600000
//LKED.SYSIN DD * 10000000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10610000
INCLUDE SYSLIB(DSNALI) 10010000 //DSNTRACE DD SYSOUT=* 10620000
//* 10020000 //SYSRECAC DD DSN=DSN710.SDSNSAMP(DSN8LAC), 10630000
//* STEP 11: CREATE SAMPLE UTILITY LIST 10030000 // DISP=SHR 10640000
//* 10040000 //SYSRECDP DD DSN=DSN710.SDSNSAMP(DSN8LDP), 10650000
//PH01S11 EXEC PGM=IEBGENER,COND=(4,LT) 10050000 // DISP=SHR 10660000
//SYSIN DD DUMMY 10060000 //SYSRECEM DD DSN=DSN710.SDSNSAMP(DSN8LEM), 10670000
//SYSPRINT DD SYSOUT=* 10070000 // DISP=SHR 10680000
//SYSUT1 DD * 10080000 //SYSRECEP DD DSN=DSN710.SDSNSAMP(DSN8LEP), 10690000
10090000 // DISP=SHR 10700000
LISTDEF DSN8LDEF 10100000 //SYSRECPA DD DSN=DSN710.SDSNSAMP(DSN8LPA), 10710000
INCLUDE TABLESPACES DATABASE DSN8D71A 10110000 // DISP=SHR 10720000
EXCLUDE TABLESPACE DSN8D71A.DSN8S71R 10120000 //SYSRECPJ DD DSN=DSN710.SDSNSAMP(DSN8LPJ), 10730000
EXCLUDE TABLESPACE DSN8D71A.DSN8S71S 10130000 // DISP=SHR 10740000
10140000 //SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10750000
//SYSUT2 DD DSN=DSN710.DSN8.LISTDEF, 10150000 //SYSDISC DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10760000
// DISP=(,CATLG,DELETE), 10160000 //SYSMAP DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10770000
// UNIT=SYSDA,VOL=SER=S4DB21,SPACE=(TRK,1), 10170000 //SYSIN DD * 10780000
// DCB=(RECFM=FB,LRECL=80) 10180000 10790000
//* 10190000 LOAD DATA INDDN(SYSRECDP) 10800000
//* STEP 12: LOAD DATA INTO SAMPLE PROGRAM TABLES 10200000 INTO TABLE DSN8710.DEPT 10810000
//* 10210000 (DEPTNO POSITION( 1) CHAR(3), 10820000
//PH01S12 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 10220000 DEPTNAME POSITION( 5) VARCHAR, 10830000
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 10230000 MGRNO POSITION(37) CHAR(6) NULLIF(MGRNO=' '), 10840000
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 10240000 ADMRDEPT POSITION(44) CHAR(3), 10850000
//DSNTRACE DD SYSOUT=* 10250000 LOCATION POSITION(48) CHAR(16)) 10860000
//SYSRECDT DD DSN=DSN710.SDSNSAMP(DSN8LDT), 10260000 ENFORCE NO 10870000
// DISP=SHR 10270000 SORTDEVT SYSDA SORTNUM 4 10880000
//SYSRECOV DD DSN=DSN710.SDSNSAMP(DSN8LOV), 10280000 10890000

Mise en œuvre Hercules & z/OS - Page - 97 - Mise en œuvre Hercules & z/OS - Page - 98 -
LOAD DATA INDDN(SYSRECEM) CONTINUEIF(72:72)='X' 10900000 //* STEP 14: CHECK DATA FOR REFERENTIAL INTEGRITY 11510000
INTO TABLE DSN8710.EMP 10910000 //* 11520000
(EMPNO POSITION( 1) CHAR(6), 10920000 //PH01S14 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 11530000
FIRSTNME POSITION( 8) VARCHAR, 10930000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 11540000
MIDINIT POSITION(21) CHAR(1), 10940000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 11550000
LASTNAME POSITION(23) VARCHAR, 10950000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 11560000
WORKDEPT POSITION(36) CHAR(3), 10960000 //DSNTRACE DD SYSOUT=* 11570000
PHONENO POSITION(40) CHAR(4), 10970000 //SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 11580000
HIREDATE POSITION(45) DATE EXTERNAL, 10980000 //SYSIN DD * 11590000
JOB POSITION(56) CHAR(8), 10990000 11600000
EDLEVEL POSITION(65) INTEGER EXTERNAL(2), 11000000 CHECK DATA TABLESPACE DSN8D71A.DSN8S71D 11610000
SEX POSITION(68) CHAR(1), 11010000 TABLESPACE DSN8D71A.DSN8S71E 11620000
BIRTHDATE POSITION(80) DATE EXTERNAL, 11020000 TABLESPACE DSN8D71A.DSN8S71P 11630000
SALARY POSITION(91) INTEGER EXTERNAL(5), 11030000 SCOPE ALL 11640000
BONUS POSITION(97) INTEGER EXTERNAL(5), 11040000 DELETE YES 11650000
COMM POSITION(103) INTEGER EXTERNAL(5)) 11050000 FOR EXCEPTION IN DSN8710.DEPT USE DSN8710.EDEPT 11660000
ENFORCE CONSTRAINTS MAPDDN SYSMAP 11060000 IN DSN8710.EMP USE DSN8710.EEMP 11670000
SORTDEVT SYSDA SORTNUM 4 11070000 IN DSN8710.PROJ USE DSN8710.EPROJ 11680000
11080000 IN DSN8710.ACT USE DSN8710.EACT 11690000
LOAD DATA INDDN(SYSRECPJ) RESUME YES CONTINUEIF(72:72)='X' 11090000 IN DSN8710.PROJACT USE DSN8710.EPROJACT 11700000
INTO TABLE DSN8710.PROJ 11100000 IN DSN8710.EMPPROJACT USE DSN8710.EEPA 11710000
(PROJNO POSITION( 1) CHAR(6), 11110000 EXCEPTIONS 50 11720000
PROJNAME POSITION( 8) VARCHAR, 11120000 SORTDEVT SYSDA SORTNUM 4 11730000
DEPTNO POSITION(33) CHAR(3), 11130000 11740000
RESPEMP POSITION(37) CHAR(6), 11140000 //* 11750000
PRSTAFF POSITION(44) DECIMAL EXTERNAL(5), 11150000 //* STEP 15: ESTABLISH A QUIESCE POINT 11760000
PRSTDATE POSITION(50) DATE EXTERNAL, 11160000 //* NOTE: CONDITION CODE 4 INDICATES AN IMAGE COPY 11770000
PRENDATE POSITION(61) DATE EXTERNAL, 11170000 //* CANNOT BE TAKEN 11780000
MAJPROJ POSITION(80) CHAR(6) NULLIF(MAJPROJ=' ')) 11180000 //* 11790000
ENFORCE NO 11190000 //PH01S15 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 11800000
SORTDEVT SYSDA SORTNUM 4 11200000 //SYSLISTD DD DISP=SHR,DSN=DSN710.DSN8.LISTDEF 11810000
11210000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 11820000
LOAD DATA INDDN(SYSRECAC) RESUME YES 11220000 //SYSIN DD * 11830000
INTO TABLE DSN8710.ACT 11230000 11840000
(ACTNO POSITION( 1) INTEGER EXTERNAL(3), 11240000 QUIESCE LIST DSN8LDEF 11850000
ACTKWD POSITION( 5) CHAR(6), 11250000 11860000
ACTDESC POSITION(13) VARCHAR) 11260000 //* 11870000
ENFORCE NO 11270000 //* STEP 16: TAKE IMAGE COPY OF SAMPLE TABLES 11880000
SORTDEVT SYSDA SORTNUM 4 11280000 //* 11890000
11290000 //PH01S16 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 11900000
LOAD DATA INDDN(SYSRECPA) RESUME YES 11300000 //SYSLISTD DD DISP=SHR,DSN=DSN710.DSN8.LISTDEF 11910000
INTO TABLE DSN8710.PROJACT 11310000 // DD * 11920000
(PROJNO POSITION( 1) CHAR(6), 11320000 INCLUDE TABLESPACE DSN8D71P.DSN8S71C 11930000
ACTNO POSITION( 8) INTEGER EXTERNAL(3), 11330000 //DSNTRACE DD SYSOUT=* 11940000
ACSTAFF POSITION(12) DECIMAL EXTERNAL(5), 11340000 //SYSIN DD * 11950000
ACSTDATE POSITION(18) DATE EXTERNAL, 11350000 11960000
ACENDATE POSITION(29) DATE EXTERNAL) 11360000 TEMPLATE DSN8TPLT 11970000
ENFORCE NO 11370000 DSN(DSN710.SYSCOPY.&DB..&TS.) 11980000
SORTDEVT SYSDA SORTNUM 4 11380000 DISP (NEW,CATLG,DELETE) 11990000
11390000 UNIT SYSDA VOLUMES(S4DB21) 12000000
LOAD DATA INDDN(SYSRECEP) RESUME YES 11400000 PCTPRIME 100 MAXPRIME 5 NBRSECND 10 12010000
INTO TABLE DSN8710.EMPPROJACT 11410000 COPY LIST DSN8LDEF 12020000
(EMPNO POSITION( 1) CHAR(6), 11420000 COPYDDN(DSN8TPLT) 12030000
PROJNO POSITION( 8) CHAR(6), 11430000 12040000
ACTNO POSITION(16) INTEGER EXTERNAL(3), 11440000 //* 12050000
EMPTIME POSITION(20) DECIMAL EXTERNAL(5), 11450000 //* STEP 17: ESTABLISH A QUIESCE POINT USING ONLY IMAGE COPIES 12060000
EMSTDATE POSITION(26) DATE EXTERNAL, 11460000 //* 12070000
EMENDATE POSITION(37) DATE EXTERNAL) 11470000 //PH01S17 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 12080000
ENFORCE NO 11480000 //SYSLISTD DD DISP=SHR,DSN=DSN710.DSN8.LISTDEF 12090000
SORTDEVT SYSDA SORTNUM 4 11490000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12100000
//* 11500000 //SYSIN DD * 12110000

Mise en œuvre Hercules & z/OS - Page - 99 - Mise en œuvre Hercules & z/OS - Page - 100 -
12120000 12730000
QUIESCE LIST DSN8LDEF 12130000 LOAD DATA INDDN(SYSRECE3) CONTINUEIF(72:72)='X' 12740000
12140000 RESUME YES 12750000
//* 12150000 INTO TABLE DSN8710.EMP 12760000
//* STEP 18: REORGANIZE TABLESPACES, PRODUCE STATISTICS 12160000 PART 3 12770000
//* 12170000 REPLACE 12780000
//PH01S18 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 12180000 (EMPNO POSITION( 1) CHAR(6), 12790000
//SYSLISTD DD DISP=SHR,DSN=DSN710.DSN8.LISTDEF 12190000 FIRSTNME POSITION( 8) VARCHAR, 12800000
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 12200000 MIDINIT POSITION(21) CHAR(1), 12810000
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12210000 LASTNAME POSITION(23) VARCHAR, 12820000
//DSNTRACE DD SYSOUT=* 12220000 WORKDEPT POSITION(36) CHAR(3), 12830000
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND) 12230000 PHONENO POSITION(40) CHAR(4), 12840000
//SYSREC DD UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND) 12240000 HIREDATE POSITION(45) DATE EXTERNAL, 12850000
//SYSIN DD * 12250000 JOB POSITION(56) CHAR(8), 12860000
12260000 EDLEVEL POSITION(65) INTEGER EXTERNAL(2), 12870000
REORG TABLESPACE DSN8D71A.DSN8S71D 12270000 SEX POSITION(68) CHAR(1), 12880000
SORTDEVT(SYSDA) SORTNUM 4 12280000 BIRTHDATE POSITION(80) DATE EXTERNAL, 12890000
12290000 SALARY POSITION(91) INTEGER EXTERNAL(5), 12900000
RUNSTATS TABLESPACE LIST DSN8LDEF 12300000 BONUS POSITION(97) INTEGER EXTERNAL(5), 12910000
INDEX(ALL) 12310000 COMM POSITION(103) INTEGER EXTERNAL(5)) 12920000
12320000 ENFORCE CONSTRAINTS MAPDDN SYSMAP 12930000
//* 12330000 SORTDEVT SYSDA SORTNUM 4 12940000
//* STEP 19: RUN ONLINE REORG OF TBLSPACE USING SHRLEVEL CHANGE 12340000 12950000
//* 12350000 //* 12960000
//PH01S19 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 12360000 //* STEP 21: SET CURRENT RULES THEN ALTER TABLE 12970000
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 12370000 //* 12980000
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12380000 //PH01S21 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 12990000
//DSNTRACE DD SYSOUT=* 12390000 //SYSTSPRT DD SYSOUT=* 13000000
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND) 12400000 //SYSTSIN DD * 13010000
//SYSREC DD UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND) 12410000 DSN SYSTEM(DSN1) 13020000
//COPYDDN DD DSN=DSN710.COPYDDN.DSN8D71P.DSN8S71C, 12420000 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 13030000
// DISP=(NEW,CATLG), 12430000 LIB('DSN710.RUNLIB.LOAD') 13040000
// UNIT=SYSDA,VOL=SER=S4DB21,SPACE=(TRK,(10,1),RLSE), 12440000 //SYSPRINT DD SYSOUT=* 13050000
// DCB=BLKSIZE=8000 12450000 //SYSUDUMP DD SYSOUT=* 13060000
//SYSIN DD * 12460000 //SYSIN DD * 13070000
12470000 SET CURRENT RULES = 'DB2'; 13080000
REORG TABLESPACE DSN8D71P.DSN8S71C 12480000 COMMIT; 13090000
COPYDDN(COPYDDN) 12490000 ALTER TABLE EMP ADD CONSTRAINT PERSON 13100000
SHRLEVEL CHANGE 12500000 CHECK (SEX = 'M' OR SEX = 'F'); 13110000
DEADLINE 2010-2-4-03.15.00 12510000 COMMIT; 13120000
MAPPINGTABLE DSN8710.MAP_TBL 12520000 13130000
MAXRO 240 LONGLOG DRAIN DELAY 900 12530000 //* 13140000
SORTDEVT SYSDA SORTNUM 4 12540000 //* STEP 22: CHECK DATA IN PART 3 OF DSN8D71A.DSN8S71E 13150000
12550000 //* FOR REFERENTIAL INTEGRITY 13160000
RUNSTATS TABLESPACE DSN8D71P.DSN8S71C 12560000 //* 13170000
INDEX(ALL) 12570000 //PH01S22 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 13180000
12580000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13190000
//* 12590000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 13200000
//* STEP 20: LOAD DATA INTO PART 3 OF DSN8D71A.DSN8S71E 12600000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13210000
//* 12610000 //DSNTRACE DD SYSOUT=* 13220000
//PH01S20 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 12620000 //SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13230000
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12630000 //SYSDISC DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13240000
//SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 12640000 //SYSIN DD * 13250000
//SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12650000 13260000
//DSNTRACE DD SYSOUT=* 12660000 CHECK DATA TABLESPACE DSN8D71A.DSN8S71D 13270000
//SYSRECE3 DD DSN=DSN710.SDSNSAMP(DSN8LE3), 12670000 TABLESPACE DSN8D71A.DSN8S71E 13280000
// DISP=SHR 12680000 TABLESPACE DSN8D71A.DSN8S71P 13290000
//SYSERR DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12690000 SCOPE ALL 13300000
//SYSDISC DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12700000 DELETE YES 13310000
//SYSMAP DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 12710000 FOR EXCEPTION IN DSN8710.DEPT USE DSN8710.EDEPT 13320000
//SYSIN DD * 12720000 IN DSN8710.EMP USE DSN8710.EEMP 13330000

Mise en œuvre Hercules & z/OS - Page - 101 - Mise en œuvre Hercules & z/OS - Page - 102 -
IN DSN8710.PROJ USE DSN8710.EPROJ 13340000 //* NOTE: CONDITION CODE 4 INDICATES AN IMAGE COPY 13950000
IN DSN8710.ACT USE DSN8710.EACT 13350000 //* CANNOT BE TAKEN 13960000
IN DSN8710.PROJACT USE DSN8710.EPROJACT 13360000 //* 13970000
IN DSN8710.EMPPROJACT USE DSN8710.EEPA 13370000 //PH01S26 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 13980000
EXCEPTIONS 50 13380000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13990000
SORTDEVT SYSDA SORTNUM 4 13390000 //SYSIN DD * 14000000
13400000 14010000
//* 13410000 QUIESCE TABLESPACE DSN8D71A.DSN8S71E 14020000
//* STEP 23: ATTEMPT INSERT INTO THE EMP TABLE 13420000 PART 3 14030000
//* 13430000 14040000
//PH01S23 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 13440000 //* 14050000
//SYSTSPRT DD SYSOUT=* 13450000 //* STEP 27: PRODUCE STATISTICS FOR PART 3 OF 14060000
//SYSTSIN DD * 13460000 //* OF DSN8D71A.DSN8S71E 14070000
DSN SYSTEM(DSN1) 13470000 //* 14080000
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) PARM('RC0') - 13480000 //PH01S27 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 14090000
LIB('DSN710.RUNLIB.LOAD') 13490000 //SORTLIB DD DSN=SYS1.SORTLIB,DISP=SHR 14100000
//SYSPRINT DD SYSOUT=* 13500000 //SORTOUT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 14110000
//SYSUDUMP DD SYSOUT=* 13510000 //DSNTRACE DD SYSOUT=* 14120000
//SYSIN DD * 13520000 //SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(50,50),,,ROUND) 14130000
13530000 //SYSREC DD UNIT=SYSDA,SPACE=(4000,(200,200),,,ROUND) 14140000
INSERT INTO EMP 13540000 //SYSIN DD * 14150000
VALUES ('000011', 'CHRISTINE', 'I', 'HAAS', 'A00', 'A1A1', 13550000 14160000
'1965-01-01', 'PRES', 18, 'F', '1933-08-14', 13560000 RUNSTATS TABLESPACE DSN8D71A.DSN8S71E 14170000
52750, 1000, 4220); 13570000 PART 3 14180000
COMMIT; 13580000 INDEX(ALL) 14190000
13590000 14200000
INSERT INTO EMP 13600000 //* 14210000
VALUES ('200011', 'DIANE', 'J', 'HEMMINGER', 'A00', '3978', 13610000 //* STEP 28: UNLOAD PARTITIONS 1,3, AND 4 14220000
'1965-01-01', 'SALESREP', 18, 'U', '1933-08-14', 13620000 //* OF DSN8D71A.DSN8S71E 14230000
46500, 1000, 4220); 13630000 //* 14240000
COMMIT; 13640000 //PH01S28 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 14250000
13650000 //SYSPRINT DD SYSOUT=* 14260000
//* 13660000 //SYSIN DD * 14270000
//* STEP 24: ESTABLISH A QUIESCE POINT FOR PART 3 13670000 14280000
//* OF DSN8D71A.DSN8S71E 13680000 LISTDEF DSN8LDUL 14290000
//* NOTE: CONDITION CODE 4 INDICATES AN IMAGE COPY 13690000 INCLUDE TABLESPACE DSN8D71A.DSN8S71E PARTLEVEL 14300000
//* CANNOT BE TAKEN 13700000 EXCLUDE TABLESPACE DSN8D71A.DSN8S71E PARTLEVEL(2) 14310000
//* 13710000 TEMPLATE DSN8TPPU 14320000
//PH01S24 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 13720000 DSN(DSN710.&DB..&TS..SYSPUNCH) 14330000
//SYSUT1 DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND) 13730000 DISP(NEW,CATLG,DELETE) 14340000
//SYSIN DD * 13740000 UNIT SYSDA VOLUMES(S4DB21) 14350000
13750000 PCTPRIME 100 MAXPRIME 1 NBRSECND 1 14360000
QUIESCE TABLESPACE DSN8D71A.DSN8S71E 13760000 TEMPLATE DSN8TPSY 14370000
PART 3 13770000 DSN(DSN710.&DB..&TS..P&PART.) 14380000
13780000 DISP(NEW,CATLG,DELETE) 14390000
//* 13790000 UNIT SYSDA VOLUMES(S4DB21) 14400000
//* STEP 25: TAKE IMAGE COPY OF PART 3 OF DSN8D71A.DSN8S71E 13800000 PCTPRIME 100 MAXPRIME 5 NBRSECND 10 14410000
//* 13810000 UNLOAD LIST DSN8LDUL 14420000
//PH01S25 EXEC DSNUPROC,PARM='DSN,DSNTEX',COND=(4,LT) 13820000 PUNCHDDN(DSN8TPPU) 14430000
//DSNTRACE DD SYSOUT=* 13830000 UNLDDN(DSN8TPSY) 14440000
//SYSCOPY DD DSN=DSN710.DSN8D71A.DSN8S71E.PART3, 13840000 EBCDIC 14450000
// UNIT=SYSDA,DISP=(NEW,CATLG),SPACE=(4000,(20,20)), 13850000 NOPAD 14460000
// VOL=SER=S4DB21 13860000 14470000
//SYSIN DD * 13870000 //* 14480000
13880000
COPY TABLESPACE DSN8D71A.DSN8S71E 13890000
DSNUM 3 COPYDDN SYSCOPY 13900000
13910000 JOB DSNTEJ5A – Compilation de la SQLCA formater routine
//* 13920000
//* STEP 26: ESTABLISH A QUIESCE POINT FOR PART 3 13930000
//* OF DSN8D71A.DSN8S71E USING ONLY IMAGE COPY 13940000 //DSNTEJ5A JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), 00001000
// REGION=0M,NOTIFY=&SYSUID 00002000

Mise en œuvre Hercules & z/OS - Page - 103 - Mise en œuvre Hercules & z/OS - Page - 104 -
//**********************************************************************00010000 // DISP=SHR 00620000
//* NAME = DSNTEJ5A *00020000 //OBJLIB DD DSN=&&OBJMOD,DISP=(OLD,DELETE) 00630000
//* *00030000 //SYSLMOD DD DSN=DSN710.RUNLIB.LOAD(DSNTIAC),DISP=SHR 00640000
//* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION *00040000 //SYSPRINT DD SYSOUT=* 00650000
//* PHASE 5 *00050000 //SYSUDUMP DD SYSOUT=* 00660000
//* ASSEMBLE DSNTIAC *00060000 //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(50,50)) 00670000
//* *00070000 //SYSLIN DD * 00680000
//* LICENSED MATERIALS - PROPERTY OF IBM *00080000 INCLUDE SYSLIB(DFHEAI) 00690000
//* 5675-DB2 *00090000 INCLUDE OBJLIB(DSNTIAC) 00700000
//* (C) COPYRIGHT 1982, 2000 IBM CORP. ALL RIGHTS RESERVED. *00100000 NAME DSNTIAC(R) 00710000
//* *00110000 //* 00720000
//* STATUS = VERSION 7 *00120000 //* STEP 4: GENERATE INPUT TO RESOURCE CONTROL TABLE ASSEMBLY 00730000
//* *00130000 //* 00740000
//* FUNCTION = THIS JOB: *00140000 //*PH05AS04 EXEC PGM=IEBGENER,COND=(4,LT) 00750000
//* 1) ASSEMBLES THE CICS FRONT END FOR THE SQLCA *00150000 //*SYSPRINT DD SYSOUT=* 00760000
//* FORMATTER ROUTINE, DSNTIAC *00160000 //*SYSIN DD DUMMY 00770000
//* 2) OPTIONALLY ASSEMBLES A SAMPLE RESOURCE CONTROL TABLE*00170000 //*SYSUT2 DD DSN=&&TEMPPDS(MACROS),UNIT=SYSDA,DISP=(,PASS), 00780000
//* 3) OPTIONALLY BUILDS CICS CSD DEFINITIONS FOR THE DB2 *00180000 //* DCB=(RECFM=FB,LRECL=80,BLKSIZE=400),VOL=SER=DSNV01, 00790000
//* SAMPLES *00190000 //* SPACE=(400,(200,100,5)) 00800000
//* *00200000 //*SYSUT1 DD DSN=DSN710.SDSNSAMP(DSN8FRCT),DISP=SHR 00810000
//**********************************************************************00210000 //* 00820000
//JOBLIB DD DSN=DSN710.SDSNEXIT,DISP=SHR 00220000 //* STEP 5: ASSEMBLE THE RESOURCE CONTROL TABLE 00830000
// DD DSN=DSN710.SDSNLOAD,DISP=SHR 00230000 //* 00840000
// DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR 00240000 //*PH05AS05 EXEC PGM=ASMA90, 00850000
//* 00250000 //* PARM='SYSPARM(INITIAL),DECK,NOOBJECT,FLAG(0)', 00860000
//* STEP 1: CICS TRANSLATE 00260000 //* COND=(4,LT,PH05AS04) 00870000
//PH05AS01 EXEC PGM=DFHEAP1$ 00270000 //*SYSLIB DD DSN=CICSTS22.CICS.SDFHMAC,DISP=SHR 00880000
//STEPLIB DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR 00280000 //* DD DSN=DSN710.SDSNMACS,DISP=SHR 00890000
//SYSPRINT DD SYSOUT=* 00290000 //* DD DSN=SYS1.MACLIB,DISP=SHR 00900000
//SYSUDUMP DD SYSOUT=* 00300000 //*SYSUT1 DD UNIT=SYSDA,SPACE=(1700,(400,400)),VOL=SER=DSNV01 00910000
//SYSPUNCH DD DSN=&&CICSOUT,DISP=(NEW,PASS),UNIT=SYSDA, 00310000 //*SYSUT2 DD UNIT=SYSDA,SPACE=(1700,(400,400)),VOL=SER=DSNV01 00920000
// SPACE=(400,(100,100)),DCB=BLKSIZE=400 00320000 //*SYSUT3 DD UNIT=SYSDA,SPACE=(1700,(400,400)),VOL=SER=DSNV01 00930000
//SYSIN DD DSN=DSN710.SDSNSAMP(DSNTIAC), 00330000 //*SYSPUNCH DD DSN=&&OBJMOD,DISP=(,PASS),UNIT=SYSDA,VOL=SER=DSNV01, 00940000
// DISP=SHR 00340000 //* DCB=(RECFM=FB,LRECL=80,BLKSIZE=400), 00950000
//* 00350000 //* SPACE=(400,(100,100)) 00960000
//* STEP 2: ASSEMBLE DSNTIAC 00360000 //*SYSPRINT DD SYSOUT=* 00970000
//PH05AS02 EXEC PGM=ASMA90,PARM='NOOBJECT,DECK', 00370000 //*SYSIN DD DSN=&&TEMPPDS(MACROS),DISP=(OLD,PASS) 00980000
// COND=(4,LT,PH05AS01) 00380000 //* 00990000
//SYSIN DD DSN=&&CICSOUT,DISP=(OLD,PASS) 00390000 //* STEP 6: ADD OBJECT DECK TO TEMPORARY PDS 01000000
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR 00400000 //* 01010000
// DD DSN=DSN710.SDSNMACS,DISP=SHR 00410000 //*PH05AS06 EXEC PGM=IEBUPDTE,PARM=NEW,COND=(4,LT,PH05AS05) 01020000
// DD DSN=DSN710.SDSNSAMP,DISP=SHR 00420000 //*SYSPRINT DD DUMMY 01030000
// DD DSN=CICSTS22.CICS.SDFHMAC,DISP=SHR 00430000 //*SYSUT2 DD DSN=&&TEMPPDS,DISP=(OLD,PASS) 01040000
//SYSPUNCH DD DSN=&&OBJMOD(DSNTIAC),DISP=(,PASS),UNIT=SYSDA, 00440000 //*SYSIN DD DSN=&&OBJMOD,DISP=(OLD,DELETE) 01050000
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120), 00450000 //* 01060000
// SPACE=(TRK,(10,1,1)) 00460000 //* STEP 7: LINK-EDIT THE RESOURCE CONTROL TABLE 01070000
//SYSPRINT DD SYSOUT=* 00470000 //* 01080000
//SYSUDUMP DD SYSOUT=* 00480000 //*PH05AS07 EXEC PGM=IEWL,PARM='LIST,XREF,LET,NCAL',COND=(4,LT,PH05AS06)01090000
//SYSUT1 DD UNIT=SYSDA,SPACE=(800,(500,500),,,ROUND) 00490000 //*SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(100,50)) 01100000
//SYSUT2 DD UNIT=SYSDA,SPACE=(800,(500,500),,,ROUND) 00500000 //*SYSPRINT DD SYSOUT=* 01110000
//SYSUT3 DD UNIT=SYSDA,SPACE=(800,(500,500),,,ROUND) 00510000 //*SYSLMOD DD DSN=DSN710.RUNLIB.LOAD,DISP=SHR 01120000
//* 00520000 //*SYSPUNCH DD DSN=&&TEMPPDS,DISP=(OLD,PASS) 01130000
//* STEP 3: LINK-EDIT DSNTIAC IF THE ASSEMBLER 00530000 //*SYSLIN DD DSN=&&TEMPPDS(LNKCTL), 01140000
//* RETURN CODE IS 4 OR LESS 00540000 //* DISP=(OLD,PASS),VOL=REF=*.PH05AS04.SYSUT2 01150000
//* 00550000 //* 01160000
//PH05AS03 EXEC PGM=IEWL, 00560000 //* STEP 8: CREATE SAMPLE DEFINITIONS IN THE CICS CSD 01170000
// PARM='LIST,XREF,RENT,LET,AMODE=31,RMODE=ANY', 00570000 //* 01180000
// COND=(4,LT,PH05AS02) 00580000 //PH05AS08 EXEC PGM=DFHCSDUP 01190001
//SYSLIB DD DSN=DSN710.SDSNLOAD, 00590000 //STEPLIB DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR 01200001
// DISP=SHR 00600000 //DFHCSD DD DSN=CICSTS22.CICS.DFHCSD,DISP=SHR 01210001
// DD DSN=CICSTS22.CICS.SDFHLOAD, 00610000 //SYSPRINT DD SYSOUT=* 01220001

Mise en œuvre Hercules & z/OS - Page - 105 - Mise en œuvre Hercules & z/OS - Page - 106 -
//SYSIN DD DSN=DSN710.SDSNSAMP(DSN8FRDO),DISP=SHR 01230001 DELIM(APOST) SQLDELIM(APOSTSQL) + 00550000
DBRMLIB('''DSN710.DBRMLIB.DATA''') + 00560000
PRELINK(NO) + 00570000
LLIB('''IBMUSER.LIB.LOAD''') + 00580002
JOB DSNTEJ5C – Compilation des sources, MAPS, BIND, et GRANT du plan DB2 CICSLLIB('CICSTS22.CICS.SDFHLOAD') + 00581001
CICSPLIB('''CICSTS22.CICS.SDFHPL1''') + 00582001
//DSNTEJ5C JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), 00001000 CICSCLIB('''CICSTS22.CICS.SDFHCOB''') + 00583001
// REGION=0M,NOTIFY=&SYSUID 00002000 COBLOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00590000
//**********************************************************************00010000 COB2LIB('''IGY310.SIGYCOMP''') + 00591000
//* NAME = DSNTEJ5C *00020000 COB2LOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00592000
//* *00030000 COB2CICS('''CICSTS22.CICS.SDFHCOB''') + 00592100
//* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION *00040000 COPTION('''NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF''') + 00593000
//* PHASE 5 *00050000 LOPTION('LIST,XREF,REUS,RENT') + 00620000
//* COBOL, CICS *00060000 PCLOAD('''DSN710.SDSNLOAD(DSNHPC)''') + 00630000
//* *00070000 STDSQL(NO) + 00640000
//* LICENSED MATERIALS - PROPERTY OF IBM *00080000 XLIB('''DSN710.SDSNLOAD''') + 00650000
//* 5675-DB2 *00090000 LLIB('''CEE.SCEELKED''') + 00651000
//* (C) COPYRIGHT 1982, 2000 IBM CORP. ALL RIGHTS RESERVED. *00100000 LOAD('''DSN710.RUNLIB.LOAD''') 00660000
//* *00110000 %DSNH INPUT('''DSN710.SDSNSAMP(DSN8CC0)''') + 00661000
//* STATUS = VERSION 7 *00120000 PLIB('''DSN710.SRCLIB.DATA''') + 00662000
//* *00130000 P2LIB('''DSN710.SDSNSAMP''') + 00663000
//* FUNCTION = THIS JCL PERFORMS THE PHASE 5 SETUP FOR THE SAMPLE *00140000 TERM(LEAVE) PRINT(LEAVE) SOURCE(NO) XREF(NO) + 00664000
//* APPLICATIONS AT SITES WITH COBOL. IT PREPARES THE *00150000 HOST(COB2) RUN(CICS) BIND(NO) + 00665000
//* COBOL CICS PROGRAM. *00160000 DELIM(APOST) SQLDELIM(APOSTSQL) + 00666000
//* *00170000 DBRMLIB('''DSN710.DBRMLIB.DATA''') + 00667000
//* RUN THIS JOB ANYTIME AFTER PHASE 2. *00180000 PRELINK(NO) + 00668000
//* *00190000 LLIB('''DSN710.RUNLIB.LOAD''') + 00669000
//**********************************************************************00200000 CICSLLIB('CICSTS22.CICS.SDFHLOAD') + 00669101
//JOBLIB DD DSN=DSN710.SDSNEXIT,DISP=SHR 00210000 CICSPLIB('''CICSTS22.CICS.SDFHPL1''') + 00669201
// DD DSN=DSN710.SDSNLOAD,DISP=SHR 00220000 CICSCLIB('''CICSTS22.CICS.SDFHCOB''') + 00669301
// DD DSN=CICSTS22.CICS.SDFHLOAD,DISP=SHR 00230000 COBLOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00669400
//* 00240000 COB2LIB('''IGY310.SIGYCOMP''') + 00669500
//* STEP 1: CREATE CICS LOGICAL MAP 00250000 COB2LOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00669600
//MAPG EXEC DFHASMVS,PARM='DECK,NOOBJECT,SYSPARM(DSECT)', 00260000 COB2CICS('''CICSTS22.CICS.SDFHCOB''') + 00669700
// OUTC='*',INDEX='CICSTS22.CICS' 00270000 COPTION('''NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF''') + 00669800
//SYSPUNCH DD DSN=DSN710.SRCLIB.DATA(DSN8MCMG), 00280000 LOPTION('LIST,XREF,NOREUS,RENT') + 00669900
// DISP=OLD 00290000 PCLOAD('''DSN710.SDSNLOAD(DSNHPC)''') + 00670000
//SYSIN DD DSN=DSN710.SDSNSAMP(DSN8CCG), 00300000 STDSQL(NO) + 00670100
// DISP=SHR 00310000 XLIB('''DSN710.SDSNLOAD''') + 00670200
//* 00320000 LLIB('''CEE.SCEELKED''') + 00670300
//* STEP 2: CREATE CICS LOGICAL MAP 00330000 LOAD('''DSN710.RUNLIB.LOAD''') 00670400
//MAPD EXEC DFHASMVS,PARM='DECK,NOOBJECT,SYSPARM(DSECT)', 00340000 %DSNH INPUT('''DSN710.SDSNSAMP(DSN8CC1)''') + 00671000
// COND=(4,LT),OUTC='*',INDEX='CICSTS22.CICS' 00350000 PLIB('''DSN710.SRCLIB.DATA''') + 00680000
//SYSPUNCH DD DSN=DSN710.SRCLIB.DATA(DSN8MCMD), 00360000 P2LIB('''DSN710.SDSNSAMP''') + 00690000
// DISP=OLD 00370000 TERM(LEAVE) PRINT(LEAVE) SOURCE(NO) XREF(NO) + 00700000
//SYSIN DD DSN=DSN710.SDSNSAMP(DSN8CCD), 00380000 HOST(COB2) RUN(CICS) BIND(NO) + 00710000
// DISP=SHR 00390000 DELIM(APOST) SQLDELIM(APOSTSQL) + 00720000
//* 00400000 DBRMLIB('''DSN710.DBRMLIB.DATA''') + 00730000
//* STEP 3: PREPARE CICS COBOL PROGRAMS 00410000 PRELINK(NO) + 00740000
//DSNH EXEC PGM=IKJEFT01,COND=(4,LT),DYNAMNBR=50 00420000 LLIB('''DSN710.RUNLIB.LOAD''') + 00750000
//SYSTSPRT DD SYSOUT=* 00430000 CICSLLIB('CICSTS22.CICS.SDFHLOAD') + 00750101
//SYSTERM DD SYSOUT=* 00440000 CICSPLIB('''CICSTS22.CICS.SDFHPL1''') + 00750201
//SYSPRINT DD SYSOUT=* 00450000 CICSCLIB('''CICSTS22.CICS.SDFHCOB''') + 00750301
//SYSUDUMP DD SYSOUT=* 00460000 COB2LIB('''IGY310.SIGYCOMP''') + 00751000
//SYSOUT DD SYSOUT=* 00470000 COBLOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00760000
//SYSPROC DD DSN=DSN710.SDSNCLST,DISP=SHR 00480000 COB2LOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00761000
//SYSTSIN DD * 00490000 COB2CICS('''CICSTS22.CICS.SDFHCOB''') + 00761100
%DSNH INPUT('''DSN710.SDSNSAMP(DSN8MCG)''') + 00500000 COPTION('''NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF''') + 00761200
PLIB('''DSN710.SRCLIB.DATA''') + 00510000 LOPTION('LIST,XREF,NOREUS,RENT') + 00790000
P2LIB('''DSN710.SDSNSAMP''') + 00520000 PCLOAD('''DSN710.SDSNLOAD(DSNHPC)''') + 00800000
TERM(LEAVE) PRINT(LEAVE) SOURCE(NO) XREF(NO) + 00530000 STDSQL(NO) + 00810000
HOST(COB2) RUN(CICS) BIND(NO) + 00540000

Mise en œuvre Hercules & z/OS - Page - 107 - Mise en œuvre Hercules & z/OS - Page - 108 -
XLIB('''DSN710.SDSNLOAD''') + 00820000 //SYSLMOD DD DSN=DSN710.RUNLIB.LOAD,DISP=SHR 01340000
LLIB('''CEE.SCEELKED''') + 00821000 //SYSPRINT DD SYSOUT=* 01350000
L2LIB('''DSN710.RUNLIB.LOAD''') + 00822000 //SYSUDUMP DD SYSOUT=* 01360000
LOAD('''DSN710.RUNLIB.LOAD''') 00830000 //SYSLIN DD DSN=&&TEMP,DISP=(OLD,DELETE) 01370000
%DSNH INPUT('''DSN710.SDSNSAMP(DSN8CC2)''') + 00840000 // DD * 01380000
PLIB('''DSN710.SRCLIB.DATA''') + 00850000 NAME DSN8CCG(R) 01390000
P2LIB('''DSN710.SDSNSAMP''') + 00860000 //* 01400000
TERM(LEAVE) PRINT(LEAVE) SOURCE(NO) XREF(NO) + 00870000 //* STEP 7: CREATE THE CICS BMS PHYSICAL MAP 01410000
HOST(COB2) RUN(CICS) BIND(NO) + 00880000 //MAPDP EXEC DFHASMVS,COND=(4,LT),OUTC='*',INDEX='CICSTS22.CICS' 01420002
DELIM(APOST) SQLDELIM(APOSTSQL) + 00890000 //SYSPUNCH DD DSN=&&TEMP,UNIT=SYSDA,DISP=(,PASS), 01430000
DBRMLIB('''DSN710.DBRMLIB.DATA''') + 00900000 // DCB=(RECFM=F,BLKSIZE=80),SPACE=(1024,(100,10)) 01440000
PRELINK(NO) + 00910000 //SYSIN DD DSN=DSN710.SDSNSAMP(DSN8CCD), 01450000
LLIB('''DSN710.RUNLIB.LOAD''') + 00920000 // DISP=SHR 01460000
CICSLLIB('CICSTS22.CICS.SDFHLOAD') + 00920101 //* 01470000
CICSPLIB('''CICSTS22.CICS.SDFHPL1''') + 00920201 //* STEP 8: LINKEDIT THE CICS BMS PHYSICAL MAP 01480000
CICSCLIB('''CICSTS22.CICS.SDFHCOB''') + 00920301 //MAPDL EXEC PGM=IEWL,PARM='LIST,LET,XREF',COND=(4,LT) 01490000
COB2LIB('''IGY310.SIGYCOMP''') + 00921000 //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(100,10)) 01500000
COBLOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00930000 //SYSLMOD DD DSN=DSN710.RUNLIB.LOAD,DISP=SHR 01510000
COB2LOAD('''IGY310.SIGYCOMP(IGYCRCTL)''') + 00931000 //SYSPRINT DD SYSOUT=* 01520000
COB2CICS('''CICSTS22.CICS.SDFHCOB''') + 00931100 //SYSUDUMP DD SYSOUT=* 01530000
COPTION('''NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF''') + 00931200 //SYSLIN DD DSN=&&TEMP,DISP=(OLD,DELETE) 01540000
LOPTION('LIST,XREF,NOREUS,RENT') + 00960000 // DD * 01550000
PCLOAD('''DSN710.SDSNLOAD(DSNHPC)''') + 00970000 NAME DSN8CCD(R) 01560000
STDSQL(NO) + 00980000
XLIB('''DSN710.SDSNLOAD''') + 00990000
LLIB('''CEE.SCEELKED''') + 00991000
L2LIB('''DSN710.RUNLIB.LOAD''') + 00992000
LOAD('''DSN710.RUNLIB.LOAD''') 01000000 Job DSNTEJ4C installaton de l’application IMS-DB2 sample
//* 01010000
//DSNTEJ4C JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), 00001001
//* STEP 4: BIND THE PROGRAM 01020000
// REGION=0M,NOTIFY=&SYSUID 00002001
//BIND EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 01030000
//**********************************************************************00010000
//DBRMLIB DD DSN=DSN710.DBRMLIB.DATA,DISP=SHR 01040000
//* NAME = DSNTEJ4C *00020000
//SYSUDUMP DD SYSOUT=* 01050000
//* *00030000
//SYSTSPRT DD SYSOUT=* 01060000
//* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION *00040000
//SYSPRINT DD SYSOUT=* 01070000
//* PHASE 4 *00050000
//SYSIN DD * 01080000
//* COBOL, IMS *00060000
GRANT BIND, EXECUTE ON PLAN DSN8CC0 TO PUBLIC; 01090003
//* *00070000
//SYSTSIN DD * 01100000
//* LICENSED MATERIALS - PROPERTY OF IBM *00080000
DSN SYSTEM(DSN1) 01110000
//* 5675-DB2 *00090000
BIND PACKAGE (DSN8CC71) MEMBER(DSN8CC0) - 01120002
//* (C) COPYRIGHT 1982, 2000 IBM CORP. ALL RIGHTS RESERVED. *00100000
ACT(REP) ISO(CS) ENCODING(EBCDIC) 01130000
//* *00110000
BIND PACKAGE (DSN8CC71) MEMBER(DSN8CC1) - 01140002
//* STATUS = VERSION 7 *00120000
ACT(REP) ISO(CS) ENCODING(EBCDIC) 01150000
//* *00130000
BIND PACKAGE (DSN8CC71) MEMBER(DSN8CC2) - 01160002
//* FUNCTION = THIS JCL PERFORMS THE PHASE 4 SETUP FOR THE SAMPLE *00140000
ACT(REP) ISO(CS) ENCODING(EBCDIC) 01170000
//* APPLICATIONS AT SITES WITH COBOL. IT PREPARES THE *00150000
BIND PLAN(DSN8CC0) PKLIST(DSN8CC71.*) - 01180002
//* COBOL IMS PROGRAM. *00160000
ACT(REP) ISO(CS) ENCODING(EBCDIC) 01190000
//* *00170000
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 01200002
//* RUN THIS JOB ANYTIME AFTER PHASE 2. *00180000
LIB('DSN710.RUNLIB.LOAD') 01210000
//* *00190000
END 01220000
//* CHANGE ACTIVITY = *00200000
//* 01230000
//* 04/11/94 - ADD CODE FOR TU2631IE *00210000
//* STEP 5: CREATE THE CICS BMS PHYSICAL MAP 01240000
//* *00220000
//MAPGP EXEC DFHASMVS,COND=(4,LT),OUTC='*',INDEX='CICSTS22.CICS' 01250002
//**********************************************************************00230000
//SYSPUNCH DD DSN=&&TEMP,UNIT=SYSDA,DISP=(,PASS), 01260000
//* 00240000
// DCB=(RECFM=F,BLKSIZE=80),SPACE=(1024,(100,10)) 01270000
//JOBLIB DD DSN=DSN710.SDSNLOAD,DISP=SHR 00250001
//SYSIN DD DSN=DSN710.SDSNSAMP(DSN8CCG), 01280000
//IMS810 JCLLIB ORDER=IMS810.PROCLIB 00251001
// DISP=SHR 01290000
//* STEP 1: PREPARE SQL 0 PART OF PROGRAM 00260001
//* 01300000
//PH04CS01 EXEC DSNHCOB2, 00270001
//* STEP 6: LINKEDIT THE CICS BMS PHYSICAL MAP 01310000
// PARM.PC=('HOST(COB2)',APOST,APOSTSQL,SOURCE,XREF, 00280001
//MAPGL EXEC PGM=IEWL,PARM='LIST,LET,XREF',COND=(4,LT) 01320000
// 'STDSQL(NO)'), 00290000
//SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(100,10)) 01330000
// PARM.COB=(APOST,NODYNAM,ADV,NOOPTIMIZE,NORESIDENT, 00300001

Mise en œuvre Hercules & z/OS - Page - 109 - Mise en œuvre Hercules & z/OS - Page - 110 -
// NOTRUNC,'BUF(12288)',SOURCE,NOXREF), 00310001 //* STEP 4: LINKEDIT THE ENTIRE PROGRAM 00910000
// PARM.LKED='XREF,NCAL',USER=DSN710, 00320001 //PH04CS04 EXEC PGM=IEWL,PARM='LIST,XREF,LET',COND=(4,LT) 00920000
// MEM=DSN8IC0 00330000 //SYSLIB DD DISP=SHR,DSN=IGY310.SIGYCOMP 00930001
//PC.DBRMLIB DD DSN=DSN710.DBRMLIB.DATA(DSN8IC0), 00340001 // DD DSN=DSN710.SDSNLOAD,DISP=SHR 00940001
// DISP=SHR 00350000 // DD DISP=SHR,DSN=IMS810.SDFSRESL 00950001
//PC.SYSCIN DD DSN=&&DSNHOUT0 00360000 //SYSLIN DD DDNAME=SYSIN 00960000
//PC.SYSLIB DD DSN=DSN710.SRCLIB.DATA, 00370001 //SYSLMOD DD DSN=DSN710.RUNLIB.LOAD,DISP=SHR 00970001
// DISP=SHR 00380000 //SYSPRINT DD SYSOUT=* 00980000
// DD DSN=DSN710.SDSNSAMP, 00390001 //SYSUDUMP DD SYSOUT=* 00990000
// DISP=SHR 00400000 //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(50,50)) 01000000
//PC.SYSIN DD DSN=DSN710.SDSNSAMP(DSN8IC0), 00410001 //SYSIN DD * 01010000
// DISP=SHR 00420000 INCLUDE SYSLIB(DFSLI000) 01020000
//COB.SYSIN DD DSN=&&DSNHOUT0 00430000 INCLUDE SYSLMOD(DSN8IC0) 01030000
//LKED.SYSLMOD DD DSN=DSN710.RUNLIB.LOAD(DSN8IC0),DISP=SHR 00440001 INCLUDE SYSLMOD(DSN8IC1) 01040000
//LKED.SYSLIB DD DSN=IMS810.SDFSRESL,DISP=SHR 00441001 INCLUDE SYSLMOD(DSN8IC2) 01050000
//* 00460000 INCLUDE SYSLMOD(DSN8MCG) 01060000
//* STEP 2: PREPARE SQL 1 PART OF PROGRAM 00470000 ENTRY DLITCBL 01070000
//PH04CS02 EXEC DSNHCOB2, 00480001 NAME DSN8IC0(R) 01080000
// PARM.PC=('HOST(COB2)',APOST,APOSTSQL,SOURCE,XREF, 00490001 //* 01090000
// 'STDSQL(NO)'), 00500000 //* STEP 5: BIND THE PLAN 01100000
// PARM.COB=(APOST,NODYNAM,ADV,NOOPTIMIZE,NORESIDENT, 00510001 //PH04CS05 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT) 01110000
// NOTRUNC,'BUF(12288)',SOURCE,NOXREF), 00520001 //DBRMLIB DD DSN=DSN710.DBRMLIB.DATA,DISP=SHR 01120001
// PARM.LKED='XREF,NCAL',USER=DSN710, 000530001 //SYSUDUMP DD SYSOUT=* 01130000
// COND=(4,LT), 00540000 //SYSTSPRT DD SYSOUT=* 01140000
// MEM=DSN8IC1 00550000 //SYSPRINT DD SYSOUT=* 01150000
//PC.DBRMLIB DD DSN=DSN710.DBRMLIB.DATA(DSN8IC1), 00560001 //SYSIN DD * 01160000
// DISP=SHR 00570000 GRANT BIND, EXECUTE ON PLAN DSN8IC0 TO PUBLIC; 01170000
//PC.SYSCIN DD DSN=&&DSNHOUT1 00580000 //SYSTSIN DD * 01180000
//PC.SYSLIB DD DSN=DSN710.SRCLIB.DATA, 00590001 DSN SYSTEM(DSN1) 01190001
// DISP=SHR 00600000 BIND PACKAGE (DSN8IC71) MEMBER(DSN8IC1) - 01200001
// DD DSN=DSN710.SDSNSAMP, 00610001 ACT(REP) ISO(CS) ENCODING(EBCDIC) 01210000
// DISP=SHR 00620000 BIND PACKAGE (DSN8IC71) MEMBER(DSN8IC2) - 01220001
//PC.SYSIN DD DSN=DSN710.SDSNSAMP(DSN8IC1), 00630001 ACT(REP) ISO(CS) ENCODING(EBCDIC) 01230000
// DISP=SHR 00640000 BIND PLAN(DSN8IC0) PKLIST(DSN8IC71.*) - 01240001
//COB.SYSIN DD DSN=&&DSNHOUT1 00650000 ACT(REP) ISO(CS) ENCODING(EBCDIC) 01250000
//LKED.SYSLMOD DD DSN=DSN710.RUNLIB.LOAD(DSN8IC1),DISP=SHR 00660001 RUN PROGRAM(DSNTIAD) PLAN(DSNTIA71) - 01260001
//LKED.SYSLIB DD DSN=IMS810.SDFSRESL,DISP=SHR 00661001 LIB('DSN710.RUNLIB.LOAD') 01270001
//* 00680000 END 01280000
//* STEP 3: PREPARE SQL 2 PART OF PROGRAM 00690000 //* 01290000
//PH04CS03 EXEC DSNHCOB2, 00700001 //* STEP 6: CREATE THE MFS MAPS 01300000
// PARM.PC=('HOST(COB2)',APOST,APOSTSQL,SOURCE,XREF, 00710001 //PH04CS06 EXEC MFSUTL,COND=(4,LT) 01310000
// 'STDSQL(NO)'), 00720000 //SYSIN DD DSN=DSN710.SDSNSAMP(DSN8IPG), 01320001
// PARM.COB=(APOST,NODYNAM,ADV,NOOPTIMIZE,NORESIDENT, 00730001 // DISP=SHR 01330000
// NOTRUNC,'BUF(12288)',SOURCE,NOXREF), 00740001 //* 01340000
// PARM.LKED='XREF,NCAL',USER=DSN710, 00750001 //* STEP 7: CREATE THE MFS MAPS 01350000
// COND=(4,LT), 00760000 //PH04CS07 EXEC MFSUTL,COND=(4,LT) 01360000
// MEM=DSN8IC2 00770000 //SYSIN DD DSN=DSN710.SDSNSAMP(DSN8IPD), 01370001
//PC.DBRMLIB DD DSN=DSN710.DBRMLIB.DATA(DSN8IC2), 00780001 // DISP=SHR 01380000
// DISP=SHR 00790000 //* 01390000
//PC.SYSCIN DD DSN=&&DSNHOUT2 00800000 //* STEP 8: RUN THE PSBGEN 01400000
//PC.SYSLIB DD DSN=DSN710.SRCLIB.DATA, 00810001 //PH04CS08 EXEC PSBGEN,MBR=DSN8IC0,COND=(4,LT) 01410000
// DISP=SHR 00820000 //C.SYSIN DD * 01420000
// DD DSN=DSN710.SDSNSAMP, 00830001 PRINT NOGEN 01430000
// DISP=SHR 00840000 PCB TYPE=TP,EXPRESS=YES,ALTRESP=YES,MODIFY=YES,SAMETRM=YES 01440000
//PC.SYSIN DD DSN=DSN710.SDSNSAMP(DSN8IC2), 00850001 PSBGEN PSBNAME=DSN8IC0,LANG=COBOL 01450000
// DISP=SHR 00860000 END 01460000
//COB.SYSIN DD DSN=&&DSNHOUT2 00870000 //* 01470000
//LKED.SYSLMOD DD DSN=DSN710.RUNLIB.LOAD(DSN8IC2), 00880001 //* STEP 9: RUN THE ACBGEN 01480000
// DISP=SHR 00890000 //PH04CS09 EXEC ACBGEN,COND=(4,LT) 01490000
//LKED.SYSLIB DD DSN=IMS810.SDFSRESL,DISP=SHR 00891001 //G.SYSIN DD * 01500000
//* 00900000 BUILD PSB=DSN8IC0 01510000

Mise en œuvre Hercules & z/OS - Page - 111 - Mise en œuvre Hercules & z/OS - Page - 112 -
//* 01520000
//* ALSO ADD MEMBER DSN8FIMS TO THE SYSDEF TO ADD TRANSACTIONS 01530000
//* 01540000

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

Vous aimerez peut-être aussi