TSCAdm(C++)
TSCAdmはシステム提供クラスです。
TSCAdmは,アプリケーションプログラムの初期化処理,TSCClientの取得,およびTSCServerの取得をするクラスです。
形式
class TSCAdm
{
public:
static void initServer(TSCInt argc,
TSCChar *argv[],
CORBA::ORB_ptr orb);
static void initClient(TSCInt argc,
TSCChar *argv[],
CORBA::ORB_ptr orb);
static void serverMainloop();
static void shutdown();
static void endServer();
static void endClient();
static TSCClient_ptr getTSCClient(TSCDomain_ptr tsc_domain,
TSCInt way);
static TSCClient_ptr getTSCClient(TSCDomain_ptr tsc_domain);
static TSCServer_ptr getTSCServer(TSCDomain_ptr tsc_domain);
static void releaseTSCClient(TSCClient_ptr tsc_client);
static void releaseTSCServer(TSCServer_ptr tsc_server);
static TSCInt get_status();
};
インクルードファイル
#include <tscadm.h>
メソッド
●static void initServer(TSCInt argc,
TSCChar *argv[],
CORBA::ORB_ptr orb)
項目 | 型・意味 | |
---|---|---|
引数 | TSCInt argc | コマンド引数の数 |
TSCChar *argv[] | コマンド引数 | |
CORBA::ORB_ptr orb | ORBのリファレンス | |
戻り値 | ありません。 | |
例外 | TSCBadInvOrderException TSCBadParamException TSCCommFailureException TSCInitializeException TSCInternalException TSCNoMemoryException TSCNoPermissionException TSCNoResourcesException |
サーバアプリケーションの初期化処理を実行します。このメソッドは,プロセスで1回だけ発行できます。TSCAdm::endServer()メソッド,またはTSCAdm::endClient()メソッドの発行によって終了処理したあとでも,このメソッドは発行できません。
このメソッドのargc引数にはプロセスのmain()関数の第1引数を,argv引数にはmain()関数の第2引数をそれぞれそのまま指定してください。プロセス開始時にコマンドラインで指定された情報を削除または変更してargc引数およびargv引数に指定すると,正しく動作しない場合があります。tscstartprcコマンドを使用して開始したサーバアプリケーションのコマンドラインには,tscstartprcコマンドに指定したコマンドライン引数がすべて渡されます。
●static void initClient(TSCInt argc,
TSCChar *argv[],
CORBA::ORB_ptr orb)
項目 | 型・意味 | |
---|---|---|
引数 | TSCInt argc | コマンド引数の数 |
TSCChar *argv[] | コマンド引数 | |
CORBA::ORB_ptr orb | ORBのリファレンス | |
戻り値 | ありません。 | |
例外 | TSCBadInvOrderException TSCBadParamException TSCCommFailureException TSCInitializeException TSCInternalException TSCNoMemoryException TSCNoPermissionException TSCNoResourcesException |
クライアントアプリケーションの初期化処理を実行します。TSCAdm::initServer()メソッドを発行すれば,TSCAdm::initClient()メソッドを発行しなくてもクライアントアプリケーションの機能を使用できるようになります。
このメソッドのargc引数にはプロセスのmain()関数の第1引数を,argv引数にはmain()関数の第2引数をそれぞれそのまま指定してください。プロセス開始時にコマンドラインで指定された情報を削除または変更してargc引数およびargv引数に指定すると,正しく動作しないことがあります。
このメソッドは,TSCAdm::endClient()メソッドの発行によって終了処理をした場合は再発行できますが,TSCAdm::endServer()メソッドの発行によって終了処理をしたあとは再発行できません。TSCAdm::endClient()メソッドの発行後にこのメソッドを再発行した場合,2回目以降の発行で指定したargc引数およびargv引数の値は無効となり,初回の発行で指定した値が有効になります。ただし,このメソッドを複数回発行するとクライアントアプリケーションの性能に影響を与えるため,推奨できません。
●static void serverMainloop()
項目 | 型・意味 |
---|---|
戻り値 | ありません。 |
例外 | TSCBadInvOrderException TSCCommFailureException |
リクエストを受信待ち状態にします。このメソッドはサーバアプリケーションでだけ発行できます。
●static void shutdown()
項目 | 型・意味 |
---|---|
戻り値 | ありません。 |
例外 | TSCBadInvOrderException |
リクエストの受信待ち状態を解除します。このメソッドはサーバアプリケーションでだけ発行できます。
●static void endServer()
項目 | 型・意味 |
---|---|
戻り値 | ありません。 |
例外 | TSCBadInvOrderException TSCInternalException TSCNoMemoryException |
サーバアプリケーションの終了処理を実行します。
このメソッドはプロセスで1回だけ発行できます。このメソッド発行後はそのプロセスでOTMの機能は使用しないでください。
●static void endClient()
項目 | 型・意味 |
---|---|
戻り値 | ありません。 |
例外 | TSCBadInvOrderException TSCInternalException TSCNoMemoryException |
クライアントアプリケーションの終了処理を実行します。
このメソッドの発行後は,そのプロセスでOTMまたはOTM - Clientの機能を使用できません。また,このメソッドで例外が発生した場合は,クライアントアプリケーションを終了させる必要があります。
●static TSCClient_ptr getTSCClient(TSCDomain_ptr tsc_domain,
TSCInt way)
項目 | 型・意味 | |
---|---|---|
引数 | TSCDomain_ptr tsc_domain | TSCDomainのリファレンス |
TSCInt way | 接続経路 | |
戻り値 | TSCClientオブジェクトリファレンス | |
例外 | TSCBadInvOrderException TSCBadParamException TSCCommFailureException TSCInternalException TSCNoMemoryException TSCNoPermissionException TSCNoResourcesException TSCTransientException |
指定したTSCDomainを基に,リクエストするTSCデーモンのTSCClientのリファレンスを取得するメソッドです。
wayには,接続経路として,次に示すどちらかを指定します。
ファイル検索方式でマルチノードリトライ接続を実行する場合,このメソッドに指定したTSCDomainおよびwayの組み合わせに一致する情報が,接続先情報ファイル中に記述されていなければなりません。一致する情報が接続先情報ファイルにない場合,TSCBadParamException例外が発生します。なお,ファイル検索方式でマルチノードリトライ接続を実行するには,アプリケーションプログラムの開始時に,次に示すようにコマンドオプション引数を指定します。
●static TSCClient_ptr getTSCClient(TSCDomain_ptr tsc_domain)
項目 | 型・意味 | |
---|---|---|
引数 | TSCDomain_ptr tsc_domain | TSCDomainのリファレンス |
戻り値 | TSCClientオブジェクトリファレンス | |
例外 | TSCBadInvOrderException TSCBadParamException TSCCommFailureException TSCInitializeException TSCInternalException TSCNoMemoryException TSCNoPermissionException TSCNoResourcesException TSCTransientException |
指定したTSCDomainを基に,リクエストするTSCデーモンのTSCClientのリファレンスを取得するメソッドです。接続経路には,アプリケーションプログラムの開始時に,コマンドオプション引数-TSCRequestWayに指定した値を使用します。なお,シングルスレッドライブラリを使用するアプリケーションプログラムの場合,TSCデーモンに直結したリクエストはできません。
ファイル検索方式でマルチノードリトライ接続を実行する場合,このメソッドに指定したTSCDomain,およびコマンドオプション引数-TSCRequestWayの組み合わせに一致する情報が,接続先情報ファイル中に記述されていなければなりません。一致する情報が接続先情報ファイルにない場合,TSCBadParamException例外が発生します。なお,ファイル検索方式でマルチノードリトライ接続を実行するには,アプリケーションプログラムの開始時に,次に示すようにコマンドオプション引数を指定します。
●static TSCServer_ptr getTSCServer(TSCDomain_ptr tsc_domain)
項目 | 型・意味 | |
---|---|---|
引数 | TSCDomain_ptr tsc_domain | TSCDomainのリファレンス |
戻り値 | TSCServerオブジェクトリファレンス | |
例外 | TSCBadInvOrderException TSCBadParamException TSCCommFailureException TSCInternalException TSCNoMemoryException TSCNoPermissionException TSCNoResourcesException |
指定したTSCDomainを基に,自サーバへリクエストを振り分けるTSCデーモンのTSCServerのリファレンスを取得するメソッドです。
●static void releaseTSCClient(TSCClient_ptr tsc_client)
項目 | 型・意味 | |
---|---|---|
引数 | TSCClient_ptr tsc_client | TSCClientオブジェクトリファレンス |
戻り値 | ありません。 | |
例外 | TSCBadInvOrderException TSCBadParamException TSCCommFailureException TSCInternalException TSCNoMemoryException TSCNoPermissionException |
TSCClientを解放します。
●static void releaseTSCServer(TSCServer_ptr tsc_server)
項目 | 型・意味 | |
---|---|---|
引数 | TSCServer_ptr tsc_server | TSCServerオブジェクトリファレンス |
戻り値 | ありません。 | |
例外 | TSCBadInvOrderException TSCBadParamException TSCCommFailureException TSCInternalException TSCNoMemoryException TSCNoPermissionException |
TSCServerを解放します。
●static TSCInt get_status()
項目 | 型・意味 |
---|---|
戻り値 | プロセスステータス |
運用管理で管理するプロセスステータスを返します。プロセスステータスを示す定数を表3-3,表3-4に示します。
表3-3 TSCAdmクラスで検出するクライアントアプリケーションのプロセスステータス(C++)
定数名 | 状態 | 内容 |
---|---|---|
TSCAdm::TSC_ADM_PRC_LIVING | オンライン稼働中 | initClient()を発行してから,終了要求を受け付けるまでの状態 |
TSCAdm::TSC_ADM_PRC_DYING | 正常終了処理中 | 終了要求を受け付けてから,endClient()を発行するまでの状態 |
TSCAdm::TSC_ADM_PRC_DEAD | 終了 | initClient()の発行以前,またはendClient()の発行以降の状態 |
クライアントアプリケーションの状態遷移については,マニュアル「TPBroker Object Transaction Monitor ユーザーズガイド」のクライアントアプリケーションの状態の検出に関する説明を参照してください。
表3-4 TSCAdmクラスで検出するサーバアプリケーションのプロセスステータス(C++)
定数名 | 状態 | 内容 |
---|---|---|
TSCAdm::TSC_ADM_PRC_LIVING | 正常開始処理中 | initServer()を発行してから,serverMainloop()を発行するまでの状態 |
TSCAdm::TSC_ADM_PRC_ACTIVE | オンライン稼働中 | serverMainloop()を発行してから,終了要求を受け付けるまでの状態 |
TSCAdm::TSC_ADM_PRC_DYING | 正常終了処理中 | 終了要求を受け付けてから,endServer()を発行するまでの状態 |
TSCAdm::TSC_ADM_PRC_DEAD | 終了 | initServer()の発行以前,またはendServer()の発行以降の状態 |
サーバアプリケーションの状態遷移については,マニュアル「TPBroker Object Transaction Monitor ユーザーズガイド」のサーバアプリケーションの状態の検出に関する説明を参照してください。
マルチスレッド環境でのメソッド呼び出し規則
マルチスレッド環境で,TSCAdmクラスのメソッドを呼び出す規則を次に示します。
メソッド | 複数のスレッド上からの同時呼び出し |
---|---|
initServer | できます。※ |
initClient | できます。※ |
serverMainloop | できます。※ |
shutdown | できます。※ |
endServer | できます。※ |
endClient | できます。※ |
getTSCClient | できます。 |
getTSCServer | できます。 |
releaseTSCClient | できます。 |
releaseTSCServer | できます。 |
get_status | できます。 |