La compilación de un programa de servicio escrito en lenguaje C en un sistema iSeries consta de los siguientes pasos:

 

- Introducir el fuente con el código principal y el fuente con los prototipos

 

Vamos a suponer que queremos generar el programa de servicio SRRCW cuyos fuentes radican en QCSRC, SRRCW con el código principal y SRRCWH con el código de los prototipos.

 

 

- Compilar el fuente y generar el módulo a enlazar

 

         SBMJOB CMD(CRTCMOD MODULE(SRRCW) OUTPUT(*PRINT) DBGVIEW(*ALL) REPLACE(*YES) TERASPACE(*YES *TSIFC)) JOB(SRRCW)

 

 

Con esta instrucción se somete la compilación del módulo SRRCW, con el comando CRTCMOD, que se emplea con las opciones:

 

CRTCMOD MODULE(SRRCW) OUTPUT(*PRINT) DBGVIEW(*ALL) REPLACE(*YES) TERASPACE(*YES *TSIFC)

 

             OUTPUT(*PRINT) Para que la compilación genere un informe impreso detallado

             DBGVIEW(*ALL)  Para que podamos acceder al fuente si estamos en modalidad de depuración

             REPLACE(*YES)  Para sustituir a una posible versión previa

        TERASPACE(*YES *TSIFC) Para habilitar la posibilidad de direccionar hasta un terabyte de memoria, en formato

                               compatible con programas escritos en RPG.

 

 

- Crear la lista de enlace y especificar las dependencias externas del módulo

 

Hay que utilizar la instrucción  CRTBNDDIR SRRCW  para crear la lista, y luego el mandato  WRKBNDDIR SRRCW   para añadir las dependencias, que en este ejemplo serían:

 

                     Work with Binding Directory Entries                 

Binding Directory:   SRRCW                             

Type options, press Enter.                                               

  1=Add   4=Remove                                                        

                                                  --------Creation--------

Opt     Object         Type        Library        Date           Time    

        SRRCAL         *SRVPGM     *LIBL          02/17/09       13:25:34

        SRRCM          *SRVPGM     *LIBL          02/19/09       13:49:40

        SRRCN          *SRVPGM     *LIBL          02/20/09       11:17:19

        SRFECHA        *SRVPGM     *LIBL          02/20/09       13:00:08

 

 

 

- Crear la lista de exportación

 

En SRRCWH se expresan los prototipos de las funciones que se van a exportar a efectos de compilación de otros módulos, pero a la hora de crear el programa de servicio hay que crear un fuente que contenga las especificaciones de exportación que se utilizan para generar su signatura.

 

En el ejemplo se usa el fuente SSRRCW ubicado en QSRVSRC. Si se examina puede comprobarse que se emplea una técnica de signatura evolutiva con cierre fijo a nueves. Esta construcción asume que se dispone de un sistema externo de examen y control de la evolución de las signaturas; si se carece de el, es equivalente a eludir la verificación de signatura, aunque con la ayuda de poder consultar la evolución teórica de signaturas.

 

 

- Compilar el programa de servicio

 

SBMJOB CMD(CRTSRVPGM SRVPGM(SRRCW) SRCMBR(SSRRCW) TEXT(SRRCW) BNDDIR(SRRCW) ALWLIBUPD(*YES)) JOB(SRRCW)

 

Con esta instrucción se somete la compilación del módulo SRRCW, con el comando CRTSRVPGM, que se emplea con las opciones:

 

CRTSRVPGM SRVPGM(SRRCW) SRCMBR(SSRRCW) TEXT(SRRCW) BNDDIR(SRRCW) ALWLIBUPD(*YES)

 

 SRCMBR(SSRRCW)  Indica que se emplea el fuente SSRRCW con las especificaciones de exportación

 BNDDIR(SRRCW)   Indica que se utiliza el directorio de enlace SRRCW que se creó en el CRTBNDDIR

 ALWLIBUPD(*YES) Indica que se permite actualizar el programa con UPDSRVPGM sin necesidad de recompilarlo

 

Tras estos pasos se generaría el programa de servicio SRRCW que puede consultarse con el mandato DSPSRVPGM para ver la lista de procedimientos exportados, las signaturas soportadas, etc.

 

                                                                                        ________ 

iSeries ficheros virtuales