Language Environment® (LE) _CEE_RUNOPTS 環境変数を変更または追加することにより、z/OS® 上のスタック・サイズを変更します。 この操作は、ブローカーに対して定義されたすべての実行グループ、または特定の実行グループについて行えます。
z/OS のブローカー・コンポーネントは、XPLINKage (追加のパフォーマンス・リンケージ) を使用してコンパイルされ、ランタイム・コードに最適化が追加されます。 ただし、初期スタック・サイズが十分に大きくない場合は、スタック・エクステントが使用されます。初期スタック・サイズは 1 MB であり、各エクステントで 1 MB が使用されます。 十分に大きい下位スタック・サイズを選択してください。スタック・エクステントが使用されると、XPLINK のパフォーマンスが低下することがあるためです。
適切なスタック・サイズを判別するために、言語環境レポート・ストレージ・ツールを使用できます。
export _CEE_RUNOPTS=RPTSTG¥(ON¥)
次いで、_CEE_RUNOPTS 環境変数を変更または追加することで、z/OS 上のスタック・サイズのデフォルト値をオーバーライドすることができます。この操作は、ブローカーに対して定義されたすべての実行グループ、または特定の実行グループについて行えます。
export _CEE_RUNOPTS=THREADSTACK64\(ON,2M,1M,128M\)
RPTSTG オプションを使用すると、アプリケーションの実行時間が長くなるため、メッセージ・フローの開発の補助手段としてのみ使用し、最終的な実稼働環境では使用しないでください。 必要となる正確なスタック・サイズを判別できたら、このオプションを _CEE_RUNOPTS 環境変数から除去してください。
XPLINK スタックは仮想ストレージで減少しますが、標準リンケージは増加します。 実行時に下位スタック・スペースと上位スタック・スペースを切り替えることによって生じるパフォーマンスへの影響を回避するには、可能な場合、XPLINK オプションを使ってユーザー定義拡張機能をコンパイルします。 メッセージ・フローが、標準リンケージ規則によってコンパイルされたユーザー定義拡張機能を使用する場合は、上位スタック・サイズの適切な値を設定してください。