|
|
TPSVCSTART(3cbl)
名前
TPSVCSTART() - BEA Tuxedo ATMI のサービスの開始
形式
01 TPSVCDEF-REC.
COPY TPSVCDEF.
01 TPTYPE-REC.
COPY TPTYPE.
01 DATA-REC.
COPY User data.
01 TPSTATUS-REC.
COPY TPSTATUS.
CALL "TPSVCSTART" USING TPSVCDEF-REC TPTYPE-REC DATA-REC TPSTATUS-REC.
機能説明
TPSVCSTART() は、サービス・ルーチンをコーディングする際に最初に呼び出す BEA Tuxedo ATMI のルーチンです。 実際、サービス・ルーチン内で TPSVCSTART() より先にほかの呼び出しを行うと、エラーになります。 TPVCSTART() は、サービスのパラメータおよびデータを取り出すために使用されます。 このルーチンは、ルーチン TPCALL() または TPACALL() を介して要求を受け取るサービス、およびルーチン TPCONNECT()、TPSEND() および TPRECV() を介して通信を行う会話サービスの両方に使用できます。
ルーチン TPCALL()、TPACALL() または TPFORWAR() による要求を処理するサービス・ルーチンは、最大 1 つの着信メッセージを受け取り (TPSVCSTART が正常に終了したとき)、最大 1 つの応答を送ります (TPRETURN() によってサービス・ルーチンを終了したとき)。
一方、会話サービスは、最大 1 つの着信メッセージとオープン接続の参照手段とともに、接続要求により呼び出されます。 TPSVCSTART() が正常に終了すると、接続元プログラムまたは会話サービスは、アプリケーションで定義されるとおりにデータの送受信を行うことができます この接続は半二重方式で確立されます。つまり、接続の一方の側は、他方から明示的に制御を渡されるまで、会話を制御することはできません (データを送信できません)。
トランザクションとの関連で言えば、サービス・ルーチンはトランザクション・モードで呼び出されると、1 つのトランザクションにしか参加できません。 サービス・ルーチン作成者側から見るかぎり、トランザクションはサービス・ルーチンから返った時点で終了します。 サービス・ルーチンは、トランザクション・モードで呼び出されなかった場合、TPBEGIN()、TPCOMMIT() および TPABORT() を使用して必要な回数だけトランザクションを起動できます。 ただし、トランザクションの終了には TPRETURN() を使用しません。 したがって、サービス・ルーチン内から起動された未終了のトランザクションについて、TPRETURN() を呼び出すと、エラーになります。
DATA-REC は、サービスのデータが読み込まれる場所を指定し、TPTYPE-REC 内の LEN は、DATA-REC に移動される最大バイト数を示します。 TPSVCSTART の正常終了時には、DATA-REC に移動された実際のバイト数が LEN に入ります。 TPTYPE-REC 内の REC-TYPE および SUB-TYPE にはそれぞれデータのタイプおよびサブタイプが入ります。 メッセージが DATA-REC より大きい場合は、DATA-REC にはこのレコードに入るバイト数分のみが入ります。メッセージの残りは破棄され、TPSVCSTART() は TPTRUNCATE() を設定します。
正常終了時に LEN が 0 である場合は、サービスには着信データがなく、DATA-REC は変更されていません。 入力時に LEN を 0 にすると、エラーになります。
正常終了時には、TPSVCDEF-REC 内の SERVICE-NAME は、要求元のプログラムがサービスの起動に使用したサービス名が入ります。
TPSVCSTART() の終了時の TPSVCDEF-REC 設定は、次のようになります。
TPSVCDEF-REC 内の APPKEY は、アプリケーション側で定義した認証サービスが要求クライアント・プログラムに割り当てるアプリケーション・キーに設定します。 このキー値は、このサービス・ルーチンの今回の呼び出し中になされたあらゆるサービス要求とともに渡されます。 アプリケーション認証サービスを通らないクライアントを起動する場合には、APPKEY の値は-1 になります。 このようなクライアントには、保護アプリケーションとの相互運用性を有する以前のリリース・レベルのクライアントがあります。
戻り値
TPSVCSTART() は正常終了時には、TP-STATUS に [TPOK] を設定します。 着信メッセージの大きさが入力時に LEN に指定されたより大きい場合、TPTRUNCATE() が設定され、LEN 分のデータのみが DATA-REC に移動されて残りのデータは破棄されます。
エラー
次の条件が発生すると、TPSVCSTART() は異常終了し、TP-STATUS に次の値を設定します。
関連項目
buildserver(1)、TPBEGIN(3cbl)、TPCALL(3cbl)、TPCONNECT(3cbl)、TPINITIALIZE(3cbl)、TPOPEN(3cbl)、TPSVRDONE(3cbl)、TPSVRINIT(3cbl)
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|