これは InterSystems FAQ サイトの記事です。
ローカル変数の容量は、プロセスに許可する最大メモリ割り当て容量によって制限されます。
この値は、システム構成パラメータの bbsiz で設定します(設定方法は記事の後半にあります)。
既定値は、1プロセスあたり、262,144 KB です。
※IRIS 2022.1 以降は、既定値が -1(最大値:制限なし) になりました。
※Caché/Ensemble 2012.1以前では 16,384 KB でした。
値は 256KB からスタートし、プロセスがより大きな領域を必要とする場合は、bbsiz で設定した値まで拡張します。
(バージョン2012.1以前では 128KB~49,536KB の範囲で設定できます。)
この値を超えるようなローカル変数の使用があると、 エラーが発生します。
現在のプロセスに残っている使用可能なメモリ量は、$STORAGE 変数で確認できます(バイト単位)。
詳細は以下ドキュメントページをご参照ください。
$STORAGEについて【IRIS】
$STORAGEについて
インターシステムズ製品のプロセス・メモリについて
一般的に多量のローカル変数を使うと、システムが稼動するために必要なメモリ量も増加します。
大規模システムの場合には、そのことが原因でメモリ不足が発生することもあり得るため注意が必要です。
その様な事態を避けるために、なるべく、余計なローカル変数を使用しないようなシステム設計が望まれます。
多量のローカル変数が必要な場合には、プロセスプライベートグローバルで代替することを推奨します。
bbsiz の設定は管理ポータルより行います。
管理ポータル:
[システム管理] > [構成 > [システム構成] > [メモリと開始設定] : [プロセスあたりの最大メモリ(KB)]
以下の関連トピックもあわせてご参照ください。