メッセージ・フロー・スレッドを実行する場合、接続されたノードの論理によって定義される指示を実行するストレージが必要になります。このストレージは、実行グループのヒープおよびスタック・サイズによって決まります。メッセージ・フロー・スレッドに割り振られるデフォルトのスタック・サイズは、使用されるプラットフォームによって異なります。
各メッセージ・フロー・スレッドには、1MB のスタック・スペースが割り振られます。
各メッセージ・フロー・スレッドには、8MB のスタック・スペースが割り振られます。
各メッセージ・フロー・スレッドには、1MB のスタック・スペースが割り振られます。
各メッセージ・フロー・スレッドには、512 KB の下位スタック・スペースおよび 50 KB の上位スタック・スペースが割り振られます。
メッセージ・フローでは、ノードは通常約 2KB のスタック・スペースを使用します。 したがって、標準のメッセージ・フローには、z/OS でおよそ 250 のノード、UNIX プラットフォームでおよそ 500 のノード、Windows でおよそ 500 のノードが含まれます。 この量は、使用されるノードのタイプやノードで実行される処理によって、多くなったり少なくなったりします。
MQSI_THREAD_STACK_SIZE 環境変数を適切な値に設定することによって、スタック・サイズを増やすことができます。システムで実行されているブローカーを再始動するときに、新しい値が使用されます。
設定する MQSI_THREAD_STACK_SIZE の値は、DataFlowEngine プロセス内で作成されるスレッドごとに使用されます。 実行グループに割り当てられる多数のメッセージ・フローがあり、MQSI_THREAD_STACK_SIZE に大きな値を設定すると、DataFlowEngine プロセスはスタック用の大量のストレージを必要とします。
z/OS の Integrator コンポーネントは、新しい XPLINKage (追加のパフォーマンス・リンケージ) を使用してコンパイルされ、ランタイム・コードに最適化が追加されます。ただし、初期スタック・サイズが十分に大きくない場合は、スタック・エクステントが使用されます。各エクステントで 128KB が使用されます。下位スタック・サイズを十分に大きくすることは非常に重要です。スタック・エクステントが使用されると、XPLINK のパフォーマンスが低下するためです。
export _CEE_RUNOPTS=XPLINK¥(ON¥),RPTSTG(ON)次いで、コンポーネント・プロファイル内で LE_CEE_RUNOPTS 環境変数を変更または追加することで、z/OS 上のスタック・サイズのデフォルト値をオーバーライドすることができます。
コンポーネント・プロファイルの更新時には、コンポーネントを停止して、必要な変更をプロファイルに加え、BIPGEN をサブミットして ENVFILE を再作成し、コンポーネントを再始動します。
export _CEE_RUNOPTS=XPLINK(ON),THREADSTACK(ON,50K,15K,ANYWHERE,KEEP,512K,128K)
RPTSTG を増やすと、アプリケーションの実行時間が長くなります。したがって、これは、メッセージ・フローおよび最終的な実稼働環境の開発に限定した補助手段として使用してください。必要となる正確なスタック・サイズを判別できたら、このオプションを _CEE_RUNOPTS 環境変数から除去する必要があります。