Compilar en C/C++ desde el TSO

Todo lo relacionado con simuladores de HW para otras plataformas. Hercules y ...
javierc

Re: Compilar en C/C++ desde el TSO

Mensaje por javierc » 26 Feb 2013, 00:47

LuisFer escribió:Efectivamente, es un lenguaje de programación.
Saludos
Hola, ya lo probé y funciona. Gracias por vuestras respuestas en especial a Norberto y Luisfer, una duda que me surge ¿qué diferencia hay entre usar JOBLIB y STEPLIB? ¿Es lo mismo?

Saludos

Avatar de Usuario
LuisFer
Colaborador Senior
Colaborador Senior
Mensajes: 367
Registrado: 27 May 2006, 16:06
País: España
Ciudad: Madrid
Ocupación: IT Specialist

Re: Compilar en C/C++ desde el TSO

Mensaje por LuisFer » 26 Feb 2013, 02:59

JOBLIB afecta a la busqueda de PGMs en todo el JCL, STEPLIB solo al "paso" (STEP) donde se encuentra referenciada
No me sigas, puedo no guiarte, no vayas delante , puedo no seguirte, caminemos juntos y sé simplemente, mi amigo.

javierc

Re: Compilar en C/C++ desde el TSO

Mensaje por javierc » 02 Mar 2013, 01:43

Hola, pues esto ya lo probé y está mas o menos superado, ahora estoy intentando preparar unos JCL´s para compilar en ambos lenguajes con llamadas a SQL, ya que sé C y Cóbol y ya he hecho mis primeros programas, compilando con JCL, pero me desconcierta la ayuda de ibm, después de consultar muchísimas páginas de ayuda no encuentro ningún ejemplo completo que diga cómo hacerlo. Lo que encuentro es información de procedimientos catalogados para compilar y de unos ejemplos de programas que al parecer se instalan desde unos JCL´s y que según la ayuda de IBM sirven para instalar los ejemplos, revisar que la plataforma de ejemplos y compiladores está bien instalada y por último servir de ejemplo para que luego uses el JCL para compilar tus propios programas. Concretamente la información está aquí: http://pic.dhe.ibm.com/infocenter/dzich ... edures.htm

Según dicen los miembros que hacen esto están en DSNXX0.SDSNSAMP siendo XX la versión de base de datos. Ahí las rutas a las librerías están con JJ que es el nº de versión. En mi ADCD tengo para la 91 y la 81 y donde uso el ZOS para la 10, pero me centraré en la que más puedo tocar que es mi ADCD. Al parecer al instalarse se crea la librería NEW, y en mi instalación tengo DSN810.NEW.SDSNSAMP y ahí sí están las rutas de las librerías correctas. Pues bien, siguiendo el enlace que puse, dice que use lo adaptes para compilar tus programas teniendo los siguientes:

- Para C Procedure DNSHC invocado desde DSNTEJ2D
- Para Cóbol procedure DNSHICOB invocado desde DSNTEJ2C

La cuestión es que me cojo los DSNTEJ2D y DSNTEJ2C, que creo que tienen bastante más cosas de las que necesito, les añado arriba el comando JOB e intento modificarles las rutas de las librerías y programa fuente, pero no tengo ninguna pauta para hacerlo y no logro que funcionen, ¿no hay algún ejemplo más simple o alguna guía que indique todo esto y la pueda seguir? Además lo que me frustra es que siempre me da el mismo error en todo lo que hago y no encuentro referencia alguna a lo que puede ser, es el siguiente error:
60 IEF686I DDNAME REFERRED TO ON DDNAME KEYWORD IN PRIOR STEP WAS NOT RESOLVED

También veo más abajo un error:
IEF212I TSOAD05J LKED PH02DS01 SYSLIB +002 - DATA SET NOT FOUND

He probado a añadir LKED SYSLIB con la librería pero sigue apareciendo este error... en la ayuda decía que tiene que incluirse la SYSLIB con el miembro DSNELI pero eso ya está puesto aunque no se ve en el spool, lo puse al final tal como viene en el archivo provisto DSNTEJ2D:

//LKED.SYSIN DD *
INCLUDE SYSLIB(DSNELI)
INCLUDE RUNLIB(DSN8MDG)


La cuestión es que si lo ejecuto tal cual como viene tampoco funciona, obtengo el mismo error.... lo que me desespera es que este error no sé por dónde cogerlo no sé a qué se refiere. Entiendo que sería que le falta un DDNAME pero si lo que hago es dejar el JCL tal cual y solo cambio el fuente a mi fichero.

El fuente es un simple HolaMundo en C que ya he probado y compila perfectamente en C y lo quiero usar para ir añadiendo código.

¿Alguna sugerencia?

