BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   BEA Tuxedo COBOL リファレンス   |   先頭へ   |   前へ   |   次へ   |   目次

 


TPACALL(3cbl)

名前

TPACALL() - サービスへのメッセージの非同期送信を行うルーチン

形式

01 TPSVCDEF-REC.
COPY TPSVCDEF.

01
TPTYPE-REC.
COPY TPTYPE.

01
DATA-REC.
COPY User data.

01
TPSTATUS-REC.
COPY TPSTATUS.

CALL "TPACALL" USING
TPSVCDEF-REC TPTYPE-REC DATA-REC TPSTATUS-REC.

機能説明

TPACALL() は、TPSVCDEF-REC 内の SERVICE-NAME で指定されているサービスに要求メッセージを送ります。 この要求は、以前になされた TPSPRIO() の呼び出しで変更されていないかぎり、SERVICE-NAME に定義されている優先順位で送信されます。 DATA-REC は、送信するメッセージであり、TPTYPE-REC 内の LEN は、DATA-REC に入るデータの大きさを指定します。 ただし、DATA-REC が長さの指定を必要としないタイプのレコードである場合 LEN は無視されます (0 でかまいません)。 TPTYPE-REC 内の REC-TYPESPACES の場合は、DATA-REC および LEN は無視され、要求はデータ部なしで送信されます。 REC-TYPESTRING で、LEN0 の場合は、要求はデータ部なしで送信されます。 DATA-RECREC-TYPE および SUB-TYPE は、SERVICE-NAME が認識する REC-TYPE および SUB-TYPE のいずれかと一致しなければなりません。 トランザクション・モードにあるときに送信される要求ごとに、最終的には対応する応答が受信されなければなりません。

次に、TPSVCDEF-REC の有効な設定の一覧を示します。

TPNOTRAN

呼び出し元がトランザクション・モードにあり、この設定を使用していると、SERVICE-NAME が呼び出されても、呼び出し元のトランザクションの一部として実行されません。トランザクションをサポートしないサーバに SERVICE-NAME が属しており、呼び出し元がトランザクション・モードにある場合は、この設定を指定しなければなりません。 このフラグ設定を使用するトランザクション・モードの呼び出し元は、依然としてトランザクション・タイムアウトの対象となります (それ以外はなし)。 この設定を使用した状態で呼び出されたサービスが正常に実行できない場合、呼び出し元のトランザクションは影響を受けません。TPNOTRAN または TPTRAN が設定されていなければなりません。

TPTRAN

呼び出し元がトランザクション・モードにあり、この設定が使用されていると、SERVICE-NAME が呼び出されたときに、このプログラムは呼び出し元のトランザクションのために実行されます。 呼び出し元がトランザクション・モードにない場合、この設定は無視されます。TPNOTRAN または TPTRAN が設定されていなければなりません。

TPNOREPLY

応答を期待していないことを tpacall() に通知します。 TPNOREPLY が設定されると、このルーチンは、正常終了時には [TPOK] を返し、TPSVCDEF-REC 内の COMM-HANDLE0 を設定します。0 は、無効な通信ハンドルです。 呼び出し元がトランザクション・モードにある場合は、TPTRAN も設定するときには、この設定は使用できません。 TPNOREPLY または TPREPLY が設定されていなければなりません。

TPREPLY

応答を期待していることを TPACALL() に通知します。 TPREPLY が設定されると、このルーチンは、正常終了時には [TPOK] を返し、COMM-HANDLE に有効な通信ハンドルを設定します。 呼び出し元がトランザクション・モードにあり、TPTRAN がセットされている場合は、このフラグを設定する必要があります。 TPNOREPLY または TPREPLY が設定されていなければなりません。

TPNOBLOCK

この要求は、ブロッキング条件が存在する場合 (たとえば、メッセージの送信先である内部バッファがいっぱいの場合など) には、送信されません。TPNOBLOCK または TPBLOCK が設定されていなければなりません。

