manual de compilacion de un programa en c en zos v3

32
Manual de Compilación de un programa en Lenguaje C en z/OS Servicio de Administración Tributaria Octubre 2014 Versión 3

Upload: joreste

Post on 12-Jan-2016

29 views

Category:

Documents


1 download

DESCRIPTION

Manual de compilación de programas en lenguaje C en z/OS utilizando

TRANSCRIPT

Page 1: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en Lenguaje C en z/OS

Servicio de Administración Tributaria

Octubre 2014

Versión 3

Page 2: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

Contenido

Objetivo.................................................................................................................................................2

Prerequisitos.......................................................................................................................................2

Proceso de Compilación.................................................................................................................3

I.- Apertura de sesión.........................................................................................3

II.- Transferir archivos de estación de trabajo a mainframe..............................6

III.- Compilación de archivos en lenguaje C......................................................10

IV.- Validación del resultado de la compilación...............................................15

Anexo I. Configuración de IP de Mainframe de AVL y configuración de Código de Página en Emulador IBM Personal Communications.........................................18

Anexo II. Creación de bibliotecas fuente y JCL....................................................................21

Anexo III. Creación de biblioteca carga..................................................................................23

Anexo IV. Código de programa en lenguaje C y JCL de Compilación..........................25

Anexo V. Bibliografía.....................................................................................................................25

1

Page 3: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

Objetivo

Describir el proceso para realizar la compilación de un elemento de programación en lenguaje C, en un el sistema operativo z/OS de mainframe.

Prerequisitos

1.- Contar con flujo de comunicación de la estación de trabajo o laptop al mainframe, ambiente de AVL: DWHZOSL1, IP: 10.55.127.212 Ver Anexo I para configurar en IBM Personal Communications.

2.- Tener instalado un emulador de terminal IBM 3270 para acceder al z/OS, los cuáles pueden ser los siguientes:

i) IBM Personal Communications http://www.ibm.com/developerworks/downloads/r/pcomm/

Requiere licencia, en prueba por 60 días.

ii) Mocha TN3270 http://www.mochasoft.dk/

Requiere licencia, en prueba por 30 días.

iii) Free Host 3270 http://sourceforge.net/projects/freehost3270/

Software libre.

3.- Tener un userid y contraseña para acceder al ambiente de AVL: DWHZOSL1, IP: 10.55.127.212

4.- En este manual se usan como ejemplo elementos constantes, pero para facilitar la compilación al usuario de este manual, este puede optar por cambiar los nombres establecidos en este manual por los proporcionados por el equipo de desarrollo en el requerimiento de compilación. La siguiente tabla puede ser usada como apoyo para reemplazar estos elementos.

Elemento Nombre en este manual Nombre proporcionado por requerimiento

Programa en lenguaje C TRANSANE.cBiblioteca fuente ‘UAMCMB0.SPRIVLIB.C’JCL de compilación F30CMP01.jclBiblioteca de JCL para compilar

‘UAMCMB0.SPRIVLIB.JCL’

Biblioteca carga a ubicar programa en lenguaje C ya compilado

‘UAMCMB0.SPRIVLIB.LOAD’

Subdirectorio en laptop o PC donde se ubican el programa en lenguaje C o el JCL

C:\Forma30

4.1 El programa fuente en lenguaje TRANSANE.c, ubicado en el subdirectorio C:\Forma30.

4.2 La biblioteca fuente dónde se debe ubicar el programa en lenguaje C es ‘UAMCMB0.SPRIVLIB.C’.

2

Page 4: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

4.3 El JCL de compilación es F30CMP01.jcl, ubicado en el subdirectorio C:\Forma30

4.4 La biblioteca de JCL donde se debe ubicar el JCL de compilación es ‘UAMCMB0.SPRIVLIB.JCL’.

4.5 La biblioteca carga dónde se debe ubicar el programa carga es: ‘UAMCMB0.SPRIVLIB.LOAD’.

En caso, de que las bibliotecas fuente y de JCL no estén definidas, referirse al Anexo II para crearlas.

En caso, de que la biblioteca carga no esté definida, referirse al Anexo III para crearla.

5.- Configurar el emulador de terminal IBM 3270 seleccionado para acceder al ambiente de AVL. En el Anexo I, se indica la configuración de página de código a usar para que la transferencia de caracteres especiales como ñ y vocales acentuadas, se realice.

Proceso de Compilación

Consiste en conectarse al ambiente de AVL en z/OS, proporcionar el usuario y password, realizar el file transfer de los componentes a compilar, ejecutar el JCL (Job Control Language) de compilación y validar el resultado de la compilación. A continuación los pasos:

I.- Apertura de sesión

