Violación de acceso a la memoria al instalar bases de datos
Cuando se instala la base de datos postales de Estados Unidos del módulo Universal Addressing en Windows o Linux puede aparecer un mensaje de error similar al siguiente:
Memory access violation.
COBOL error at 000000 in <path>\G1DBLOAD.acu
Este problema se debe a una limitación en una biblioteca de software de terceros.
Existen dos soluciones para Windows y una para Linux.
Solución 1 para Windows: modificar la configuración de DEP
- Vaya a .
- Haga clic en la ficha Opciones avanzadas.
- En el sector Rendimiento, haga clic en Configuración.
- Haga clic en la ficha Prevención de ejecución de datos.
- Realice una de estas acciones:
- Seleccione la opción Activar DEP solo para los programas y servicios de Windows esenciales.
- Seleccione la opción Activar DEP para todos los programas y servicios excepto los que seleccione, haga clic en Agregar y agregue wrun32.exe desde C:\Program Files\Common Files\Group1\Runtime. Observará que en la lista aparece ACUCOBOL-GT 32-bit Runtime.
- Haga clic en Aceptar.
Solución 2 para Windows: establecer USE_EXECUTABLE _MEMORY
Si no desea modificar los ajustes de DEP, puede establecer la variable del entorno de nivel de sistema USE_EXECUTABLE_MEMORY en TRUE.
Solución para Linux
Para solucionar este problema en Linux, actualice la configuración del kernel (núcleo) para deshabilitar el bit NX (No eXecute):
- Inicie sesión como usuario raíz (root).
- Edite /boot/grub/grub.conf.
- Agregue noexec=off a todas las líneas de opción de kernel. Por ejemplo:
title Red Hat Enterprise Linux AS (2.4.21-15.ELsmp) root (hd0,1) kernel /boot/vmlinuz-2.4.21-15.ELsmp ro root=LABEL=/ noexec=off initrd /boot/initrd-2.4.21-15.ELsmp.img
- Reinicie el sistema.