bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > Tuxedo COBOL リファレンス > セクション 3(cbl) - COBOL 関数 |
Tuxedo COBOL リファレンス
|
名前
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 に次の値を設定します。
関連項目
TPACALL(3cbl)、TPBEGIN(3cbl)、TPRECV(3cbl)、TPRESUME(3cbl)
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |