Yo conozco dos métodos que dependen de cómo los vayas a probar (¡ojo!, hablo de procedimientos almacenados externos):
1. Tú controlas la ejecución del procedimiento y, por tanto, conoces a través de que trabajo se ejecuta en el AS400. Normalmente son los trabajos QZDASOINIT. 2. No tienes ningún control y no sabes cuándo se ejecutará el procedimiento. Primer caso: 1. Localizas el trabajo en el sistema. Uno de los trabajos QZDASOINIT. 2. Abres una sesión 5250. 3. STRSRVJOB JOB(nnnnnn/QUSER/QZDASOINIT), donde “nnnnnn” es el número del trabajo. 4. STRDBG 5. DSPMODSRC y selecciones el programa o programa de servicio que ejecute el procedimiento almacenado. 6. Marcas el punto de interrupción. Vuelves a la línea de mandato. 7. Ejecutas el procedimiento almacenado desde tu aplicación Windows o desde un cliente SQL como el Navegador de Operaciones. 8. En la sesión 5250 se activa el depurador en el punto de interrupción que marcaste. Segundo caso: 1. Abres un sesión 5250 2. STRDBG con el programa o programa de servicio a depurar. 3. Busca dónde quieres poner el punto de interrupción y anota el número de línea de la izquierda. 4. SBREAK nnn USER uuuuuu, donde “nnn” es el número de línea y “uuuuuu” el nombre el usuario que ejecutará el programa. Si lo dejas en blanco estás indicando cualquier usuario. 5. Sal del depurador. 6. Ejecuta el procedimiento almacenado. 7. En la sesión 5250 aparece una pantalla que te indica qué trabajo del sistema está ejecutando tu programa de servicio. Anótalo. 8. Abre otra sesión 5250 (no cierres la del punto 1). 9. STRSRVJOB JOB(el trabajo anotado en punto 7) 10. STRDBG y el programa o programa de servicio. Fija de nuevo el punto de interrupción (F6 o break) 11. En la primera sesión (punto 1) pulsa INTRO y ciérrala si quieres. 12. En la segunda pantalla podrás depurar el programa. Este método utiliza una primera sesión para averiguar el nombre del trabajo que ejecutará el procedimiento almacenado y la segunda sesión para depurarlo. Es rebuscado, pero es la única forma de hacerlo en pantalla verde. Las técnicas que he explicado pueden utilizarse para depurar cualquier trabajo batch o de servidor que ejecute el sistema. Sólo hay que averiguar cual es el trabajo que lo ejecuta. ¡Suerte! Javier De: [email protected] [mailto:[email protected]] En nombre de [email protected] Enviado el: miércoles, 19 de agosto de 2015 13:05 Para: [email protected] Asunto: Desplegar Msg en operador del sistema desde un procedimiento almacenado. Hola Como puedo depurar un procedimiento almacenado db2? Saludos
____________________________________________________ Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L.

