言語環境プログラム OS/390 版 バージョン 2 リリース 8 以前の場合、ユーザーが DATA(31) コンパイラー・オプションを指定して 16MB 境界より上の WORKING-STORAGE およびパラメーター・リストを要求した場合でも、16MB 境界より下のストレージが獲得されることがありました。これらのプログラムが AMODE 24 プログラムを動的に呼び出す場合は、言語環境プログラム OS/390 版 バージョン 2 リリース 8 以前を言語環境プログラム OS/390 版 バージョン 2 リリース 9 以降に移行すると、ランタイム・エラー・メッセージ IGZ0033S が発行されます。
言語環境プログラム OS/390 版 バージョン 2 リリース 8 以前では、DATA(31) を指定してコンパイルされた
COBOL プログラムの WORKING-STORAGE は、BELOW ストレージから割り振られた HEAP セグメントから獲得されました。
言語環境プログラム OS/390 版 バージョン 2 リリース 9 以降では、DATA(31) を指定してコンパイルされた
COBOL プログラムの WORKING-STORAGE は、ANYWHERE ストレージ (16MB 境界より上にも下にも割り振ることができる) から割り振られた HEAP セグメントから獲得されました。この変更によって、アプリケーションがどのような影響を受けるかを説明する例を次に示します。
- エンクレーブ内の従来の HEAP 要求では、16MB 境界より下の HEAP ストレージを明確に要求する必要があります。たとえば、DATA(24) が指定された COBOL プログラムがこのような HEAP ストレージを要求すると、言語環境プログラムのヒープ・マネージャーは、BELOW ストレージから HEAP セグメントを割り振りました。
- DATA(31) が指定された後続の COBOL プログラムによる HEAP ストレージ要求は、BELOW ストレージから割り振られた HEAP セグメントによって満たされなければなりません。このためには、WORKING-STORAGE のサイズを制限する必要があります。
DATA(31) が指定された COBOL プログラムを言語環境プログラム OS/390 版 バージョン 2 リリース 8 以前で実行すると、HEAP は BELOW ストレージから獲得されます。同じプログラムを言語環境プログラム OS/390 版 バージョン 2 リリース 9 以降で実行すると、HEAP は ANYWHERE ストレージから獲得されます。
AMODE 24 プログラムに対する呼び出しが行われる場合は、
言語環境プログラム OS/390 版 バージョン 2 リリース 9 以降に対して、次の考慮事項が適用されます。
- その呼び出しが AMODE 24 プログラムに対する COBOL 動的呼び出しである場合は、ランタイム・エラー・メッセージ IGZ0033S が出されます。
- AMODE 24 プログラムの呼び出しが COBOL 動的呼び出し以外の方法で行われた場合は、渡されたデータにプログラムがアクセスしようとすると、アドレッシング例外が発生します。