トランザクショナル分散オブジェクト基盤 TPBroker Object Transaction Monitor プログラマーズガイド

[目次][索引][前へ][次へ]

TSCAdm(COBOL)

TSCAdmはシステム提供クラスです。

TSCAdmは,アプリケーションの初期化処理,TSCClientの取得,およびTSCServerの取得をするクラスです。

形式

 
CALL 'TSCAdm-initServer' USING
                  BY REFERENCE ARGC
                  BY REFERENCE ARGV
                  BY VALUE     ORB-PTR
                  BY REFERENCE CORBA-ENVIRONMENT.
CALL 'TSCAdm-initClient' USING
                  BY REFERENCE ARGC
                  BY REFERENCE ARGV
                  BY VALUE     ORB-PTR
                  BY REFERENCE CORBA-ENVIRONMENT.
 
CALL 'TSCAdm-serverMainloop' USING
                  BY REFERENCE CORBA-ENVIRONMENT.
CALL 'TSCAdm-shutdown' USING
                  BY REFERENCE CORBA-ENVIRONMENT.
 
CALL 'TSCAdm-endServer' USING
                  BY REFERENCE CORBA-ENVIRONMENT.
CALL 'TSCAdm-endClient' USING
                  BY REFERENCE CORBA-ENVIRONMENT.
 
CALL 'TSCAdm-getTSCClient' USING
                  BY VALUE     DOMAIN-PTR
                  BY VALUE     WAY
                  BY REFERENCE CORBA-ENVIRONMENT
              RETURNING        CLIENT-PTR.
CALL 'TSCAdm-getTSCServer' USING
                  BY VALUE     DOMAIN-PTR
                  BY REFERENCE CORBA-ENVIRONMENT
              RETURNING        SERVER-PTR.
 
CALL 'TSCAdm-releaseTSCClient' USING
                  BY VALUE     CLIENT-PTR
                  BY REFERENCE CORBA-ENVIRONMENT.
CALL 'TSCAdm-releaseTSCServer' USING
                  BY VALUE     SERVER-PTR
                  BY REFERENCE CORBA-ENVIRONMENT.
 
CALL 'TSCAdm-get_status' USING
                  BY REFERENCE CORBA-ENVIRONMENT.
              RETURNING        STATUS.

副プログラム

●CALL 'TSCAdm-initServer' USING

            BY REFERENCE      ARGC
            BY REFERENCE      ARGV
            BY VALUE          ORB-PTR
            BY REFERENCE      CORBA-ENVIRONMENT.
 
項目 型・(入出力の区別)意味
引数 BY REFERENCE ARGC PIC S9(9) COMP (入力)コマンド引数配列の要素数
BY REFERENCE ARGV USAGE POINTER (入力)コマンド引数配列のポインタ
BY VALUE ORB-PTR USAGE POINTER (入力)ORBのポインタ
BY REFERENCE CORBA-ENVIRONMENT (出力)例外情報集団項目
戻り値 ありません。
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInitializeException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResourcesException

サーバアプリケーションの初期化処理を実行します。

この副プログラムは,プロセスで1回だけ発行できます。TSCAdm-endServer副プログラム,またはTSCAdm-endClient副プログラムの発行によって終了処理したあとでも,この副プログラムは発行できません。

この副プログラムのARGCにはプロセスのMAINとなる副プログラムの第1引数を,ARGVにはプロセスのMAINとなる副プログラムの第2引数をそれぞれそのまま指定してください。プロセス開始時にコマンドラインで指定された情報を削除または変更してARGCおよびARGVに指定すると,正しく動作しない場合があります。tscstartprcコマンドを使用して開始したサーバアプリケーションのコマンドラインには,tscstartprcコマンドに指定したコマンドライン引数がすべて渡されます。

●CALL 'TSCAdm-initClient' USING

            BY REFERENCE        ARGC
            BY REFERENCE        ARGV
            BY VALUE            ORB-PTR
            BY REFERENCE        CORBA-ENVIRONMENT.
 
項目 型・(入出力の区別)意味
引数 BY REFERENCE ARGC PIC S9(9) COMP (入力)コマンド引数配列の要素数
BY REFERENCE ARGV USAGE POINTER (入力)コマンド引数配列のポインタ
BY VALUE ORB-PTR USAGE POINTER (入力)ORBのポインタ
BY REFERENCE CORBA-ENVIRONMENT (出力)例外情報集団項目
戻り値 ありません。
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInitializeException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResourcesException

クライアントアプリケーションの初期化処理を実行します。

この副プログラムのARGCにはプロセスのMAINとなる副プログラムの第1引数を,ARGVにはプロセスのMAINとなる副プログラムの第2引数をそれぞれそのまま指定してください。プロセス開始時にコマンドラインで指定された情報を削除または変更してARGCおよびARGVに指定すると,正しく動作しない場合があります。

この副プログラムは,TSCAdm-endClient副プログラムの発行によって終了処理をした場合は再発行できますが,TSCAdm-endServer副プログラムの発行によって終了処理をしたあとは再発行できません。TSCAdm-endClient副プログラムの発行後にこの副プログラムを再発行した場合,2回目以降の発行で指定したARGCおよびARGVの値は無効となり,初回の発行で指定した値が有効になります。ただし,この副プログラムを複数回発行するとクライアントアプリケーションの性能に影響を与えるため,推奨できません。

●CALL 'TSCAdm-serverMainloop' USING

            BY REFERENCE      CORBA-ENVIRONMENT.
 
項目 型・(入出力の区別)意味
引数 BY REFERENCE CORBA-ENVIRONMENT (出力)例外情報集団項目
戻り値 ありません。

リクエストを受信待ち状態にします。この副プログラムはサーバアプリケーションでだけ発行できます。

●CALL 'TSCAdm-shutdown' USING

            BY REFERENCE      CORBA-ENVIRONMENT.
 
項目 型・(入出力の区別)意味
引数 BY REFERENCE CORBA-ENVIRONMENT (出力)例外情報集団項目
戻り値 ありません。

リクエストの受信待ち状態を解除します。この副プログラムはサーバアプリケーションでだけ発行できます。

●CALL 'TSCAdm-endServer' USING

           BY REFERENCE      CORBA-ENVIRONMENT.
 
項目 型・(入出力の区別)意味
引数 BY REFERENCE CORBA-ENVIRONMENT (出力)例外情報集団項目
戻り値 ありません。

サーバアプリケーションの終了処理を実行します。

この副プログラムはプロセスで1回だけ発行できます。この副プログラム発行後はそのプロセスでOTMの機能は使用しないでください。

●CALL 'TSCAdm-endClient' USING

            BY REFERENCE      CORBA-ENVIRONMENT.
 
項目 型・(入出力の区別)意味
引数 BY REFERENCE CORBA-ENVIRONMENT (出力)例外情報集団項目
戻り値 ありません。

クライアントアプリケーションの終了処理を実行します。

この副プログラムの発行後は,そのプロセスでOTMまたはOTM - Clientの機能を使用できません。また,この副プログラムで例外が発生した場合は,クライアントアプリケーションを終了させる必要があります。

●CALL 'TSCAdm-getTSCClient' USING

            BY VALUE          DOMAIN-PTR
            BY VALUE          WAY
            BY REFERENCE      CORBA-ENVIRONMENT
         RETURNING            CLIENT-PTR.
 
項目 型・(入出力の区別)意味
引数 BY VALUE DOMAIN-PTR USAGE POINTER (入力)TSCドメインのポインタ
BY REFERENCE CORBA-ENVIRONMENT (出力)例外情報集団項目
戻り値 CLIENT-PTR USAGE POINTER TSCClientオブジェクト
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResourcesException
TSCTransientException

指定したTSCDomainを基に,リクエストするTSCデーモンのTSCClientのリファレンスを取得します。

WAYには,接続経路として,次に示すどれかを指定します。

ファイル検索方式でマルチノードリトライ接続を実行する場合,この副プログラムに指定したTSCDomainおよびWAY(WAYが"2"の場合はコマンドオプション引数-TSCRequestWayの指定値)の組み合わせに一致する情報が,接続先情報ファイル中に記述されていなければなりません。一致する情報が接続先情報ファイルにない場合,TSCBadParamException例外が発生します。なお,ファイル検索方式でマルチノードリトライ接続を実行するには,アプリケーションプログラムの開始時に,次に示すようにコマンドオプション引数を指定します。