1. Abrir una sesión para mainframe en ambiente de AVL, usando el emulador de terminal IBM 3270. En la figura siguiente se muestra la leyenda “Ambiente de Desarrollo”, pero para la IP 10.55.127.212 debe mostrarse la leyenda “Ambiente de Laboratorio”.

2. Introducir el comando TSO, presionar la tecla “Ctrl” al finalizar. Importante recordar que la tecla “Ctrl” puede cambiar dependiendo del emulador, pero por lo regular la mayoría de los emuladores de terminal 3270 usan la tecla “Ctrl” como “Enter”

3

Page 5: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

3. Introducir el usuario; para este caso demostrativo se usa el userid UAMCMB0, cambiarlo por el usuario que corresponda, presionar la tecla “Ctrl” al finalizar.

4

Page 6: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

4. Introducir la contraseña; no aparecerá ningún carácter en pantalla mientras se escribe, presionar la tecla “Ctrl” al finalizar.

5. Posterior a recibir los mensajes que nos confirman que tenemos sesión, presionar “Ctrl” para obtener el menú de opciones.

5

Page 7: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

II.- Transferir archivos de estación de trabajo a mainframe

6. El primer objetivo es transferir o subir el programa en lenguaje C TRANSANE.c que se encuentra en la estación de trabajo o laptop, con el nombre C:\Forma30\TRANSANE a la ruta del mainframe ‘UAMCMB0.SPRIVLIB.C(TRANSANE)’ en formato TEXTO.

7. El segundo objetivo es transferir o subir el archivo con el jcl C:\Forma30\F30CMP01.jcl con el nombre F30CMP01, también ubicado en la estación de trabajo o laptop a la ruta del mainframe ‘UAMCMB0.SPRIVLIB.JCL(F30CMP01)’ en formato TEXTO.

8. Para realizar el File Transfer del JCLs y archivos fuentes en C, teclear en el menú principal “OPTION”: p.6 y dar “Ctrl”.

9. Se debe estar en la pantalla ISPF Command Shell, para realizar la transferencia de archivos. Ahora del menú del emulador 3270, seleccionar opción de “Actions” y “Send File to Host”.

10. En la ventana de “Send File to Host”, dar clic en “Browse” para seleccionar el archivo fuente en lenguaje C que se encuentra

6

Page 8: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

en la estación de trabajo o laptop y que se requiere transferir al mainframe. Para este propósito es: C:\Forma30\TRANSANE.c

11. En el frame “Transfer List”, dar clic en el elemento que se acaba de agregar.

12. Ahora, editar el nombre en la ventana “Host” y en “File Name”, teclear el nombre del archivo destino en el mainframe, en este caso: 'UAMCMB0.SPRIVLIB.C(TRANSANE)', como se muestra en la gráfica arriba.

13. En la lista “Transfer Type”, seleccionar: text

14. Teclear el botón “Add to list”.

15. Borrar de la lista “Transfer Type”, la línea que corresponde a este archivo C inicial, no borrar la entrada editada y agregada.

16. Realizaremos los mismos pasos para agregar a la lista de transferencia, el archivo JCL de compilación.

17. En la ventana de “Send File to Host”, dar click en “Browse” para seleccionar el archivo fuente en lenguaje C que se encuentra en la estación de trabajo o laptop y que se requiere transferir al mainframe. Para este propósito es: C:\Forma 30\F30CMP01.jcl

7

Page 9: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

18. En el frame “Transfer List”, dar clic en el elemento que se acaba de agregar.

19. Editar el nombre en la ventana “Host” y en “File Name”, teclear el nombre del archivo destino en el mainframe, en este caso: 'UAMCMB0.SPRIVLIB. JCL(F30CMP01)', como se muestra en la gráfica abajo.

20. En la lista “Transfer Type”, seleccionar: text

21. Teclear el botón “Add to list”.

22. Borrar de la lista “Transfer Type”, la línea que corresponde a este archivo JCL inicial, no borrar la entrada editada y agregada.

23. Antes de realizar la transferencia de archivos, validaremos que la transferencia de archivos tipo texto es correcta en su configuración.

24. De la ventana actual, dar clic al botón “Options”, de la ventana obtenida dar clic a la pestaña “MVS/TSO”.

25. En la lista “Transfer type” teclear la opción Text. El campo “Record Format” debe tener “Default” y el campo “Logical Record Length” debe estar vacío. Como se muestra a continuación, si hay otros valores cambiarlos a los indicados. Dar clic en “OK” al terminar.

8

Page 10: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

26. Teclear el botón “Send” para iniciar el proceso de transferencia. Aparecerá una ventana con el estatus de la transferencia por cada archivo. Al terminar, los archivos se encontraran en el mainframe en la ruta indica.

III.- Compilación de archivos en lenguaje C

27. Desde el menú principal, nos posicionamos en “OPTION” y tecleamos el comando “p.3.4”, presionar la tecla “Ctrl” al finalizar. Para regresar al menú principal, teclear la tecla F3 dos veces.

