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.

Sunday, November 27, 2011

Procesos Síncronos, Asíncronos y algo mas…











Un proceso no es síncrono o asíncrono en si mismo sino en relación a otros procesos con los que se relaciona. ¿Qué quiere decir esto?

Cuando hablamos de procesos síncronos nos referimos a procesos que envían un mensaje a otro proceso esperando una confirmación de recepción de mensaje.

Aquellos procesos que envían un mensaje a otros y no esperan por mensaje de “acuse de recibo” son procesos asíncronos.

Un ejemplo de procesos asíncronos lo vemos todos los dias cuando entramos a la página Web de nuestro banco y pedimos el saldo de la cuenta o realizamos alguna operación en línea. Una vez que el banco nos envía la información que solicitamos, la pagina Web no se queda esperando por una respuesta nuestra. Seria totalmente inoperante y consumiría muchísimo tiempo del servidor del banco. Nosotros podemos en el ínterin de realizar nuestra operación bancaria, atender una visita, levantarnos a atender el teléfono, etc.
 Es decir, ningún proceso del banco se queda esperando un mensaje de confirmación de nuestra parte. Solo cuando hacemos click sobre alguna operación específica de la pagina Web entonces el servidor detecta nuestra solicitud, nos responde y luego el servidor se dispone a atender la solicitud de otros usuarios.

En iseries y refiriéndonos específicamente a los procesos que son ejecutados bajo el lenguaje rpgile, clp, hay mecanismos de control de procesos que no están explícitamente relacionados con la sincronicidad.  En forma explicita puede entrar en esta categoría de sincronismo, el uso SOCKETS para transmisión de data entre el  iseries y una Web o las transmisiones especificas vía FTP, que por razones de seguridad, dan un timeout (tiempo agotado de espera) cuando hay demora en la respuesta.

En algunas instalaciones del Iseries existe el comando WAITJOB (no todas las instalaciones tienen este comando en la librería TAATOOL que suministra IBM).

Algunos analistas han confundido este comando con una sincronización entre procesos. Este comando WAITJOB, permite a un CLP que se está ejecutando, esperar a que otro finalice para continuar.
 Por ejemplo si el programa CLP PGMA somete el JOB llamado JOBW, luego de someter el JOBW el programador puede aplicar el waitjob dentro del programa PGMA para forzarlo a esperar la culminación del job sometido JOBW y luego el programa PGMA continuará con la siguiente instrucción a ser ejecutada. Esto no es igual a la sincronización de procesos entre si. En este ejemplo del WAITJOB, el sistema operativo le avisa a un proceso que el otro proceso terminó, pero ninguno de los dos procesos espera por la respuesta de uno o del otro.

Por cierto es importante tener en las instalaciones  el último release de esta librería de utilidades TAATOOL actualizada puesto que hay comandos sumamente útiles para los desarrolladores en Iseries y para el control de la ejecución de procesos.

En este enlace http://taatool.com/    pueden conseguir mayor información sobre este set de herramientas de productividad para lo desarrolladores del Iseries: 

Si te pareció interesante, reenvíalo 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 comments: