THREADHEAP (非 CICS)
THREADHEAP は、スレッド・レベル・ヒープ・ストレージの割り振りおよび管理を制御します。
THREADHEAP 指定に基づいて、別々のヒープ・セグメントが各スレッド用に割り振りおよび解放されます。サブタスクでライブラリーが使用するヒープ・ストレージは、ANYHEAP および
BELOWHEAP オプションによって指定されるエンクレーブ・レベル・ヒープ・ストレージから割り振られます。
THREADHEAP には、以下のサブオプションがあります。
- 初期サイズ: スレッド・ヒープ・ストレージの最小サイズ。これは、最も近い 8 バイトの倍数に丸められます。
- 初期サイズ単位: 初期サイズを指定する単位 (K、M)。
- 増分サイズ: スレッド・ヒープ・エリアの後に続く増分の最小サイズ。最大サイズは 1 MB です。
- 増分サイズ単位: 増分サイズを指定する単位 (K、M)。
- ANYHWERE または BELOW:
ANYWHERE を使用すると、ヒープ・ストレージをストレージのどこにでも割り振ることができます。境界の上に使用可能なストレージがない場合は、境界の下のストレージが取得されます。
BELOW は、ヒープ・ストレージを、24 ビット・アドレッシングでアクセス可能な、ストレージの 16 MB 境界の下に割り振ることを指定します。
- KEEP または FREE:
FREE は、スレッド内の最後のストレージが解放されたときに、THREADHEAP 増分に割り振られたストレージを解放することを指定します。
KEEP は、スレッド・ヒープ増分内の最後のストレージが解放されたときに、
THREADHEAP 増分に割り振られたストレージを解放しないことを指定します。
注:
- 要求するルーチンが 24 ビット・アドレッシング・モードで実行されていて、THREADHEAP(,,ANYWHERE,) が有効になっている場合、THREADHEAP ストレージは
HEAP 初期サイズ 24 および増分サイズ 24 設定に基づいて 16 MB 境界の下に割り振られます。
- 初期スレッド・ヒープ・セグメントはスレッドが終了するまで解放されません。
- PL/I 考慮事項: THREADHEAP(4K,4K,ANYWHERE,KEEP) は、PL/I TASKHEAP オプションと互換性のある動作を提供します。
- MTF 考慮事項: THREADHEAP は C/C++ または Fortran for z/OS MTF アプリケーションに影響を与えません。スレッド・レベル・ヒープは、PL/I MTF を使用するアプリケーションでのみ割り振られます。
PL/I MTF アプリケーションの場合、サブタスクで指定された被制御変数および基底付き変数はスレッド・レベル・ヒープに配置されます。
メイン・プログラムがAMODE 24 で
THREADHEAP(,,ANYWHERE,) が指定されている場合、ヒープ・ストレージは 16 MB 境界よりも下に割り振られます。ストレージは、以下の条件に基づいて境界を超える範囲にのみ割り振られます。
- ストレージを要求するユーザー・ルーチンが 31 ビット・アドレッシング・モードで実行されている
- HEAP(,,ANYWHERE) が有効になっている
- メイン・ルーチンが AMODE 31 である