ページの先頭行へ戻る
Interstage Application Server V13.0.0 アプリケーション作成ガイド(CORBAサービス編)
FUJITSU Software

11.2.3 オブジェクトとインスタンスの関係

サーバプロセス内では、CORBAオブジェクトとC++インスタンスの対応関係は、1対1となります。そのため、同じオブジェクトを複数クライアントで共用する場合、サーバ側のC++インスタンスは同一のものが使用されます。

サーバ側のC++インスタンスはオブジェクトを使用した初回アクセス時にメソッド呼出し直前で作成され、以下の条件の時に解放されます。

CORBA::ORB::unbind_object()を発行した場合、以下のタイミングでインスタンスは解放されます。

たとえば、CORBA::ORB::unbind_object()が発行された時点で複数クライアントから該当インスタンスにアクセスされた場合、最後のクライアントアクセス後にスケルトンから復帰した直後にインスタンスが解放されます。


注意

セション継続用オブジェクトに対応するインスタンスが解放された後に、クライアントからセション継続用オブジェクトを使用してアクセスされた場合、オブジェクトのインタフェースがCORBA::ORB::set_unbinded_object_rejecting()で登録されているかどうかで動作が異なります。

  • オブジェクトのインタフェースが登録されていない場合
    新しくC++インスタンスを生成し、サーバメソッドを呼び出します。

  • オブジェクトのインタフェースが登録されている場合
    クライアントにシステム例外を通知します。