Interstage Application Server トラブルシューティング集 |
目次
索引
![]() ![]() |
第9章 CORBAサービス使用時の異常 |
以下に記載されている方法でCORBAワークユニットの停止処理を行なったにもかかわらず、CORBAワークユニットが停止処理中の状態のまま停止が完了しない場合があります。
サーバアプリケーションの実装と登録情報が一致していないときに、この現象が発生する可能性があります。この現象が発生した場合、強制停止を実行することによりCORBAワークユニットを停止することが可能です。
サーバアプリケーションの動作モードに“COMPATIBLE”を指定した場合は特別な処理は不要ですが、動作モードに“SYNC_END”を指定した場合は活性化メソッド(注)から復帰した後に(exit関数の発行など)明示的にプロセスを終了させる必要があります。ユーザ論理のスレッドが全て終了してもCORBA機能用の管理スレッドが存在するため、プロセスは終了しません。そのため、“SYNC_END”の場合に活性化メソッド後のプロセス終了処理が行われていないと、CORBAワークユニットの停止処理を行ったにもかかわらず、CORBAワークユニットが停止しない(CORBAワークユニットのプロセスが残存する)という現象が発生します。
例えば、サンプルでは活性化メソッド後にスレッドの終了処理(Solaris OE版: thr_exit関数の発行、Windows版: ExitThread関数の発行、 Linux版: pthread_exit関数の発行)を行なっていますが、これは“COMPATIBLE”を期待した処理です。動作モードを“SYNC_END”に変更する場合は、活性化メソッド後にexit関数を発行するなどの修正をする必要があります。
動作モードが“SYNC_END”で活性化メソッド後にプロセスを終了させていない場合は、以下のどちらかの対処を行ってください。
注) 活性化メソッドの一覧は以下のとおりとなります。
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 : ORBA-BOA-IMPL-IS-READY, CORBA-BOA-OBJ-IS-READY
OOCOBOL : CORBA-BOA-IMPL_IS_READY, CORBA-BOA-OBJ_IS_READY
odcntlqueコマンドを使用してCORBAサーバアプリケーションの停止を行ったにもかかわらずCORBAサーバアプリケーションのプロセスが終了しない場合、サーバアプリケーションの実装と登録情報が一致していない可能性があります。
サーバアプリケーションの動作モードに“COMPATIBLE”を指定した場合は特別な処理は不要ですが、動作モードに“SYNC_END”を指定した場合は活性化メソッドから復帰した後に(exit関数の発行など)明示的にプロセスを終了させる必要があります。ユーザ論理のスレッドが全て終了してもCORBA機能用の管理スレッドが存在するため、プロセスは終了しません。そのため、“SYNC_END”の場合に活性化メソッド後のプロセス終了処理が行われていないと、CORBAサーバアプリケーションの停止処理を行ったにもかかわらず、CORBAサーバアプリケーションのプロセスが残存するという現象が発生します。
動作モードが“SYNC_END”で活性化メソッド後にプロセスを終了させていない場合は、以下のどちらかの対処を行ってください。
目次
索引
![]() ![]() |