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
El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
No comments:
Post a Comment