Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引


2.9.1 保護区/非保護区の制御

UAPの保護区/非保護区は,ee_thd_protstart関数【CBLEETHD('PRTSTART')】およびee_thd_protend関数【CBLEETHD('PRTEND ')】で切り替えます。デフォルトではすべてのUAPが保護区に設定されています。また,保護区/非保護区の設定を有効にするかどうかは,プロセス関連定義のuapabend_downmodeオペランドで指定します。プロセス関連定義のuapabend_downmodeオペランドの指定については,マニュアル「TP1/Server Base Enterprise Option 使用の手引」の定義の説明を参照してください。

非保護区に設定する場合は,ほかのスレッドへの影響を十分に考慮してください。設定を誤ると,UAPの異常でスレッドを終了させたときに,TP1/EEプロセスがハングアップします。TP1/EEプロセスがハングアップすると,ハングアップ検出によって,TP1/EEプロセスが終了します。

保護区/非保護区に設定する処理と,UAPに異常が発生したときの処理を次の表に示します。

表2‒11 保護区/非保護区に設定する処理と異常発生時の処理

処理

異常発生時の処理

保護区

異常が発生したスレッドだけを終了させた場合,ほかのスレッドがハングアップしたり,異常終了したりするおそれがある処理。

プロセスを終了させる。終了させたプロセスは,TP1/Server Baseから再起動される。

非保護区

異常が発生したスレッドだけを終了させても,ほかのスレッドに影響がない処理。

異常が発生したスレッドを終了させる。終了させたスレッドは,モニタスレッドから再起動される。

UAPに非保護区を設定した場合に,プロセスを終了させる範囲,およびスレッドを終了させる範囲を次の図に示します。

図2‒47 非保護区を設定した場合の制御

[図データ]