Una vez que se ha configurado una instancia de área, cualquier usuario y aplicación podrá acceder a ella.
DATA: gr_handle TYPE REF TO cl_my_area.
gr_handle = cl_my_area=>attach_for_read( ).
Los programas de lectura deben realizar los siguientes pasos:
- Los programas de lectura necesitan primero una variable de referencia tipificada como la clase de área. Esta variable de referencia sirve como un handle para acceder a la instancia de área.
- El programa obtiene el handle para la instancia de área mediante el método ATTACH_FOR_READ, que proporciona la clase CL_SHM_AREA. Esto fija un bloqueo de lectura que evita que el sistema elimine la instancia de área durante el acceso.
- Ahora podemos acceder a los objetos de esta instancia de área, siempre utilizando el manejador de área.
Cancelación del bloqueo de lectura
Una vez que esté completa la actividad de lectura, la aplicación libera el bloqueo de lectura mediante el método DETACH del manejador de área. La aplicación libera automáticamente el bloqueo de lectura cuando la sesión interna se cierra después de una sentencia DETACH.
gr_handle->detach( ).
Área de memoria compartida – Versión
Al crear un área, podemos especificar que el sistema permita varias versiones de una instancia de área.
Para determinar qué significan exactamente estas versiones instancias de área, podemos examinar un ejemplo.
Un estado normal es cuando se ha configurado una instancia de área. Cuando la configuración haya finalizado mediante el método DETACH_COMMIT y el sistema haya enviado un commit en base de datos, se activa la versión de instancia de área.
Versión objeto de la configuración
Si el atributo NUMBER_OF_VERSIONS del área está correctamente establecido, pueden existir versiones adicionales de la instancia de área además de la versión activa.
Una vez que se ha configurado un nuevo catálogo, existen varias versiones temporales de la misma instancia de área.
Tan pronto como una aplicación establece un bloqueo de modificación para una instancia de área, se crea una “versión objeto de configuración” en paralelo con la versión activa.
Escritura finalizada – La versión anterior está desfasada
Si finaliza la configuración de la nueva versión durante un acceso de lectura de la versión actualmente activa, se activa la versión objeto de configuración. A la versión anteriormente activa se le asigna el atributo OUTDATED.
Para entender mejor como se utilizan los objetos compartidos, en un programa ejecutable leemos de la memoria compartida la instancia del objeto de la clase ZCL_CESTA_COMPRAS_LOGALI utilizando el área ZCL_CESTA_COMP_AREA_LOGALI.