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

Tuxedo COBOL リファレンス

 Previous Next Contents View as PDF  

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() を設定します。

正常終了時に LEN0 である場合は、サービスには着信データがなく、DATA-REC は変更されていません。入力時に LEN0 にすると、エラーになります。

正常終了時には、TPSVCDEF-REC 内の SERVICE-NAME は、要求元のプログラムがサービスの起動に使用したサービス名が入ります。

TPSVCSTART() の終了時の TPSVCDEF-REC 設定は、次のようになります。

TPREQRSP

サービスは、TPCALL() または TPACALL() を使用して起動されました。この設定は、TPCONV と相互に排他的です。

TPCONV

サービスは、TPCONNECT() を使用して起動されました。この会話用の通信ハンドルは、TPSVCDEF-REC 内の COMM-HANDLE に入っています。この設定は、TPREQRSP と相互に排他的です。

TPNOTRAN

サービス・ルーチンはトランザクション・モードにありません。この設定は、TPTRAN と相互に排他的です。

TPTRAN

サービス・ルーチンはトランザクション・モードにあります。この設定は、TPNOTRAN と相互に排他的です。

TPNOREPLY

サービス・ルーチンの呼び出し元プログラムは応答を期待していません。この設定は、TPREQRSP が設定されている場合のみ有効です。この設定は、TPREPLY と相互に排他的です。

TPREPLY

サービス・ルーチンの呼び出し元プログラムは応答を期待しています。この設定は、TPREQRSP が設定されている場合のみ有効です。この設定は、TPNOREPLY と相互に排他的です。

TPSENDONLY

サービスは、接続を介してのデータの送信のみ可能で、接続の他方の側のプログラムはデータの受信しかできないよう呼び出されます。この設定は、TPCONV が設定されている場合のみ有効です。この設定は、TPRECVONLY と相互に排他的です。

TPRECVONLY

サービスは、接続を介してのデータの受信のみ可能で、接続の他方の側のプログラムはデータの送信しかできないよう呼び出されます。この設定は、TPCONV が設定されている場合のみ有効です。この設定は、TPSENDONLY と相互に排他的です。

TPSVCDEF-REC 内の APPKEY は、アプリケーション側で定義した認証サービスが要求クライアント・プログラムに割り当てるアプリケーション・キーに設定します。このキー値は、このサービス・ルーチンの今回の呼び出し中になされたあらゆるサービス要求とともに渡されます。アプリケーション認証サービスを通らないクライアントを起動する場合には、APPKEY の値は -1 になります。このようなクライアントには、保護アプリケーションとの相互運用性を有する以前のリリース・レベルのクライアントがあります。

戻り値

TPSVCSTART() は正常終了時には、TP-STATUS に [TPOK] を設定します。着信メッセージの大きさが入力時に LEN に指定されたより大きい場合、TPTRUNCATE() が設定され、LEN 分のデータのみが DATA-REC に移動されて残りのデータは破棄されます。

エラー

次の条件が発生すると、TPSVCSTART() は異常終了し、TP-STATUS に次の値を設定します。

[TPEINVAL]

無効な引数が指定されました。

[TPEPROTO]

TPSVCSTART() が不正なコンテキストで呼ばれました。

[TPESYSTEM]

BEA Tuxedo システムのエラーが発生しました。エラーの正確な内容がログ・ファイルに書き込まれます。

[TPEOS]

オペレーティング・システムのエラーが発生しました。

関連項目

buildserver(1)TPBEGIN(3cbl)TPCALL(3cbl)TPCONNECT(3cbl)TPINITIALIZE(3cbl)TPOPEN(3cbl)TPSVRDONE(3cbl)TPSVRINIT(3cbl)

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy