Bienvenidos a Iseries Venezuela

Las mejores prácticas, recursos, tips, enlaces, videos y artículos para informáticos relacionados con el Iseries y el As/400 lenguajes de programación RPG, ILE RPG y SQL.

The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.

domingo, 24 de mayo de 2009

Forzar un DUMP en un programa RPG







Cuando monitoreamos errores en un programa RPG, esperamos haber dado con la lista de todos los errores posibles que puedan presentarse antes de que el programa pase del ambiente de desarrollo al ambiente de producción. Sin embargo, esto no sucede siempre.


En el transcurso de las pruebas se producen ciertos errores que podemos controlar, corregir o monitorear. Cuando el programa entra en producción puede sorprendernos la aparición de errores inesperados de acuerdo a la autoridad, la data en los archivos y los objetos creados que pueden ser distintos al entorno de pruebas que teníamos en producción.


Cuando un sistema está recién instalado en producción, el operador del sistema puede encontrarse ante el dilema de no saber que respuesta presionar ante la consola del As400. ¿debo presionar C= cancelar, D= Dump o G= GO?.


Según la experticia del operador y la disponibilidad del encargado del sistema, muchas veces se cancela el proceso perdiéndose la oportunidad de tener un DUMP de memoria que permita acceder a información que hace posible analizar el error y tomar las acciones correctivas y evitar que se produzca una próxima vez.
La solución es no dejar que el operador tenga en sus manos la responsabilidad de dar una respuesta. Para ello vamos a forzar un DUMP a nivel del programa RPG.


En versiones previas a V5R1 esta es la rutina standard de monitoreo de error. Puedes observar que en la hoja H se especifica debug (*YES)

H Debug( *Yes )


C *PSSR BegSr

C Dump

* Colocar el código para manejar la excepción

C EndSr



En versiones posteriors a V5R1 Forzamos el DUMP asi:


C *PSSR BegSr
C Dump(A)

* Colocar código para manejar la excepción.

C EndSr


Un DUMP con un código de operación extendido con una ‘A’ el programa siempre ejecutará el DUMP sin considerar los atributos de DEBUG. Puedes remover las especificaciones de la hoja H y utilizar el código DUMP(A)

EL DUMP, arroja un listado con el valor de las variables y campos del programa en el momento que sucedió la falla.

Si tienes dudas en el funcionamiento de la rutina *PSSR, revisa articulos previos que te explicaran en este mismo blog cómo se monitorean errores en RPG.





Si te pareció interesante, reenvialo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.


Autor:  Ing. Liliana Suárez

No hay comentarios: