データベース インストール時のメモリ アクセス違反
Universal Addressing モジュールの米国郵便データベースを Windows または Linux にインストールする際に、以下のようなエラーが発生する場合があります。
Memory access violation.
COBOL error at 000000 in <path>\G1DBLOAD.acu
この問題は、サードパーティ ソフトウェア ライブラリの制約に起因します。
Windows に対して 2 つ、Linux に対して 1 つの回避策があります。
Windows の回避策 1: DEP 設定の変更
- を選択します。
- [詳細設定] タブをクリックします。
- [パフォーマンス] エリアの [設定] をクリックします。
- [データ実行防止] タブをクリックします。
- 以下のいずれかの方法を実行します。
- [重要な Windows のプログラムおよびサービスについてのみ有効にする] を選択します。
- [次に選択するものを除くすべてのプログラムおよびサービスについて DEP を有効にする] を選択してから [追加] をクリックし、wrun32.exe にある C:\Program Files\Common Files\Group1\Runtime を追加します。これによって、ACUCOBOL-GT 32-bit Runtime が一覧に表示されるはずです。
- [OK] をクリックします。
Windows の回避策 2: USE_EXECUTABLE _MEMORY の設定
DEP 設定を変更したくない場合は、代わりにシステムレベル環境変数 USE_EXECUTABLE_MEMORY に TRUE を設定できます。
Linux の回避策
Linux でこの問題を回避するには、次の手順でカーネル設定を更新し、NX (No eXecute) ビットを無効にします。
- root でログインします。
- /boot/grub/grub.conf を編集します。
- すべてのカーネル オプション行に 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
- システムを再起動します。