データベース インストール時のメモリ アクセス違反

Universal Addressing モジュールの米国郵便データベースを Windows または Linux にインストールする際に、以下のようなエラーが発生する場合があります。

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

この問題は、サードパーティ ソフトウェア ライブラリの制約に起因します。

Windows に対して 2 つ、Linux に対して 1 つの回避策があります。

Windows の回避策 1: DEP 設定の変更

  1. コントロール パネル] > [システム] を選択します。
  2. [詳細設定] タブをクリックします。
  3. [パフォーマンス] エリアの [設定] をクリックします。
  4. [データ実行防止] タブをクリックします。
  5. 以下のいずれかの方法を実行します。
    • [重要な Windows のプログラムおよびサービスについてのみ有効にする] を選択します。
    • [次に選択するものを除くすべてのプログラムおよびサービスについて DEP を有効にする] を選択してから [追加] をクリックし、wrun32.exe にある C:\Program Files\Common Files\Group1\Runtime を追加します。これによって、ACUCOBOL-GT 32-bit Runtime が一覧に表示されるはずです。
  6. [OK] をクリックします。

Windows の回避策 2: USE_EXECUTABLE _MEMORY の設定

DEP 設定を変更したくない場合は、代わりにシステムレベル環境変数 USE_EXECUTABLE_MEMORY に TRUE を設定できます。

Linux の回避策

Linux でこの問題を回避するには、次の手順でカーネル設定を更新し、NX (No eXecute) ビットを無効にします。

  1. root でログインします。
  2. /boot/grub/grub.conf を編集します。
  3. すべてのカーネル オプション行に noexec=off を追加します。例:
    
    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. システムを再起動します。