3.6.1 マルチスレッド制御
TP1/EEは,マルチスレッドに対応しているため,TP1/EEプロセス内で複数のサービスを同時に実行できます。処理スレッドを利用して,各サービスを同一プロセスで実行できるため,サービスごとにプロセスを分ける方法よりも速く処理できます。同じサービスはシリアルに実行します。ただし,サービス引き出しの多重度を2以上に指定している場合は,パラレルに実行します。TP1/EEプロセス内で実行するスレッドの最大数は,プロセス関連定義のthread_noオペランドで指定できます。
TP1/EEは,マルチスレッドに対応するため,次の制御をします。
-
保護区/非保護区の制御
UAPを処理内容に応じて保護区と非保護区に分けてプロセスの終了を制御します。
-
TP1/EEプロセスのハングアップ監視
TP1/EEプロセスのハングアップを監視し,プロセスを強制停止します。
(1) 保護区/非保護区の制御
TP1/EEでは,UAPを処理内容に応じて保護区(プロセスダウン域)と非保護区(スレッドダウン域)に分けてプロセスの終了を制御します。保護区を実行中に異常が発生した場合は,プロセス内の全スレッドを終了させます。非保護区を実行中に異常が発生した場合は,異常が発生したスレッドだけを終了させます。異常が発生したスレッドだけを終了させることで,プロセスの終了を局所化できます。
UAPの保護区/非保護区は,ee_thd_protstart関数およびee_thd_protend関数で切り替えます。UAPの保護区/非保護区の詳細,およびee_thd_protstart関数,ee_thd_protend関数の詳細については,マニュアル「TP1/Server Base Enterprise Option プログラム作成の手引」を参照してください。
UOCは保護区であり,保護区/非保護区の切り替えはできません。