サーバアプリケーションは、利用者などからの停止要求を受けた場合、クライアントからの要求を以降受け付けない旨を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コマンドでサーバアプリケーションを終了する場合は、アプリケーション側で非活性化用のメソッドを発行する必要はありません。