Memory Access Violation When Installing Databases

When installing the Universal Addressing Module's U.S. Postal Database on Windows or Linux, you may encounter an error similar to the following:

Memory access violation.
COBOL error at 000000 in <path>\G1DBLOAD.acu

This issue is caused by a limitation in a third-party software library.

There are two workarounds for Windows and one for Linux.

Windows Workaround 1: Modify DEP Settings

  1. Go to Control Panel > System.
  2. Click the Advanced tab.
  3. In the Performance area, click Settings.
  4. Click the Data Execution Prevention tab.
  5. Do one of the following:
    • Select Turn on DEP for essential Windows Programs and services only.
    • Select Turn on DEP for all programs and services except those I select then click Add and add wrun32.exe located in C:\Program Files\Common Files\Group1\Runtime. You should now see ACUCOBOL-GT 32-bit Runtime listed.
  6. Click OK.

Windows Workaround 2: Set USE_EXECUTABLE _MEMORY

If you do not want to modify your DEP settings, you can instead set the system-level environment variable USE_EXECUTABLE_MEMORY to TRUE.

Linux Workaround

To work around this issue on Linux, update the kernel configuration to turn off the NX (No eXecute) bit:

  1. Log in as root.
  2. Edit /boot/grub/grub.conf.
  3. Add noexec=off to all kernel option lines. For example:
    
    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
    				
  4. Reboot the system.