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.

Monday, April 25, 2022

Grupo de Activación. Segunda Entrega.

                             


Para quienes todavía no tienen claro qué es un "Grupo de Activación", lo explicaré con una analogía sencilla.

Cuando declaras una variable en un programa, el sistema reserva un espacio de memoria donde alojará los valores que sean asignados a esa variable durante el tiempo de ejecución del programa. El nombre de la variables es un nombre virtual, que nos permite a los desarrolladores manejar espacios de memoria en lenguajes de alto nivel.

 

Un Grupo de Activación se crea para “reservar” el espacio en memoria para programas que pueden ejecutarse de manera cooperativa, es decir que utilizan recursos comunes como archivos, directorios de enlaces, índices, módulos y otros, dentro de un mismo proceso. 

(Al final de este artículo, el enlace al artículo anterior para quienes deseen leerlo)

A partir de ahora trabajaremos con el grupo de activación Dftactgrp = *NO.

En forma análoga a los que hacemos al declarar variables, debemos:

1.-Elegir un nombre para el grupo de activación

2.-Definir el grupo de activación en algún lado...

En el ejemplo del cuadro a continuación coloqué el nombre: Master. Puede ser cualquier otro a gusto del programador.

 

¿Dónde Se Declaran Los Grupos de Activación?



Es muy importante nunca colocar QILE/QILETS como grupo de activación al crear programas de servicio (Crtsrvpgm) ni programas con modulos enlazados (Crtpgm). Los resultados pueden ser confusos o impredecibles.       

Con el comando DSPPGM podemos ver con cual grupo de activación se ha compilado un programa.         


¿Cuántos Tipos de Grupos de Activación Existen?

 


 

¿Cuánto Dura Activo un Grupo de Activación?       

La memoria y los recursos asociados siguen reservados o no, dependiendo de los tipos de Grupos de Activación. Es importante, liberar el espacio reservado para que sea utilizable para otros procesos una vez que nuestro proceso ha finalizado. 

Dependiendo del tipo de grupo de activación, el sistema elimina el grupo de activación para liberar los recursos en estas dos ocasiones:

-Al finalizar la ejecución del programa que ha definido el grupo.

-Al finalizar el job donde se ejecuta el proceso.


 

Lo mas saludable es colocar el comando RCLACTGRP(*ELIGIBLE) en el monitoreo de errores (monmsg/monitor) y también al finalizar el proceso para liberar recursos y memoria.

Cuando colocamos *ELEGIBLE todos los grupos de activación que estén abiertos y que no estén siendo utilizados serán eliminados. Esto nos evita el tener que hacer una lista de grupos de activación del proceso y eliminar uno a uno manualmente.

Sería interesante hacer pruebas con y sin grupos de activación para la ejecución de los programas y medir los tiempos para comparar la mejoría o no, del tiempo de respuesta. Obviamente, esto se nota mucho más en procesos que manejan grandes volúmenes de data con archivos comunes y sucesivas llamadas y enlaces entre los componentes de uno varios módulos enlazados. Le dejo a los lectores esta tarea a su discreción.

Continua un proceso de investigación sobre este tema. Por ahora, finalizo el tema en este segundo artículo y lo retomaré en otra oportunidad con información más detallada.

Para quienes no han leído aún el primer artículo sobre este tema, aquí les dejo el enlace.

Grupos de Activacion. Primera Entrega 

 

        

     Si te pareció interesante, reenvíalo a un amigo haciendo click en el sobrecito que está al final del artículo o en el enlace de Linkedin que está encima de este mensaje.  El conocimiento es valioso, compártelo. 

    Autor: Ing. Liliana Suárez



No comments: