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

第11章 CORBAアプリケーションの高度な使い方

11.7 アプリケーション作成時の注意事項

(1) シグナル処理について

 シグナルを受信するアプリケーションを作成することはできません。

(2) アプリケーションの停止処理について

 アプリケーションを停止する場合、TerminateProcess関数を使用すると、システム資源を回収できないままアプリケーションが終了してしまいます。資源枯渇を防ぐため、TerminateProcess関数は使用しないでください。アプリケーションを停止する場合には、以下の方法で行ってください。

サーバアプリケーションの停止

 サーバアプリケーションは、以下の手順で停止してください。

odcntlque -d -que Impl-ID (サーバアプリケーションのインプリメンテーションリポジトリID)
odcntlque -c Impl-ID
odcntlque -s Impl-ID


 上記を実行することで、サーバアプリケーション活性化時の動作モード(OD_impl_instコマンドの"mode"(定義ファイル)の指定)により、アプリケーションの状態は以下のように遷移します。

 "mode=SYNC_END"の場合
 サーバアプリケーション活性化メソッド(CORBA_BOA_impl_is_ready()など)が復帰し、任意の終了処理が実行されます。
 "mode=COMPATIBLE"の場合
 新規のリクエスト処理は実行されなくなります。

クライアントアプリケーションの停止

 クライアントアプリケーションの停止処理を行う場合も、TerminateProcess関数は発行しないでください。また、サーバ側の処理が完了してから停止処理を行うようにしてください、

(3) サーバ・クライアント同時実装時の関数名の重複(スタブ・スケルトン)について

 アプリケーションにサーバ機能とクライアント機能を同時に実装する場合、同一の関数名がスタブ・スケルトンに生成されることがあります。これらを結合すると二重定義となるので、IDLファイル(スタブ・スケルトン)の作成には注意する必要があります。

(4) 子プロセスの生成/終了について

 サーバアプリケーションで子プロセスを生成(fork()などを使用)した場合、その子プロセス内でexit()を使用すると、親プロセスも終了します。子プロセスだけを終了させる場合は、_exit()を使用してください。


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

Copyright 2005 FUJITSU LIMITED