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 orbORBのリファレンス
戻り値ありません。
例外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 orbORBのリファレンス
戻り値ありません。
例外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_domainTSCDomainのリファレンス
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_domainTSCDomainのリファレンス
戻り値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_domainTSCDomainのリファレンス
戻り値TSCServerオブジェクトリファレンス
例外TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResourcesException

指定したTSCDomainを基に,自サーバへリクエストを振り分けるTSCデーモンのTSCServerのリファレンスを取得するメソッドです。

●static void releaseTSCClient(TSCClient_ptr tsc_client)

項目型・意味
引数TSCClient_ptr tsc_clientTSCClientオブジェクトリファレンス
戻り値ありません。
例外TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException

TSCClientを解放します。

●static void releaseTSCServer(TSCServer_ptr tsc_server)

項目型・意味
引数TSCServer_ptr tsc_serverTSCServerオブジェクトリファレンス
戻り値ありません。
例外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できます。
注※
複数のスレッド上から同時に呼び出すことはできますが,有効となるのは一つの呼び出しだけです。