名前
CORBA_ORB_net_disconnect - 通信資源の解放
形式
void CORBA_ORB_net_disconnect( CORBA_ORB orb, CORBA_Object obj, CORBA_Environment *env );
機能説明
本関数は、objで指定されたオブジェクトが使用している通信資源を解放します。
パラメタ
復帰値
正常終了した場合、復帰値はありません。
異常終了した場合、env構造体の_majorにはCORBA_SYSTEM_EXCEPTIONが設定され、_idと_minorに詳細情報が設定されます。_idの意味と値は次のとおりです。_minorの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
コネクションがすでに切断済か不当なObjectを指定しました。
通信異常が発生しました。
注意事項
本関数を発行した場合、クライアントアプリケーションの状態により以下のエラーが通知される場合があります。
スレッドモードで動作するアプリケーションの場合で本関数を発行したスレッド以外でサーバとの通信を行っていた場合、サーバと通信を行っているスレッドにCOMM_FAILURE例外が通知されます。
非同期リクエストを発行している場合に非同期依頼の結果が受け取れません。
サーバマシンに対するコネクション情報が存在しない場合は、INV_OBJREF例外が通知されます。
同じコネクションを使用するobjに対し本関数を発行した場合、 コネクションが既に切断済となるためINV_OBJREF例外が通知されます。
例えば、ネーミングサービスとサーバアプリケーションが同じサーバ上で動作する場合、通常は同じコネクションを使用します。その場合、ネーミングサービスのオブジェクトリファレンスに対して本関数を発行した直後にサーバアプリケーションのオブジェクトリファレンスに対して本関数を発行すると既にコネクションが切断済のためINV_OBJREF例外が通知されます。なお、コネクション切断後にサーバアプリケーションを呼び出してから本関数を発行した場合は、コネクションが再接続済のため、本条件による例外は通知されません。
本関数を発行したクライアントプロセスでパラメタに指定した解放対象のobjが存在するサーバマシンを共用するその他のオブジェクトの持つインスタンス情報も併せて解放されます。