●CALL 'TSCAdm-getTSCServer' USING

            BY VALUE          DOMAIN-PTR
            BY REFERENCE      CORBA-ENVIRONMENT
         RETURNING            SERVER-PTR.
 
項目 型・(入出力の区別)意味
引数 BY VALUE DOMAIN-PTR USAGE POINTER (入力)TSCドメインのポインタ
BY REFERENCE CORBA-ENVIRONMENT (出力)例外情報集団項目
戻り値 SERVER-PTR USAGE POINTER サーバオブジェクトのポインタ
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException
TSCNoResourcesException

指定したTSCDomainを基に,自サーバへリクエストを振り分けるTSCデーモンのTSCServerのポインタを取得します。

●CALL 'TSCAdm-releaseTSCClient' USING

            BY VALUE          CLIENT-PTR
            BY REFERENCE      CORBA-ENVIRONMENT.
 
項目 型・(入出力の区別)意味
引数 BY VALUE CLIENT-PTR USAGE POINTER (入力)TSCClientオブジェクト
BY REFERENCE CORBA-ENVIRONMENT (出力)例外情報集団項目
戻り値 ありません。
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException

TSCClientを解放します。

●CALL 'TSCAdm-releaseTSCServer' USING

            BY VALUE          SERVER-PTR
            BY REFERENCE      CORBA-ENVIRONMENT.
 
項目 型・(入出力の区別)意味
引数 BY VALUE SERVER-PTR USAGE POINTER (入力)TSCServerオブジェクト
BY REFERENCE CORBA-ENVIRONMENT (出力)例外情報集団項目
戻り値 ありません。
例外 TSCBadInvOrderException
TSCBadParamException
TSCCommFailureException
TSCInternalException
TSCNoMemoryException
TSCNoPermissionException

TSCServerを解放します。

●CALL 'TSCAdm-get_status'

            BY REFERENCE      CORBA-ENVIRONMENT
         RETURNING           STATUS.
 
項目 型・(入出力の区別)意味
引数 BY REFERENCE CORBA-ENVIRONMENT (出力)例外情報集団項目
戻り値 STATUS PIC S9(9) COMP プロセスステータス

運用管理で管理するプロセスステータスを返します。プロセスステータスを示す定数を表7-4,表7-5に示します。

表7-4 TSCAdmクラスで検出するクライアントアプリケーションのプロセスステータス(COBOL)

定数 状態 内容
0 オンライン稼働中 TSCAdm-initClientを発行してから,終了要求を受け付けるまでの状態
2 正常終了処理中 終了要求を受け付けてから,TSCAdm-endClientを発行するまでの状態
3 終了 TSCAdm-initClientの発行以前,またはTSCAdm-endClientの発行以降の状態

クライアントアプリケーションの状態遷移については,マニュアル「TPBroker Object Transaction Monitor ユーザーズガイド」のクライアントアプリケーションの状態の検出に関する説明を参照してください。

表7-5 TSCAdmクラスで検出するサーバアプリケーションのプロセスステータス(COBOL)

定数 状態 内容
0 正常開始処理中 TSCAdm-initServerを発行してから,TSCAdm-serverMainloopを発行するまでの状態
1 オンライン稼働中 TSCAdm-serverMainloopを発行してから,終了要求を受け付けるまでの状態
2 正常終了処理中 終了要求を受け付けてから,TSCAdm-endServerを発行するまでの状態
3 終了 TSCAdm-initServerの発行以前,またはTSCAdm-endServerの発行以降の状態

サーバアプリケーションの状態遷移については,マニュアル「TPBroker Object Transaction Monitor ユーザーズガイド」のサーバアプリケーションの状態の検出に関する説明を参照してください。

マルチスレッド環境での副プログラム呼び出し規則

マルチスレッド環境で,TSCAdmクラスのインスタンスの副プログラムを呼び出す規則を次に示します。

副プログラム 複数のスレッド上からの同時呼び出し
initServer できます。
initClient できます。
serverMainloop できます。
shutdown できます。
endServer できます。
endClient できます。
getTSCClient できます。
getTSCServer できます。
releaseTSCClient できます。
releaseTSCServer できます。
get_status できます。

注※
複数のスレッド上から同時に呼び出すことはできますが,有効となるのは一つの呼び出しだけです。