Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

第2章 CORBAアプリケーション開発時の留意事項> 2.1 コーディング

2.1.3 子プロセス/スレッドの生成終了処理( C, C++ )


CORBAアプリケーションより生成した子プロセスを終了する際には、exit() ではなく、_exit() を使用するようにしてください。exit() を使用した場合、子プロセスが終了した際に親プロセスも終了したと誤認されてしまい、その後の動作は保証されません。


プロセスモードのサーバアプリケーションから子プロセスを生成する場合はfork()を使用してください。スレッドモードのサーバアプリケーションの場合は、fork()ではなくfork1()を使用してください。

スレッドモードのサーバアプリケーション内から、さらにスレッドを生成する場合は、thr_create() の引数としてTHR_NEW_LWPおよびTHR_BOUNDフラグを指定する必要があります。


 CORBA_ORB_init関数(C++ではCORBA::ORB::init関数)発行後に子プロセスを生成する場合は、_spawn系関数(_spawn関数、_spawnl関数等)は使用しないでください。_spawn系関数はハンドル等を親プロセスから引き継ぐ仕様となっているため、CORBAサービスの制御が正常に行えなくなります。
 CORBA_ORB_init関数(C++ではCORBA::ORB::init関数)発行後にプロセスを生成する場合はCreateProcess関数を使用してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005