Adjunto salida del spool:
1 J E S 2 J O B L O G -- S Y S T E M S Y S 1 -- N O D E N 1
0
11.48.39 JOB00929 ---- SATURDAY, 02 MAR 2013 ----
11.48.39 JOB00929 IRR010I USERID TSOAD05 IS ASSIGNED TO THIS JOB.
11.48.39 JOB00929 IEF677I WARNING MESSAGE(S) FOR JOB TSOAD05J ISSUED
11.48.40 JOB00929 ICH70001I TSOAD05 LAST ACCESS AT 11:33:43 ON SATURDAY, MARCH 2, 2013
11.48.40 JOB00929 $HASP373 TSOAD05J STARTED - INIT 1 - CLASS A - SYS SYS1
11.48.40 JOB00929 IEF403I TSOAD05J - STARTED - TIME=11.48.40
11.48.41 JOB00929 - --TIMINGS (MINS.)-- -----PAGING COUNTS----
11.48.41 JOB00929 -STEPNAME PROCSTEP RC EXCP CONN TCB SRB CLOCK SERV WORKLOAD PAGE SWAP VIO SWAPS
11.48.41 JOB00929 -PH02DS01 PC 04 319 0 .00 .00 .0 24665 SYSTEM 0 0 7 0
11.48.44 JOB00929 ICH408I USER(TSOAD05 ) GROUP(AD40 ) NAME(JAVIER CASTILLA ) 260
260 CL(PROCESS )
260 OMVS SEGMENT NOT DEFINED
11.48.44 JOB00929 ICH408I USER(TSOAD05 ) GROUP(AD40 ) NAME(JAVIER CASTILLA ) 261
261 CL(PROCESS )
261 OMVS SEGMENT NOT DEFINED
11.48.44 JOB00929 ICH408I USER(TSOAD05 ) GROUP(AD40 ) NAME(JAVIER CASTILLA ) 262
262 CL(PROCESS )
262 OMVS SEGMENT NOT DEFINED
11.48.47 JOB00929 -PH02DS01 C 00 6933 0 .04 .00 .0 249K SYSTEM 0 0 498 0
11.48.48 JOB00929 -PH02DS01 PLKED 04 2521 0 .00 .00 .0 68840 SYSTEM 0 0 4 0
11.48.48 JOB00929 -PH02DS01 LKED FLUSH 0 0 .00 .00 .0 0 SYSTEM 0 0 0 0
11.48.49 JOB00929 IEF453I TSOAD05J - JOB FAILED - JCL ERROR - TIME=11.48.49
11.48.49 JOB00929 -TSOAD05J ENDED. NAME-CHOLASQL TOTAL TCB CPU TIME= .05 TOTAL ELAPSED TIME= .1
11.48.49 JOB00929 $HASP395 TSOAD05J ENDED
0------ JES2 JOB STATISTICS ------
- 02 MAR 2013 JOB EXECUTION DATE
- 71 CARDS READ
- 1,252 SYSOUT PRINT RECORDS
- 0 SYSOUT PUNCH RECORDS
- 92 SYSOUT SPOOL KBYTES
- 0.16 MINUTES EXECUTION TIME
1 //TSOAD05J JOB 1AD40G12,'CHOLASQL',NOTIFY=&SYSUID, JOB00929
// MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
//*
IEFC653I SUBSTITUTION JCL - 1AD40G12,'CHOLASQL',NOTIFY=TSOAD05,MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,
TIME=(0,7)
2 //DSN810 JCLLIB ORDER=(ADCD.Z110.PROCLIB,DSN810.PROCLIB)
//*
//**********************************************************************
//* NAME = CHOLASQL COMPILA CHOLASQL (C + DB2 SQL) *
//* NOTES = ENSURE THAT LINE NUMBER SEQUENCING IS SET 'ON' IF *
//* THIS JOB IS SUBMITTED FROM AN ISPF EDIT SESSION *
//* *
//**********************************************************************
//*
3 //JOBLIB DD DSN=DSN810.SDSNLOAD,DISP=SHR
4 // DD DSN=CEE.SCEERUN,DISP=SHR
//*
//* STEP 1 : PREPARE ERROR MESSAGE ROUTINE
5 //PH02DS01 EXEC DSNHC,MEM=DSN8MDG,
// PARM.PC=('HOST(C),CCSID(1047),MARGINS(1,72),STDSQL(NO)',
// SOURCE,XREF),
// PARM.C='SOURCE XREF MARGINS(1,72)',
// PARM.LKED='NCAL,MAP,AMODE=31,RMODE=ANY'
XX**********************************************************************
XX* DSNHC - COMPILE AND LINKEDIT A C LANGUAGE PROGRAM
XX*
6 XXDSNHC PROC WSPC=500,MEM=TEMPNAME,USER=USER
XX*
XX* PRECOMPILE THE C PROGRAM
XX**********************************************************************
7 XXPC EXEC PGM=DSNHPC,PARM='HOST(C)'
8 //PC.DBRMLIB DD DSN=DSN810.DBRMLIB.DATA(DSN8MDG),
// DISP=SHR
X/DBRMLIB DD DISP=SHR,
X/ DSN=&USER..DBRMLIB.DATA(&MEM)
IEFC653I SUBSTITUTION JCL - DISP=SHR,DSN=USER.DBRMLIB.DATA(DSN8MDG)
9 XXSTEPLIB DD DISP=SHR,DSN=DSN910.DB9G.SDSNEXIT
10 XX DD DISP=SHR,DSN=DSN910.SDSNLOAD
11 XXSYSPRINT DD SYSOUT=*
12 XXSYSTERM DD SYSOUT=*
13 XXSYSUDUMP DD SYSOUT=*
14 XXSYSCIN DD DSN=&&DSNHOUT,DISP=(MOD,PASS),UNIT=SYSDA,
XX SPACE=(800,(&WSPC,&WSPC))
IEFC653I SUBSTITUTION JCL - DSN=&&DSNHOUT,DISP=(MOD,PASS),UNIT=SYSDA,SPACE=(800,(500,500))
15 //PC.SYSLIB DD DSN=DSN810.SRCLIB.DATA,
// DISP=SHR
X/SYSLIB DD DISP=SHR,DSN=&USER..SRCLIB.DATA
IEFC653I SUBSTITUTION JCL - DISP=SHR,DSN=USER.SRCLIB.DATA
16 XXSYSUT1 DD SPACE=(800,(&WSPC,&WSPC),,,ROUND),UNIT=SYSDA
IEFC653I SUBSTITUTION JCL - SPACE=(800,(500,500),,,ROUND),UNIT=SYSDA
17 XXSYSUT2 DD SPACE=(800,(&WSPC,&WSPC),,,ROUND),UNIT=SYSDA
XX*
XX* COMPILE THE C PROGRAM IF THE PRECOMPILE
XX* RETURN CODE IS 4 OR LESS
XX*
IEFC653I SUBSTITUTION JCL - SPACE=(800,(500,500),,,ROUND),UNIT=SYSDA
18 //PC.SYSIN DD DSN=DSN810.SDSNSAMP(DSN8MDG),
// DISP=SHR
19 XXC EXEC PGM=CCNDRVR,COND=(4,LT,PC),PARM=('RENT')
20 XXSTEPLIB DD DISP=SHR,DSN=CBC.SCCNCMP
21 XXSYSLIB DD DISP=SHR,DSN=CEE.SCEEH.H
22 XX DD DISP=SHR,DSN=DSN910.SDSNC.H
23 XX DD DISP=SHR,DSN=GDDM.SADMSAM
24 XXSYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA,
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
25 XXSYSPRINT DD SYSOUT=*
26 XXSYSCPRT DD SYSOUT=*
27 XXSYSTERM DD DUMMY
28 XXSYSIN DD DSN=&&DSNHOUT,DISP=(OLD,DELETE)
29 XXSYSUT1 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
30 XXSYSUT2 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
31 XXSYSUT3 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
32 XXSYSUT4 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
33 XXSYSUT5 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
34 XXSYSUT6 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
35 XXSYSUT7 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
36 XXSYSUT8 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
37 XXSYSUT9 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
38 XXSYSUT10 DD SYSOUT=*
39 XXSYSUT14 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
XX*
XX* PRE-LINKEDIT
XX*
40 XXPLKED EXEC PGM=EDCPRLK,COND=((4,LT,PC),(4,LT,C))
41 XXSTEPLIB DD DISP=SHR,DSN=CEE.SCEERUN
42 XXSYSMSGS DD DISP=SHR,
XX DSN=CEE.SCEEMSGP(EDCPMSGE)
43 XXSYSLIB DD DUMMY
44 XXSYSIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
45 XXSYSMOD DD DSN=&&PLKSET,UNIT=SYSDA,DISP=(MOD,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
46 XXSYSDEFSD DD DUMMY
47 XXSYSOUT DD SYSOUT=*
48 XXSYSPRINT DD SYSOUT=*
XX*
XX* LINKEDIT IF THE PRECOMPILE AND COMPILE
XX* RETURN CODES ARE 4 OR LESS
XX*
49 XXLKED EXEC PGM=IEWL,PARM='MAP',
XX COND=((4,LT,PC),(4,LT,C),(4,LT,PLKED))
50 XXSYSLIB DD DISP=SHR,DSN=CEE.SCEELKED
51 XX DD DISP=SHR,DSN=DSN910.SDSNLOAD
XX* DD DISP=SHR,DSN=IMSVS.RESLIB
52 XX DD DISP=SHR,DSN=CICSTS23.CICS.SDFHLOAD
53 XX DD DISP=SHR,DSN=ISP.SISPLOAD
54 XX DD DISP=SHR,DSN=GDDM.SADMMOD
55 XXSYSLIN DD DSN=&&PLKSET,DISP=(OLD,DELETE)
56 XX DD DDNAME=SYSIN
57 //LKED.SYSLMOD DD DSN=TSOAD05.TEST.LOAD(HOLASQL),
// DISP=SHR
X/SYSLMOD DD DSN=&USER..RUNLIB.LOAD(&MEM),
X/ DISP=SHR
IEFC653I SUBSTITUTION JCL - DSN=USER.RUNLIB.LOAD(DSN8MDG),DISP=SHR
58 XXSYSPRINT DD SYSOUT=*
59 XXSYSUT1 DD SPACE=(32000,(30,30)),UNIT=SYSDA
XX*DSNHC PEND REMOVE * FOR USE AS INSTREAM PROCEDURE
//*
//* STEP 2 : PREPARE C HOLA MUNDO PROGRAM
60 //PH02DS02 EXEC DSNHC,MEM=DSN8MDG,
// COND=(4,LT),
// PARM.PC=('HOST(C),CCSID(1047),MARGINS(1,72),STDSQL(NO)',
// SOURCE,XREF),
// PARM.C='SOURCE LIST MARGINS(1,72)',
// PARM.LKED='AMODE=31,RMODE=ANY,MAP'
XX**********************************************************************
XX* DSNHC - COMPILE AND LINKEDIT A C LANGUAGE PROGRAM
XX*
61 XXDSNHC PROC WSPC=500,MEM=TEMPNAME,USER=USER
XX*
XX* PRECOMPILE THE C PROGRAM
XX**********************************************************************
62 XXPC EXEC PGM=DSNHPC,PARM='HOST(C)'
63 //PC.DBRMLIB DD DSN=DSN810.DBRMLIB.DATA(DSN8BD3),
// DISP=SHR
X/DBRMLIB DD DISP=SHR,
X/ DSN=&USER..DBRMLIB.DATA(&MEM)
IEFC653I SUBSTITUTION JCL - DISP=SHR,DSN=USER.DBRMLIB.DATA(DSN8MDG)
64 XXSTEPLIB DD DISP=SHR,DSN=DSN910.DB9G.SDSNEXIT
65 XX DD DISP=SHR,DSN=DSN910.SDSNLOAD
66 XXSYSPRINT DD SYSOUT=*
67 XXSYSTERM DD SYSOUT=*
68 XXSYSUDUMP DD SYSOUT=*
69 XXSYSCIN DD DSN=&&DSNHOUT,DISP=(MOD,PASS),UNIT=SYSDA,
XX SPACE=(800,(&WSPC,&WSPC))
IEFC653I SUBSTITUTION JCL - DSN=&&DSNHOUT,DISP=(MOD,PASS),UNIT=SYSDA,SPACE=(800,(500,500))
70 //PC.SYSLIB DD DSN=DSN810.SRCLIB.DATA,
// DISP=SHR
X/SYSLIB DD DISP=SHR,DSN=&USER..SRCLIB.DATA
IEFC653I SUBSTITUTION JCL - DISP=SHR,DSN=USER.SRCLIB.DATA
71 XXSYSUT1 DD SPACE=(800,(&WSPC,&WSPC),,,ROUND),UNIT=SYSDA
IEFC653I SUBSTITUTION JCL - SPACE=(800,(500,500),,,ROUND),UNIT=SYSDA
72 XXSYSUT2 DD SPACE=(800,(&WSPC,&WSPC),,,ROUND),UNIT=SYSDA
XX*
XX* COMPILE THE C PROGRAM IF THE PRECOMPILE
XX* RETURN CODE IS 4 OR LESS
XX*
IEFC653I SUBSTITUTION JCL - SPACE=(800,(500,500),,,ROUND),UNIT=SYSDA
73 //PC.SYSIN DD DSN=TSOAD05.TEST.C-DB2(HOLASQL),
// DISP=SHR
74 XXC EXEC PGM=CCNDRVR,COND=(4,LT,PC),PARM=('RENT')
75 XXSTEPLIB DD DISP=SHR,DSN=CBC.SCCNCMP
76 XXSYSLIB DD DISP=SHR,DSN=CEE.SCEEH.H
77 XX DD DISP=SHR,DSN=DSN910.SDSNC.H
78 XX DD DISP=SHR,DSN=GDDM.SADMSAM
79 XXSYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA,
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
80 XXSYSPRINT DD SYSOUT=*
81 XXSYSCPRT DD SYSOUT=*
82 XXSYSTERM DD DUMMY
83 XXSYSIN DD DSN=&&DSNHOUT,DISP=(OLD,DELETE)
84 XXSYSUT1 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
85 XXSYSUT2 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
86 XXSYSUT3 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
87 XXSYSUT4 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
88 XXSYSUT5 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
89 XXSYSUT6 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
90 XXSYSUT7 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
91 XXSYSUT8 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
92 XXSYSUT9 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
93 XXSYSUT10 DD SYSOUT=*
94 XXSYSUT14 DD UNIT=SYSDA,DISP=(NEW,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
XX*
XX* PRE-LINKEDIT
XX*
95 XXPLKED EXEC PGM=EDCPRLK,COND=((4,LT,PC),(4,LT,C))
96 XXSTEPLIB DD DISP=SHR,DSN=CEE.SCEERUN
97 XXSYSMSGS DD DISP=SHR,
XX DSN=CEE.SCEEMSGP(EDCPMSGE)
98 XXSYSLIB DD DUMMY
99 XXSYSIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
100 XXSYSMOD DD DSN=&&PLKSET,UNIT=SYSDA,DISP=(MOD,PASS),
XX SPACE=(32000,(30,30)),
XX DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
101 XXSYSDEFSD DD DUMMY
102 XXSYSOUT DD SYSOUT=*
103 XXSYSPRINT DD SYSOUT=*
XX*
XX* LINKEDIT IF THE PRECOMPILE AND COMPILE
XX* RETURN CODES ARE 4 OR LESS
XX*
104 XXLKED EXEC PGM=IEWL,PARM='MAP',
XX COND=((4,LT,PC),(4,LT,C),(4,LT,PLKED))
105 XXSYSLIB DD DISP=SHR,DSN=CEE.SCEELKED
106 XX DD DISP=SHR,DSN=DSN910.SDSNLOAD
XX* DD DISP=SHR,DSN=IMSVS.RESLIB
107 XX DD DISP=SHR,DSN=CICSTS23.CICS.SDFHLOAD
108 XX DD DISP=SHR,DSN=ISP.SISPLOAD
109 XX DD DISP=SHR,DSN=GDDM.SADMMOD
110 XXSYSLIN DD DSN=&&PLKSET,DISP=(OLD,DELETE)
111 XX DD DDNAME=SYSIN
112 //LKED.SYSLMOD DD DSN=TSOAD05.TEST.LOAD(HOLASQL),
// DISP=SHR
X/SYSLMOD DD DSN=&USER..RUNLIB.LOAD(&MEM),
X/ DISP=SHR
IEFC653I SUBSTITUTION JCL - DSN=USER.RUNLIB.LOAD(DSN8MDG),DISP=SHR
113 XXSYSPRINT DD SYSOUT=*
114 XXSYSUT1 DD SPACE=(32000,(30,30)),UNIT=SYSDA
XX*DSNHC PEND REMOVE * FOR USE AS INSTREAM PROCEDURE
115 //LKED.RUNLIB DD DSN=TSOAD05.TEST.LOAD,
// DISP=SHR
116 //LKED.SYSIN DD *
//*
//* STEP 3 : BIND AND RUN PROGRAMS
117 //PH02DS03 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
118 //DBRMLIB DD DISP=SHR,DSN=DSN810.DBRMLIB.DATA
119 //SYSTSPRT DD SYSOUT=*
120 //SYSPRINT DD SYSOUT=*
121 //CEEDUMP DD SYSOUT=*
122 //SYSUDUMP DD SYSOUT=*
123 //SYSOUT DD SYSOUT=*
124 //REPORT DD SYSOUT=*
125 //SYSIN DD *
126 //SYSTSIN DD *
//*
STMT NO. MESSAGE
5 IEFC001I PROCEDURE DSNHC WAS EXPANDED USING PRIVATE LIBRARY ADCD.Z110.PROCLIB
60 IEFC001I PROCEDURE DSNHC WAS EXPANDED USING PRIVATE LIBRARY ADCD.Z110.PROCLIB
60 IEF686I DDNAME REFERRED TO ON DDNAME KEYWORD IN PRIOR STEP WAS NOT RESOLVED
ICH70001I TSOAD05 LAST ACCESS AT 11:33:43 ON SATURDAY, MARCH 2, 2013
IEF236I ALLOC. FOR TSOAD05J PC PH02DS01
IEF237I 0A83 ALLOCATED TO JOBLIB
IEF237I 0A82 ALLOCATED TO
IEF237I 0A84 ALLOCATED TO DBRMLIB
IEF237I 0A87 ALLOCATED TO STEPLIB
IEF237I 0A87 ALLOCATED TO
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSTERM
IEF237I JES2 ALLOCATED TO SYSUDUMP
IGD100I VIO ALLOCATED TO DDNAME SYSCIN DATACLAS ( )
IEF237I 0A83 ALLOCATED TO SYSLIB
IGD100I VIO ALLOCATED TO DDNAME SYSUT1 DATACLAS ( )
IGD100I VIO ALLOCATED TO DDNAME SYSUT2 DATACLAS ( )
IEF237I 0A83 ALLOCATED TO SYSIN
IEF142I TSOAD05J PC PH02DS01 - STEP WAS EXECUTED - COND CODE 0004
IEF285I DSN810.SDSNLOAD PASSED
IEF285I VOL SER NOS= ZADB81.
IEF285I CEE.SCEERUN PASSED
IEF285I VOL SER NOS= ZARES2.
IEF285I DSN810.DBRMLIB.DATA KEPT
IEF285I VOL SER NOS= ZADB82.
IEF285I DSN910.DB9G.SDSNEXIT KEPT
IEF285I VOL SER NOS= ZADB91.
IEF285I DSN910.SDSNLOAD KEPT
IEF285I VOL SER NOS= ZADB91.
IEF285I TSOAD05.TSOAD05J.JOB00929.D0000104.? SYSOUT
IEF285I TSOAD05.TSOAD05J.JOB00929.D0000105.? SYSOUT
IEF285I TSOAD05.TSOAD05J.JOB00929.D0000106.? SYSOUT
IEF285I SYS13061.T114839.RA000.TSOAD05J.DSNHOUT.H01 PASSED
IEF285I DSN810.SRCLIB.DATA KEPT
IEF285I VOL SER NOS= ZADB81.
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100824 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100825 DELETED
IEF285I DSN810.SDSNSAMP KEPT
IEF285I VOL SER NOS= ZADB81.
IEF373I STEP/PC /START 2013061.1148
IEF374I STEP/PC /STOP 2013061.1148 CPU 0MIN 00.31SEC SRB 0MIN 00.01SEC VIRT 216K SYS 340K EXT 2080K SYS 11180K
IEF236I ALLOC. FOR TSOAD05J C PH02DS01
IEF237I 0A83 ALLOCATED TO JOBLIB
IEF237I 0A82 ALLOCATED TO
IEF237I 0A91 ALLOCATED TO STEPLIB
IEF237I 0A92 ALLOCATED TO SYSLIB
IEF237I 0A87 ALLOCATED TO
IEF237I 0A82 ALLOCATED TO
IGD100I VIO ALLOCATED TO DDNAME SYSLIN DATACLAS ( )
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSCPRT
IEF237I DMY ALLOCATED TO SYSTERM
IEF237I VIO ALLOCATED TO SYSIN
IGD100I VIO ALLOCATED TO DDNAME SYSUT1 DATACLAS ( )
IGD100I VIO ALLOCATED TO DDNAME SYSUT2 DATACLAS ( )
IGD100I VIO ALLOCATED TO DDNAME SYSUT3 DATACLAS ( )
IGD100I VIO ALLOCATED TO DDNAME SYSUT4 DATACLAS ( )
IGD100I VIO ALLOCATED TO DDNAME SYSUT5 DATACLAS ( )
IGD100I VIO ALLOCATED TO DDNAME SYSUT6 DATACLAS ( )
IGD100I VIO ALLOCATED TO DDNAME SYSUT7 DATACLAS ( )
IGD100I VIO ALLOCATED TO DDNAME SYSUT8 DATACLAS ( )
IGD100I VIO ALLOCATED TO DDNAME SYSUT9 DATACLAS ( )
IEF237I JES2 ALLOCATED TO SYSUT10
IGD100I VIO ALLOCATED TO DDNAME SYSUT14 DATACLAS ( )
IGD100I VIO ALLOCATED TO DDNAME TSTVIODD DATACLAS ( )
IEF285I SYS13061.T114842.RA000.TSOAD05J.R0100850 DELETED
IEF237I 0A92 ALLOCATED TO SYS00001
IEF285I CEE.SCEEH.H KEPT
IEF285I VOL SER NOS= ZAPRD2.
IEF237I 0A92 ALLOCATED TO SYST0001
IEF237I 0A92 ALLOCATED TO SYS00002
IEF285I CEE.SCEEH.H KEPT
IEF285I VOL SER NOS= ZAPRD2.
IEF237I 0A92 ALLOCATED TO SYS00003
IEF285I CEE.SCEEH.H KEPT
IEF285I VOL SER NOS= ZAPRD2.
IGD100I VIO ALLOCATED TO DDNAME SYS00005 DATACLAS ( )
IEF285I CEE.SCEEH.H KEPT
IEF285I VOL SER NOS= ZAPRD2.
IEF285I SYS13061.T114845.RA000.TSOAD05J.CTMF000.H01 DELETED
IEF142I TSOAD05J C PH02DS01 - STEP WAS EXECUTED - COND CODE 0000
IEF285I DSN810.SDSNLOAD PASSED
IEF285I VOL SER NOS= ZADB81.
IEF285I CEE.SCEERUN PASSED
IEF285I VOL SER NOS= ZARES2.
IEF285I CBC.SCCNCMP KEPT
IEF285I VOL SER NOS= ZAPRD1.
IEF285I CEE.SCEEH.H KEPT
IEF285I VOL SER NOS= ZAPRD2.
IEF285I DSN910.SDSNC.H KEPT
IEF285I VOL SER NOS= ZADB91.
IEF285I GDDM.SADMSAM KEPT
IEF285I VOL SER NOS= ZARES2.
IEF285I SYS13061.T114839.RA000.TSOAD05J.LOADSET.H01 PASSED
IEF285I TSOAD05.TSOAD05J.JOB00929.D0000107.? SYSOUT
IEF285I TSOAD05.TSOAD05J.JOB00929.D0000108.? SYSOUT
IEF285I SYS13061.T114839.RA000.TSOAD05J.DSNHOUT.H01 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100826 PASSED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100827 PASSED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100828 PASSED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100829 PASSED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100830 PASSED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100831 PASSED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100832 PASSED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100833 PASSED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100834 PASSED
IEF285I TSOAD05.TSOAD05J.JOB00929.D0000109.? SYSOUT
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100835 PASSED
IEF373I STEP/C /START 2013061.1148
IEF374I STEP/C /STOP 2013061.1148 CPU 0MIN 02.95SEC SRB 0MIN 00.07SEC VIRT 72K SYS 356K EXT 72476K SYS 15432K
IEF236I ALLOC. FOR TSOAD05J PLKED PH02DS01
IEF237I 0A83 ALLOCATED TO JOBLIB
IEF237I 0A82 ALLOCATED TO
IEF237I 0A82 ALLOCATED TO STEPLIB
IEF237I 0A92 ALLOCATED TO SYSMSGS
IEF237I DMY ALLOCATED TO SYSLIB
IEF237I VIO ALLOCATED TO SYSIN
IGD100I VIO ALLOCATED TO DDNAME SYSMOD DATACLAS ( )
IEF237I DMY ALLOCATED TO SYSDEFSD
IEF237I JES2 ALLOCATED TO SYSOUT
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF142I TSOAD05J PLKED PH02DS01 - STEP WAS EXECUTED - COND CODE 0004
IEF285I DSN810.SDSNLOAD PASSED
IEF285I VOL SER NOS= ZADB81.
IEF285I CEE.SCEERUN PASSED
IEF285I VOL SER NOS= ZARES2.
IEF285I CEE.SCEERUN KEPT
IEF285I VOL SER NOS= ZARES2.
IEF285I CEE.SCEEMSGP KEPT
IEF285I VOL SER NOS= ZAPRD2.
IEF285I SYS13061.T114839.RA000.TSOAD05J.LOADSET.H01 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.PLKSET.H01 PASSED
IEF285I TSOAD05.TSOAD05J.JOB00929.D0000110.? SYSOUT
IEF285I TSOAD05.TSOAD05J.JOB00929.D0000111.? SYSOUT
IEF373I STEP/PLKED /START 2013061.1148
IEF374I STEP/PLKED /STOP 2013061.1148 CPU 0MIN 00.25SEC SRB 0MIN 00.54SEC VIRT 60K SYS 320K EXT 8336K SYS 11368K
IEF212I TSOAD05J LKED PH02DS01 SYSLIB +002 - DATA SET NOT FOUND
IEF272I TSOAD05J LKED PH02DS01 - STEP WAS NOT EXECUTED.
IEF373I STEP/LKED /START 2013061.1148
IEF374I STEP/LKED /STOP 2013061.1148 CPU 0MIN 00.00SEC SRB 0MIN 00.00SEC VIRT 0K SYS 0K EXT 0K SYS 0K
IEF285I DSN810.SDSNLOAD KEPT
IEF285I VOL SER NOS= ZADB81.
IEF285I CEE.SCEERUN KEPT
IEF285I VOL SER NOS= ZARES2.
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100826 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100827 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100828 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100829 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100830 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100831 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100832 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100833 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100834 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.R0100835 DELETED
IEF285I SYS13061.T114839.RA000.TSOAD05J.PLKSET.H01 DELETED
IEF375I JOB/TSOAD05J/START 2013061.1148
IEF376I JOB/TSOAD05J/STOP 2013061.1148 CPU 0MIN 03.51SEC SRB 0MIN 00.62SEC
1DB2 SQL PRECOMPILER VERSION 9 REL. 1.0 PAGE 1
0OPTIONS SPECIFIED: HOST(C),CCSID(1047),MARGINS(1,72),STDSQL(NO),SOURCE,XREF
DSNHDECP LOADED FROM - (DSN910.DB9G.SDSNEXIT(DSNHDECP))
0OPTIONS USED - SPECIFIED OR DEFAULTED
APOST
APOSTSQL
ATTACH(TSO)
CCSID(1047)
NOPADNTSTR
CONNECT(2)
DEC(15)
FLAG(I)
HOST(C)
FLOAT(S390)
LINECOUNT(60)
MARGINS(1,72)
NEWFUN(YES)
ONEPASS
OPTIONS
PERIOD
SOURCE
STDSQL(NO)
SQL(DB2)
XREF

javierc

Re: Compilar en C/C++ desde el TSO

Mensaje por javierc » 02 Mar 2013, 06:22

Al final encontré cómo resolverlo, lo pongo por si a alguien más le pasa con el ADCD 10. En los procedimientos catalogados a los que llaman los ejemplos he tenido que comentar una librería que por el nombre parece de CICS, no sé por qué no la tengo en mi ADCD. Las librerías están en DSN910.PROCLIB y son:

- Para C miembro DSNHC la línea 92, : 000092 //* DD DISP=SHR,DSN=CICSTS23.CICS.SDFHLOAD
- Para Cóbol miembro DSNHICOB la línea: 000065 //* DD DISP=SHR,DSN=CICSTS23.CICS.SDFHLOAD

Luego en los ejemplos en el ADCD arriba de cada ejemplo en la JCLLIB vienen dos librerías, una que es VENDOR.PROCLIB y otra que apunta a la librería en DSNXX0.PROCLIB, salvo que alguien comente que la de vendor hay que cambiarla por otra, a mí con quitarla me ha funcionando dejando solo DSN910.PROCLIB modifcando los miembros de ejemplo de la siguiente forma:

- Para C se modifica el miembro de ejemplo DSNTEJ2D
- Para C++ se modifican los miembros miembros de ejemplo DSNHCPP y DSNHCPP2
- Para Cóbol se modifica el miembro de ejemplo DSNTEJ2C

En todos, en la cabecera se cambia quita la librería VENDOR.PRCLIB por:

000040 //DSN910 JCLLIB ORDER=(DSN910.PROCLIB)

Con esto ya me compilan y funcionan los ejemplos, y ya lo he hecho funcionar con mi programa C y Cóbol sin Sql, ahora me queda añadir el código Sql a ver qué tal se da.

Si alguien necesita los JCL´s, que me lo comente y se los paso.

Saludos

NJB
Su anfitrion
Su anfitrion
Mensajes: 1111
Registrado: 12 Oct 2003, 16:27
País: Argentina
Ciudad: Capilla del Señor
Ocupación: System Programmer
Contactar:

Re: Compilar en C/C++ desde el TSO

Mensaje por NJB » 02 Mar 2013, 08:43

Hola

Nunca supongas que tu instalación es igual a otra o que se parece a lo que IBM pone en sus ejemplos, ya que son solo indicativos.

Cada instalación decide donde poner las cosas, el nombre que le da a los datasets, la parametrización, etc, por eso debes consultar siempre a alguien que conozca la misma y sepa que esta en donde y como se llama.

Esto se que no tiene nada que ver con tu pregunta, pero es algo que he visto sobre todo en desarrolladores.

En estos foros hay muchas preguntas que terminan siendo por este tema, la diferencia entre una instalación y otra.

Saludos
Norberto Bocalandro

javierc

Re: Compilar en C/C++ desde el TSO

Mensaje por javierc » 02 Mar 2013, 12:04

Hola, pues tienes toda la razón, pero lamentablemente no todo el mundo tiene acceso a alguien que le diga cómo se resuelven las cosas, muchos hacemos esto porque estamos aprendiendo y no tienen un administrador al que preguntar, otros que trabajan buscan cómo resolver algo sin tener que ir al jefe a decirle oye que no sé cómo hacer esto.

Llevo mucho tiempo en informática y aunque en mis comienzos empecé con mainframe con el tiempo siempre he trabajado con Unix o Windows, y la cosa es encontrar cómo resolver las cosas tú mismo o encontrar algo de ayuda. No lo digo por ti pero veo muchas veces que la respuesta en algunos foros muy profesionales en inglés que hay por ahí es: consulta a tu administrador, y pienso que cuando la gente pregunta es o bien porque no hay buscado la respuesta o bien porque no le queda otra opción, y en el caso de esto, siendo devorador de manuales técnicos, es que la documentación de IBM es... podríamos decir que los ejemplos a mi parecer son inexistentes. No creo que sea algo extraño querer compilar en uno de los múltiples lenguajes que trae el z/os para usar sql y si hay varias formas, una desde las utilidades y por ejemplo desde JCL que la única referencia sea, usa un modelo que ponemos para crear el ejemplo, el cual tiene 60 líneas y tú solo necesitas 15, no lo sabes, pero solo necesitas 15 líneas, porque no necestias que tu programa borre cosas en SQL, solo que tu programa de ejemplo haga el típico select de la tabla empleados y muestre los resultados y luego tú ya te buscas la vida. Creo que es complejo y por otra parte, sea cual sea la instalación tiene que haber miles de personas que se hayan encontrado con ese problema, pero buscas por la red y no hay ni un ejemplo ni en C ni en Cóbol para hacer una select con SQL... pero bueno quitando que he estado dos noches en vela probando antes de dar con ello no está mal, estaba ya un poco desesperado cuando puse la consulta, suelo hacerlo cuando ya llevo tiempo buscando algo y no lo logro, era muy tarde y a los pocos minutos di con la solución, jeje es lo que pasa a veces con la informática, tampoco pasa nada porque siempre se aprenden muchas cosas.

Decir que una vez que me funciionó, fue copiar el JCL en el acceso al host del curso y cambiando la versión de db2 también funciona perfectamente.

Tengo una instalación de pruebas en casa aparte de donde hago el curso, pero donde hago el cruso saben decirte solo qué hacer para compilar allí sus ejemplos.

saludos

javierc

Re: Compilar en C/C++ desde el TSO

Mensaje por javierc » 02 Mar 2013, 14:51

Hola, quería aclarar que en todo momento me refiero a la falta de ejemplos pese a la abundancia de la ayuda de IBM, y no por tu respuesta que en tus post siempre intentas ayudar y a mí siempre me has respondido lo cual agradezco un montón, que lo releí y podía parecer otra cosa y no es la idea que quería transmitir.

Adjunto los dos JCL´s por si a alguien le sirven de ayuda:
//TSOAD05J JOB ACCTÑ,'COMPHOLA-TSOAD05',MSGLEVEL=(1,1),TIME=20,
// CLASS=A,MSGCLASS=Q,NOTIFY=&SYSUID,REGION=0M
//*
//DSN910 JCLLIB ORDER=(DSN910.PROCLIB)
//*
//**********************************************************************
//* NAME = CHOLASQL COMPILA HOLASQL (C+ DB2 SQL) *
//* *
//* DESCRIPTIVE NAME = DB2 SAMPLE APPLICATION *
//**********************************************************************
//*
//JOBLIB DD DSN=DSN910.SDSNLOAD,DISP=SHR
// DD DSN=CEE.SCEERUN,DISP=SHR
//*
//* STEP 1 : PREPARE ERROR MESSAGE ROUTINE
//* SE COMENTAN ESTAS LINEAS Y LA 50, SOLO HACE FALTA SI HAY RUTINAS
//*PH02DS00 EXEC DSNHC,MEM=DSN8MDG,
//* PARM.PC=('HOST(C),CCSID(1047),MARGINS(1,72),STDSQL(NO)',
//* SOURCE,XREF),
//* PARM.C='SOURCE XREF MARGINS(1,72)',
//* PARM.LKED='NCAL,MAP,AMODE=31,RMODE=ANY'
//*PC.DBRMLIB DD DSN=DSN910.DB9G.DBRMLIB.DATA(DSN8MDG),
//* DISP=SHR
//*PC.SYSLIB DD DSN=DSN910.DB9G.SRCLIB.DATA,
//* DISP=SHR
//*PC.SYSIN DD DSN=DSN910.SDSNSAMP(DSN8MDG),
//* DISP=SHR
//*LKED.SYSLMOD DD DSN=DSN910.DB9G.RUNLIB.LOAD(HOLASQL),
//* DISP=SHR
//*
//* STEP 2 : PREPARE C PHONE PROGRAM
//PH02DS01 EXEC DSNHC,MEM=HOLASQL,
// COND=(4,LT),
// PARM.PC=('HOST(C),CCSID(1047),MARGINS(1,72),STDSQL(NO)',
// SOURCE,XREF),
// PARM.C='SOURCE LIST MARGINS(1,72)',
// PARM.LKED='AMODE=31,RMODE=ANY,MAP'
//PC.DBRMLIB DD DSN=DSN910.DB9G.DBRMLIB.DATA(HOLASQL),
// DISP=SHR
//PC.SYSLIB DD DSN=DSN910.DB9G.SRCLIB.DATA,
// DISP=SHR
//PC.SYSIN DD DSN=TSOAD05.TEST.C-DB2(HOLASQL),
// DISP=SHR
//LKED.SYSLMOD DD DSN=DSN910.DB9G.RUNLIB.LOAD(HOLASQL),
// DISP=SHR
//LKED.RUNLIB DD DSN=DSN910.DB9G.RUNLIB.LOAD,
// DISP=SHR
//LKED.SYSIN DD *
INCLUDE SYSLIB(DSNELI)
//* INCLUDE RUNLIB(DSN8MDG)
//*
//* STEP 3 : BIND AND RUN PROGRAMS
//PH02DS02 EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//DBRMLIB DD DISP=SHR,DSN=DSN910.DB9G.DBRMLIB.DATA
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//CEEDUMP DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//REPORT DD SYSOUT=*
//SYSIN DD *
GRANT BIND, EXECUTE ON PLAN DSN8BD91 TO PUBLIC;
//SYSTSIN DD *
DSN SYSTEM(DB9G)
BIND PLAN(DSN8BD91) MEMBER(HOLASQL) -
ACT(REP) ISO(CS) CURRENTDATA(YES) ENCODING(EBCDIC)
RUN PROGRAM(DSNTIAD) PLAN(DSNTIA91) -
LIB('DSN910.DB9G.RUNLIB.LOAD')
RUN PROGRAM(HOLASQL) PLAN(DSN8BD91) -
LIB('DSN910.DB9G.RUNLIB.LOAD')
END
//CARDIN DD *
L*
LJO%
L%SON
LSMITH
LBROWN ALAN
LBROWN DAVID
U 0002304265
//*
La parte de DSN SYSTEM(DB9G) no sé si se puede quitar algo, del CARDIN sí pero venía en el ejemplo y la he dejado por si necesito algo, pero realmente no es necesaria.
//**********************************************************************
//* DSNHC - COMPILE AND LINKEDIT A C LANGUAGE PROGRAM
//*
//DSNHC PROC WSPC=500,MEM=TEMPNAME,USER=USER
//*
//* PRECOMPILE THE C PROGRAM
//**********************************************************************
//PC EXEC PGM=DSNHPC,PARM='HOST(C)'
//DBRMLIB DD DISP=SHR,
// DSN=&USER..DBRMLIB.DATA(&MEM)
//STEPLIB DD DISP=SHR,DSN=DSN910.DB9G.SDSNEXIT
// DD DISP=SHR,DSN=DSN910.SDSNLOAD
//SYSPRINT DD SYSOUT=*
//SYSTERM DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSCIN DD DSN=&&DSNHOUT,DISP=(MOD,PASS),UNIT=SYSDA,
// SPACE=(800,(&WSPC,&WSPC))
//SYSLIB DD DISP=SHR,DSN=&USER..SRCLIB.DATA
//SYSUT1 DD SPACE=(800,(&WSPC,&WSPC),,,ROUND),UNIT=SYSDA
//SYSUT2 DD SPACE=(800,(&WSPC,&WSPC),,,ROUND),UNIT=SYSDA
//*
//* COMPILE THE C PROGRAM IF THE PRECOMPILE
//* RETURN CODE IS 4 OR LESS
//*
//C EXEC PGM=CCNDRVR,COND=(4,LT,PC),PARM=('RENT')
//STEPLIB DD DISP=SHR,DSN=CBC.SCCNCMP
//SYSLIB DD DISP=SHR,DSN=CEE.SCEEH.H
// DD DISP=SHR,DSN=DSN910.SDSNC.H
// DD DISP=SHR,DSN=GDDM.SADMSAM
//SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA,
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSPRINT DD SYSOUT=*
//SYSCPRT DD SYSOUT=*
//SYSTERM DD DUMMY
//SYSIN DD DSN=&&DSNHOUT,DISP=(OLD,DELETE)
//SYSUT1 DD UNIT=SYSDA,DISP=(NEW,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSUT2 DD UNIT=SYSDA,DISP=(NEW,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSUT3 DD UNIT=SYSDA,DISP=(NEW,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSUT4 DD UNIT=SYSDA,DISP=(NEW,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSUT5 DD UNIT=SYSDA,DISP=(NEW,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT6 DD UNIT=SYSDA,DISP=(NEW,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT7 DD UNIT=SYSDA,DISP=(NEW,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT8 DD UNIT=SYSDA,DISP=(NEW,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT9 DD UNIT=SYSDA,DISP=(NEW,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
//SYSUT10 DD SYSOUT=*
//SYSUT14 DD UNIT=SYSDA,DISP=(NEW,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//*
//* PRE-LINKEDIT
//*
//PLKED EXEC PGM=EDCPRLK,COND=((4,LT,PC),(4,LT,C))
//STEPLIB DD DISP=SHR,DSN=CEE.SCEERUN
//SYSMSGS DD DISP=SHR,
// DSN=CEE.SCEEMSGP(EDCPMSGE)
//SYSLIB DD DUMMY
//SYSIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
//SYSMOD DD DSN=&&PLKSET,UNIT=SYSDA,DISP=(MOD,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSDEFSD DD DUMMY
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//*
//* LINKEDIT IF THE PRECOMPILE AND COMPILE
//* RETURN CODES ARE 4 OR LESS
//*
//LKED EXEC PGM=IEWL,PARM='MAP',
// COND=((4,LT,PC),(4,LT,C),(4,LT,PLKED))
//SYSLIB DD DISP=SHR,DSN=CEE.SCEELKED
// DD DISP=SHR,DSN=DSN910.SDSNLOAD
//* DD DISP=SHR,DSN=IMSVS.RESLIB
//* DD DISP=SHR,DSN=CICSTS23.CICS.SDFHLOAD
// DD DISP=SHR,DSN=ISP.SISPLOAD
// DD DISP=SHR,DSN=GDDM.SADMMOD
//SYSLIN DD DSN=&&PLKSET,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
//SYSLMOD DD DSN=&USER..RUNLIB.LOAD(&MEM),
// DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD SPACE=(32000,(30,30)),UNIT=SYSDA
//*DSNHC PEND REMOVE * FOR USE AS INSTREAM PROCEDURE


Si alguien quiere añadir algo sobre el ejemplo se lo agradeceré porque yo creo que sobran bastantes cosas. saludos

Responder