9

Page 11: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

28. Ubicarnos en “Dsname Level” y escribimos la librería a la cual queremos ingresar, para nuestro caso escribimos la librería donde se encuentran los JCL’s, presionar la tecla “Ctrl” al finalizar. La librería para este caso es: UAMCMB0.SPRIVLIB.JCL. En esta pantalla no es necesario teclear los apostrofes al lado del nombre de la librería, como se muestra abajo.

29. Nos colocamos en la parte izquierda del renglón y escribimos la letra “e”, de edición, presionar la tecla “Ctrl” al finalizar.

10

Page 12: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

30. Nos posicionamos en la línea que se encuentra a la izquierda del JCL de compilación “F30CMP01” y escribimos la letra “s”, de seleccionar, presionar la tecla “Ctrl” al finalizar.

31. Ahora debemos asegurar que el JCL tenga el nombre de la biblioteca fuente y el nombre del programa a compilar. Teclear F8 para “bajar” o F7 para “subir” en el archivo. En este caso,

11

Page 13: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

‘UAMCMB0.SPRIVLIB.C(TRANSANE)’ debe encontrarse en la línea con la etiqueta SYSIN. Teclear F8 para bajar y localizar la línea SYSIN, en el paso COMPILE.

En nuestro caso, se tiene la línea://SYSIN DD DSN=DESA.IMI.DEC.INFO.F30.DIF3ENO2.FTE(TRANSANE),

Se debe cambiar por://SYSIN DD DSN=UAMCMB0.SPRIVLIB.C(TRANSANE),

Las siguientes pantallas muestran el antes y el después.

Después de modificar el nombre de la biblioteca fuente de lenguaje C.

32. Una vez que ya está modificada la biblioteca fuente, ahora validemos el nombre de la biblioteca carga. En este caso, ‘UAMCMB0.SPRIVLIB.LOAD(TRANSANE)’ debe encontrarse en la línea con la etiqueta SYSLMOD, en el paso BIND. Teclear F8 para bajar y localizar la línea SYSLMOD.

12

Page 14: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

En nuestro caso, se tiene la línea://SYSLMOD DD DSNAME=DESA.IMI.DEC.INFO.F30.DIF3ENO2.LOAD(TRANSANE),

Se debe cambiar por://SYSLMOD DD DSNAME=UAMCMB0.SPRIVLIB.LOAD(TRANSANE),

Las siguientes figuras muestran el antes y el después.

Después de modificar el nombre de la biblioteca fuente de lenguaje C.

33. En la línea de comando escribimos la palabra “save” para guardar los cambios. Presionamos la tecla “Ctrl”.

13

Page 15: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

34. Para iniciar la ejecución de la compilación del programa en lenguaje C, en la línea de comando escribimos la palabra “sub”, presionamos la tecla “Ctrl”.

35. Aparecerá un mensaje como el siguiente, que indica: Nombre del job ejecutado: F30CMP01 y el número de JOB(0248). Teclear “Ctrl” para continuar.

36. Aparece otro mensaje, indicando la terminación de la ejecución de la compilación. Cuando la

compilación es exitosa se obtendrá un mensaje MAXCC=0000. Un valor diferente deberá ser reportado al grupo de desarrollo, ya que un error ocurrió. Para ambos casos obtener la evidencia de la ejecución de acuerdo a los pasos que se indican a continuación. Teclear “Ctrl” para continuar. Regresemos al menú inicial con la tecla F3.

14

Page 16: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

IV.- Validación del resultado de la compilación

37. Desde el menú principal, recordar que regresamos a esta pantalla con la tecla F3. Nos posicionamos en “OPTION” y tecleamos el comando “SD”, para ir a revisar el estatus de terminación del job, presionar la tecla “Ctrl” al finalizar.

38. Ahora en la siguiente pantalla, teclear ST “Status of Jobs” en la línea “Command Input” para observar el estatus de los jobs. Teclear “Ctrl” para que nos lleve a la siguiente pantalla.

15

Page 17: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

39. Como el job tiene nombre F30CMP01, necesitamos localizar a los Jobs con este nombre, mediante el siguiente comando PRE F30*. Estamos indicando que nos muestre todos los jobs que inician con F30. Teclear “Ctrl” para que nos muestre la lista de los Jobs que inician con F30.

40. Una vez que tengamos la lista de los Jobs que inician con F30, busquemos el número de job 0248 que corresponde a nuestra compilación y teclear “S” de selección. Subamos y bajemos en la lista con las tecla “F8” bajar y “F7” subir.

41. Validar que los pasos COMPILE y BIND tengan valor de 0.

16

Page 18: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

