Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引


CBLEERPC('R-SEND ')

〈このページの構成〉

名称

抑止していたRPC応答メッセージの送信

形式

PROCEDURE DIVISIONの指定

CALL 'CBLEERPC' USING 一意名1 一意名2 一意名3

DATA DIVISIONの指定

01 一意名1.
  02 データ名A PIC  X(8) VALUE 'R-SEND  '.
  02 データ名B PIC  X(5).
  02 FILLER    PIC  X(3).
  02 データ名Z  PIC S9(9) COMP VALUE ZERO.
01 一意名2.
  02 データ名C  PIC 9(9) COMP-X.
01 一意名3
  02 データ名D  PIC 9(9) COMP.
  02 データ名E  PIC X(n).

機能

CBLEERPC('R-SPEND ')で抑止していたRPC応答メッセージを送信します。

【TP1/FSP限定】RPC関連定義のrpc_output_messageオペランドが設定されている場合,またはユーザサービス関連定義のservice_attr定義コマンドが設定されている場合に,送信データをUAP履歴情報のデータ種別「OJ(出力メッセージ)」として取得します。

オペランドについては,TP1/FSPの関連ドキュメントを参照してください。

UAPで値を設定するデータ領域

●データ名A

抑止していたRPC応答メッセージの送信を示す要求コードを「VALUE 'R-SEND△△'」と設定します。

●データ名Z

次の値を設定します。

0

このAPIの延長でRPC応答メッセージを送信します。

1

このAPIを発行したトランザクションがコミット決着した時点でRPC応答メッセージを送信します。トランザクションがロールバック決着した場合はRPC応答メッセージを送信せずに破棄します。

2

このAPIを発行したトランザクションがコミット決着した時点でRPC応答メッセージを送信します。トランザクションがロールバック決着した場合は,RPCエラー応答メッセージ(EERPCER_TRNCHK_EXTEND)を送信します。

●データ名C

抑止識別子を設定します。CBLEERPC('R-SPEND ')で割り当てた抑止識別子を設定してください。

●データ名D

サービスプログラムからの応答を設定します。

●データ名E

サービスプログラムからの,実際の応答の長さを設定します(単位:バイト)。クライアントUAPから渡されたサービスの応答の長さ以下の数値を設定してください。

TP1/EEから値が返されるデータ領域

●データ名B

ステータスコードが,5けたの数字で返されます。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

00001

TP1/EEの環境下にありません。

00004

UOCから発行しているため,この機能は使用できません。

00005

オフラインバッチプロセスから発行しているため,この機能は使用できません。

00301

データ名に設定した値が間違っています。

00304

メモリが不足しました。

00305

コネクションの取得に失敗しました。

00306

ネットワークに障害が起こりました。

00318

システムエラーが起こりました。

00336

データ名Dに設定した値が間違っています。

00338

関数の呼び出し条件が不正です。

00339

サービスを要求されたSPPのメッセージ格納領域に十分な空きがないため,サービス要求を受け付けられません。

00341

データ名Cに設定した値は未登録か,すでにタイムアウトなどで応答が返されています。

注意事項

  1. 一つの抑止識別子で複数のRPC応答メッセージの送信を抑止している場合,一度のCBLEERPC('R-SEND ')で複数のRPC応答メッセージが送信されます。

  2. 【TP1/FSP限定】次のステータスコードの場合,出力メッセージ(OJ)は取得されません。

    00001,00004,00005,00301,00336

  3. CBLEERPC('R-SEND ')のデータ名Zに1を指定し,かつ,そのトランザクションがロールバック決着した場合,RPC応答メッセージは送信されません。そのため,RPC要求元のクライアントUAPは,応答待ち時間を指定している場合は応答待ちタイムアウト,応答待ち時間を指定していない場合は応答待ちを無限に続けます。

  4. CBLEERPC('R-SEND ')のデータ名Zに1または2を指定し,かつ,そのトランザクションがリラン後にコミット決着した場合,RPCエラー応答メッセージ(EERPCER_NO_BUFS_AT_SERVER)を送信します。ロールバック決着した場合,データ名Zに1を指定したときはRPC応答メッセージを破棄し,データ名Zに2を指定したときはRPCエラー応答メッセージ(EERPCER_TRNCHK_EXTEND)を送信します。

  5. CBLEETRN('ROLLMARK’)発行済みの状態で,CBLEERPC('R-SEND')のデータ名Zに1または2を指定しても,CBLEERPC('R-SEND')は正常に終了します。その後,トランザクションがロールバック決着した時点で,データ名Zに1を指定したときはRPC応答メッセージを破棄し,データ名Zに2を指定したときはRPCエラー応答メッセージ(EERPCER_TRNCHK_EXTEND)を送信します。