bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo CORBA プログラミング・リファレンス

 Previous Next Contents View as PDF  

Server::release()

概要

アプリケーションが、データベースからのログオフ、既知のファクトリの登録の削除、リソースの割り当て解除などのアプリケーション固有のクリーンアップを実行できるようにします。

C++ バインディング

typedef Tobj_ServantBase* Tobj_Servant;
class Server {
public:
void release();
};

引数

特にありません。

例外

release() で例外が発生すると、TP フレームワークがその例外をキャッチします。例外が発生するたびに、エラー・メッセージが、次のようにユーザ・ログ (ULOG) ファイルに書き込まれます。

TobjS::ReleaseFailed

"TPFW_CAT:2: WARN: Exception in Server::release(): IDL:beasys.com/TobjS/ReleaseFailed:1.0. Reason = reason"

reason は、アプリケーション・コードで指定される文字列です。たとえば、次のように入力します。

Throw TobjS::ReleaseFailed(
"Couldn't unregister factory");

CORBA::Exception

"TPFW_CAT:2: WARN: Exception in Server::release(): exception. Reason = unknown"

exception は、発生した CORBA 例外のインターフェイス ID です。

その他の例外

"TPFW_CAT:2: WARN: Exception in Server::release(): unknown exception. Reason = unknown"

いずれの場合でも、例外の発生に続いてサーバが終了します。

説明

サーバ初期化の最初のステップとして呼び出される 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() を呼び出すすべてのサーバの後にシャットダウンする必要があります。

戻り値

特にありません。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy