Interstage Application Serverにおいて、CORBAワークユニットの停止処理がハングアップしました。
- CORBAワークユニットの停止処理がハングアップしました。原因と対処方法を教えてください。
- [原因]
活性化メソッドから復帰したあとで時間がかかっている可能性があります。
[対処方法]
この場合、強制停止によりCORBAワークユニットを停止できます。CORBAサーバアプリケーションの動作モードが「SYNC_END」の場合、ワークユニットの停止処理が行われると、活性化メソッドが復帰します。その後、exit発行などにより明示的にプロセスを終了させなければなりません。
例えば、活性化メソッドのあとにスレッド終了処理(thr_exitなど)を行っている場合は、該当のスレッドは終了しますが、プロセスは残存します。このため、ワークユニットの停止が完了せずに、ハングアップします。また、活性化メソッドのあとに時間のかかる処理が行われている場合、その処理が完了してプロセスが終了するまで、ワークユニットの停止処理も完了しません。以下のどちらかの対処を行ってください。
-
サーバアプリケーションの動作モードを「COMPATIBLE」に変更する
-
活性化メソッド復帰後にプロセスを終了するよう処理を修正する
活性化メソッドは以下のとおりです。
C言語: CORBA_BOA_impl_is_ready(), CORBA_BOA_obj_is_ready()
C++言語: CORBA::BOA::impl_is_ready(), CORBA::BOA::obj_is_ready(),
PortableServer::POAManager::activate()
Java: org.omg.PortableServer.POAManager.activate()
COBOL: CORBA-BOA-IMPL-IS-READY, CORBA-BOA-OBJ-IS-READY
OOCOBOL: CORBA-BOA-IMPL_IS_READY, CORBA-BOA-OBJ_IS_READY -
製品・サービス区分 | Interstage | ||||||
---|---|---|---|---|---|---|---|
製品・サービス情報 |
|
||||||
アンサー種別 | 運用/保守 |