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

第5章 アプリケーションの開発(C++言語)> 5.3 サーバアプリケーションのプログラミング(Portable Object Adapter:POA)> 5.3.6 クライアントとのコネクション切断時のインスタンス解放

5.3.6.2 インスタンス解放処理の実装

 クライアントとのコネクションが切断されたときに、作成したクラスのrelease_instance()メソッドが呼び出されます。親クラス(POAdisconnectクラス)のrelease_instance()メソッドは、常にfalse(解放しない)を返します。
 release_instance()メソッドが呼び出されたとき、コネクションが切断されたクライアントが使用した、POA、ServantのインスタンスおよびオブジェクトIDがパラメタとして通知されます。オーバーライドされたrelease_instance()メソッドでは、これらの情報をもとにして、通知されたServantが必要なものであるかどうかを判断し、true(解放する)またはfalse(解放しない)を返します。

 trueの場合、暗黙的にPortableServer::ServantBase::servant_delete()メソッドが実行されます。対象のServantが実行中の場合、コネクションが切断されたクライアント以外のクライアントが対象のServantからのレスポンスを受け取った後に、そのServantのインスタンスが削除され、それ以降そのServantへはアクセスできなくなります。


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

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