Interstage Application Serverにおいて、odcntlqueコマンドを使用してCORBAサーバアプリケーションの終了を行いましたが、アプリケーションが停止しません。

odcntlqueコマンドを使用してCORBAサーバアプリケーションの終了を行いましたが、アプリケーションが停止しません。原因と対処方法を教えてください。
[原因]
活性化メソッドから復帰したあとで時間がかかっている可能性があります。

CORBAサーバアプリケーションの動作モードが「SYNC_END」の場合、odcntlqueコマンドによる終了処理が行われると、活性化メソッドが復帰します。その後、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
製品・サービス情報
対象製品 Interstage Application Server
バージョン V9, V8, V7, V6, V5
プラットフォーム Windows, Solaris, Linux
アンサー種別 運用/保守
このページの先頭へ