42. Este es el último paso de validación. Tomar un print screen de esta pantalla y enviarla como evidencia del resultado de ejecución de la compilación del programa en lenguaje C.

17

Page 19: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

Anexo I. Configuración de IP de Mainframe de AVL y configuración de Código de Página en Emulador IBM Personal Communications

Seguir los siguientes pasos para configurar la IP de Mainframe de AVL y el Código de Página.

1.- En el menú del emulador 3270, seleccionar “Communication”, ahora “Configure….”

2.- De la ventana presentada, dar clic en “Link Parameters”.

3.- En la ventana, teclear la IP del Mainframe de AVL: 10.55.127.212 en el campo “Primary”, y “Port number” = 22.

18

Page 20: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

4.- Dar clic en el botón “OK”.

5.- Para configurar el Código de Página, dar clic en “Session Parameters” en la ventana, en el campo “Host Code-Page”, seleccionar de la lista a “037 Unites States”.

6.- Para terminar dar clic en “OK”.

7.- Dar clic en el botón “OK” para cerrar la ventana de “Customize Communication”.

19

Page 21: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

8.- Aparecerá la ventana de logon de TSO con las letras SAT. En este caso es de del Ambiente de Desarrollo, pero para la dirección IP debe aparecer la leyenda “Ambiente de Laboratorio”.

20

Page 22: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

Anexo II. Creación de bibliotecas fuente y JCL

Las bibliotecas fuente y de JCL tienen las mismas características, por lo que su definición se realiza siguiendo los mismos pasos.

A continuación definiremos la biblioteca ‘UAMCMB0.SPRIVLIB.C’.

1.- Desde el menú principal de TSO teclear P.3.2

2.- En la pantalla, en el campo “Option” teclear A de allocate (ubicar o definir biblioteca) y en el campo “Name” teclear el nombre de la biblioteca fuente a crear: ‘UAMCMB0.SPRIVLIB.C’ o ‘UAMCMB0.SPRIVLIB.JCL’, no olvidar teclear el apostrofe al inicio y final del nombre de la biblioteca a crear, como se muestra en la pantalla siguiente. Teclear “Ctrl” para ir a la siguiente pantalla.

3.- En la pantalla teclear los valores que se indican en los siguientes campos:“Space Units” = CYLINDER, “Primary Quantity” = 20, “Secondary quantity” = 5, “Directory blocks” = 100, “Record format” = FB, “Record length” = 80,“Block Size” = 4800,“Data set name type” = PDS. Teclear “Ctrl” para crear la biblioteca.

21

Page 23: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

4.- Se recibirá el mensaje de “Data set allocated” como se indica en la siguiente pantalla.

5.- Para la biblioteca de JCL, realizar los pasos 2 a 4, cambiando el nombre de la biblioteca que corresponda a los JCL, en este caso ‘UAMCMB0.SPRIVLIB.JCL’.

22

Page 24: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

Anexo III. Creación de biblioteca carga

Para crear la biblioteca carga donde se ubican los componentes carga correspondiente a los programas fuentes de lenguaje C, seguir los siguientes pasos:

A continuación definiremos la biblioteca ‘UAMCMB0.SPRIVLIB.LOAD’.

1.- Desde el menú principal de TSO teclear P.3.2

2.- En la pantalla teclear A de Allocate y en el campo “Name” teclear el nombre de la biblioteca fuente a crear: ‘UAMCMB0.SPRIVLIB.LOAD’, no olvidar teclear el apostrofe al inicio y final del nombre de la biblioteca a crear, como se muestra en la pantalla siguiente.

3.- En la pantalla teclear los valores que se indican en los siguientes campos:“Space Units” = CYLINDER, “Primary Quantity” = 20, “Secondary quantity” = 5, “Directory blocks” = 100, “Record format” = U, “Record length” = 0,“Block Size” = 32760,“Data set name type” = LIBRARY. Teclear “Crtl” para crear la biblioteca.

23

Page 25: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

4.- Se recibirá el mensaje de “Data set allocated” como se indica en la siguiente pantalla.

5.- La biblioteca carga ya esta creada.

24

Page 26: Manual de Compilacion de Un Programa en C en ZOS v3

Manual de Compilación de un programa en lenguaje C en z/OS

Anexo IV. Código de programa en lenguaje C y JCL de Compilación.

Programa en lenguaje C

JCL de Compilación

Anexo V. Bibliografía.

MVS JCL User´s Guide

http://pic.dhe.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.ieab500/iea2b550.htm

C/C++ User's Guide

http://pic.dhe.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.ieab500/iea2b550.htm

ISPF User's Guide Vol I

http://pic.dhe.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.ieab500/iea2b550.htm

ISPF User's Guide Vol II

http://pic.dhe.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.ieab500/iea2b550.htm

TSO/E

http://pic.dhe.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.ieab500/iea2b550.htm

25