bea ホーム | 製品 | dev2dev | support | askBEA |
|
e-docs > Tuxedo > Tuxedo CORBA プログラミング・リファレンス > TP フレームワーク |
Tuxedo CORBA プログラミング・リファレンス |
概要
アプリケーションが、データベースからのログオフ、既知のファクトリの登録の削除、リソースの割り当て解除などのアプリケーション固有のクリーンアップを実行できるようにします。
C++ バインディング
typedef Tobj_ServantBase* Tobj_Servant;
class Server {
public:
void release();
};
引数
特にありません。
例外
release() で例外が発生すると、TP フレームワークがその例外をキャッチします。例外が発生するたびに、エラー・メッセージが、次のようにユーザ・ログ (ULOG) ファイルに書き込まれます。
"Couldn't unregister factory");
いずれの場合でも、例外の発生に続いてサーバが終了します。
説明
サーバ初期化の最初のステップとして呼び出される release コールバック・メソッドを使用すると、アプリケーションがアプリケーション固有のクリーンアップを実行できます。ユーザは、仮想関数の定義を上書きしなければなりません。
通常、このメソッドでは以下の処理が実行されます。
このメソッドは通常、管理者またはオペレータからの tmshutdown コマンドに応答して呼び出されます。
TP フレームワークには、Server::release() のデフォルト・インプリメンテーションが用意されています。デフォルト・インプリメンテーションは、サーバ用の XA リソース・マネージャをクローズします。この処理は、UBBCONFIG ファイルでサーバのグループに対してデフォルト設定されている CLOSEINFO を使用する tx_close() 呼び出しによって行われます。
アプリケーションでは、オープンされている XA リソース・マネージャをクローズする必要があります。この処理には、以下のいずれかのメソッドを呼び出します。
注記 INS ブートストラップ処理メカニズムを使用して初期オブジェクト・リファレンスを取得する場合は、TP::close_xa_rm() メソッドを使用する必要があります。
注記 サーバが tmshutdown(1) コマンドからシャットダウン要求を受信すると、ほかのリモート・オブジェクトからの要求を受信できなくなります。サーバをシャットダウンする場合、順序を考慮しなければならないことがあります。たとえば、サーバ 1 の Server::release() メソッドから サーバ 2 にあるオブジェクトのメソッドにアクセスする必要がある場合、サーバ 1 をシャットダウンしてから、サーバ 2 をシャットダウンしなければなりません。特に、TP::unregister_factory() メソッドは、別のサーバにある FactoryFinder Registrar オブジェクトにアクセスします。通常、TP::unregister_factory() メソッドは release() メソッドから呼び出されるので、FactoryFinder サーバは、Server::release() メソッドで TP::unregister_factory() を呼び出すすべてのサーバの後にシャットダウンする必要があります。
戻り値
特にありません。