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

|
5.3.7.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へはアクセスできなくなります。
Copyright 2006 FUJITSU LIMITED