BEA Logo BEA Tuxedo Release 8.0

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

 

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

 


TPSUSPEND(3cbl)

名前

TPSUSPEND() - グローバル・トランザクションの一時停止

形式

01 TPTRXDEF-REC.
COPY TPTRXDEF.

01 TPSTATUS-REC.
COPY TPSTATUS.

CALL "TPSUSPEND" USING TPTRXDEF-REC TPSTATUS-REC.

機能説明

TPSUSPEND() は、呼び出し元のプログラムでアクティブなトランザクションを一時停止するために使用されます。 TPBEGIN() で始めたトランザクションは、 TPSUSPEND() で一時停止できます。 中断しているプログラム、あるいはその他のプログラムは、中断しているトランザクション上で TPRESUME() を利用して作業を再開することができます。 TPSUSPEND() が復帰すると、呼び出し元はトランザクション・モードではなくなります。 ただし、トランザクションが中断されている間は、そのトランザクションに関係のあるリソース (データベース・ロックなど) はすべてアクティブな状態に保たれます。 アクティブなトランザクションと同様、中断されたトランザクションにもトランザクションを最初にスタートする際に割り当てたトランザクション・タイムアウトの値が適用されます。

トランザクションを別のプロセスで再開するには、TPSUSPEND() の呼び出し元が明示的に TPBEGIN() を呼び出すことによってトランザクションを起動している必要があります。 TPSUSPEND() は、トランザクションの開始元以外のプロセスから呼び出すこともできます (たとえば、トランザクション・モードで要求を受信するサーバ)。 後者の場合、TPSUSPEND() の呼び出し元のみ TPRESUME() を呼び出してトランザクションを再開することができます。 このような方法が認められているのは、プロセスがトランザクションのスタートを一時中断し、そのトランザクションを終了する前に別のトランザクションをスタートさせ、作業を行えるようにするためです (エラーを記録するトランザクションを実行してから最初のトランザクションをロールバックする場合など)。

TPSUSPEND() は、一時停止するトランザクションの識別子を TRANID に設定します。

正常終了するためには、呼び出し元は TPSUSPEND() を実行する前に、サーバとの未終了のコミュニケーションを全て完了していなければなりません。 すなわち、呼び出し元は、呼び出し元のトランザクションに関連のある TPACALL() で送出した要求に対する応答を、すべて受け取っていなければなりません。 また、呼び出し元は、呼び出し元のトランザクションに関連のある会話サービスとの接続をすべてクローズしておくことも必要です (つまり、TPRECV()TPEV-SVCSUCC イベントを返していなければ なりません)。 いずれかの規則に従わない場合、TPSUSPEND() は異常終了し、呼び出し元の現在のトランザクションは一時停止せず、トランザクション通信ハンドルはすべて有効なままです。 呼び出し元のトランザクションとは関連のない通信ハンドルは、TPSUSPEND() の結果に関係なく、有効なままです。

戻り値

TPSUSPEND() は正常終了時には、[TPOK] を設定します。

エラー

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

[TPEABORT]

呼び出し元のアクティブなトランザクションがアボート (異常終了) されました。 このトランザクションに関連のある通信ハンドルは、有効ではなくなりました。

[TPEPROTO]

TPSUSPEND() が不正なコンテキストで呼ばれました (たとえば、呼び出し元がトランザクション・モードではない)。 トランザクション・モードに関する呼び出し元のステータスは変更されません。

[TPESYSTEM]

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

[TPEOS]

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

関連項目

TPACALL(3cbl)TPBEGIN(3cbl)TPRECV(3cbl)TPRESUME(3cbl)

 

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