TPBLOCK

TPBLOCK がセットされ、ブロッキング条件が存在する場合は、呼び出し元はブロッキング条件が消失するか、またはタイムアウト (トランザクション・タイムアウト、またはブロッキング・タイムアウト) が発生するまでブロックします。TPNOBLOCK または TPBLOCK が設定されていなければなりません。

TPNOTIME

この設定は、呼び出し元が無制限にブロックでき、ブロッキング・タイムアウトの影響を受けないようにすることを指定します。 トランザクション・タイムアウトは引き続き発生する可能性があります。TPNOTIME または TPTIME が設定されていなければなりません。

TPTIME

このフラグは、ブロッキング条件が存在し、ブロッキング時間に達すると、呼び出し元がブロッキング・タイムアウトを受け取ることを示します。TPNOTIME または TPTIME が設定されていなければなりません。

TPSIGRSTRT

ルーチン内部のシステム・コールがシグナルによって中断された場合、中断されたシステム・コールは再発行されます。 TPNOSIGRSTRT または TPSIGRSTRT が設定されていなければなりません。

TPNOSIGRSTRT

ルーチン内部のシステム・コールがシグナルによって中断された場合、中断されたシステム・コールは再開されず、この呼び出しは異常終了します。 TPNOSIGRSTRT または TPSIGRSTRT が設定されていなければなりません。

戻り値

TPACALL() は正常終了時には、TP-STATUS に [TPOK] を設定します。 また、TPSVCDEF-RECTPREPLY が設定されている場合には、TPACALL() は、COMM-HANDLE に通信ハンドルを返します。このハンドルは、送信した要求に対する応答を受信する際に使用できる有効なハンドルです。

エラー

次の条件が発生すると、TPACALL() は異常終了し、TP-STATUS に次の値を設定します。特に説明がなければ、この障害は呼び出し元のトランザクションには影響しません。

[TPEINVAL]

無効な引数が指定されました (TPSVCDEF-REC の設定が無効など)。

[TPENOENT]

存在しないか、要求/応答型サービスでないため (すなわち、会話サービス)、SERVICE-NAME に送信できません。

[TPEITYPE]

REC-TYPE および SUB-TYPE が、SERVICE-NAME が受け付けるタイプおよびサブタイプではありません。

[TPELIMIT]

未終了の非同期要求が、保持できる最大数に達したため、呼び出し元の要求が送信できませんでした。

[TPETRAN]

SERVICE-NAME は、トランザクションをサポートしていないサーバに属していて、TPTRAN が設定されていました。

[TPETIME]

タイムアウトが発生しました。 呼び出し元がトランザクション・モードの場合は、トランザクション・タイムアウトが発生し、そのトランザクションは「アボートのみ」とマークされます。トランザクション・モードでない場合、ブロッキング・タイムアウトが発生し、TPBLOCKTPTIME の両方が指定されていました。 トランザクション・タイムアウトが発生すると、トランザクションがアボートされない限り、新しいリクエストを送信したり、未処理の応答を受信しようとしても、[TPETIME] が発生して失敗します。

また、[TPETIME] は、現在 TX_ROLLBACKONLY 状態のトランザクション内でサービスが異常終了したことを示すこともあります。 トランザクションが TX_ROLLBACKONLY 状態である限り、TPACALL() を呼び出すと必ず [TPETIME] が返されます。

[TPEBLOCK]

ブロッキング条件が存在し、TPNOBLOCK が指定されていました。

[TPGOTSIG]

シグナルが受信され、TPNOSIGRSTRT がセットされていました。

[TPEPROTO]

TPACALL() の呼び出し方法が不適切です。

[TPESYSTEM]

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

[TPEOS]

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

関連項目

TPCALL(3cbl)TPCANCEL(3cbl)TPGETRPLY(3cbl)TPGPRIO(3cbl)TPSPRIO(3cbl)

 

先頭へ戻る 前のトピックへ 次のトピックへ