サーバアプリケーションは、利用者等からの停止要求を受けた場合、クライアントからの要求を以降受け付けない旨をORBに対して通知します。ORBはこの通知を受けて、クライアントからの処理要求をサーバアプリケーションに伝えず、クライアントに例外を返します。非活性化の方法は、サーバタイプによって以下のように異なります。
サーバのタイプ | メソッド |
---|---|
shared server | CORBA_BOA_deactivate_impl |
unshared server | CORBA_BOA_deactivate_obj |
persistent server | CORBA_BOA_deactivate_impl |
CORBA_BOA_deactivate_impl()では、サーバアプリケーションのImplementationRepオブジェクトをパラメタとして指定します。CORBA_BOA_deactivate_obj()では、オブジェクトリファレンスをパラメタとして指定します。
CORBA_BOA_deactivate_impl(boa, impl, &env ); /* サーバの非活性化 */
なお、ワークユニット運用している場合は、isstopwuコマンドやInterstage管理コンソールから停止操作が実行されることにより、クライアントからの要求を以降受け付けない旨をORBに対して通知します。そのため、アプリケーション側で非活性化用のメソッドを発行する必要はありません。
ワークユニット運用でないCORBAアプリケーションの場合も、odcntlqueコマンドでサーバアプリケーションの終了を行う場合は、アプリケーション側で非活性化用のメソッドを発行する必要はありません。