Hitachi

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


CBLEERPC('R-SPEND ')

〈このページの構成〉

名称

RPC応答メッセージ送信の抑止

形式

PROCEDURE DIVISIONの指定

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

DATA DIVISIONの指定

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

機能

サービスプログラム終了時のRPC応答メッセージ送信を抑止します。抑止したRPC応答メッセージは,CBLEERPC('R-SEND ')を使って明示的に送信してください。トランザクションブランチ内ではRPC応答メッセージを抑止できません。

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

●データ名A

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

●データ名Z

0を設定します。

●データ名C

抑止識別子の設定方法を設定します。

VALUE 'S'

TP1/EEが抑止識別子を割り当てます。

VALUE 'U'

ユーザが抑止識別子を指定します。

●データ名D

データ名CにVALUE 'U'を設定した場合に,抑止識別子を設定します。抑止識別子は,1〜2147483647の値を指定してください。

●データ名E

RPC応答メッセージ抑止限界時間を設定します。指定できる範囲は-1,0〜65535です。

-1を指定した場合,RPC関連定義のrpc_reply_suspend_timeオペランドで指定した値が抑止限界時間になります。0を設定した場合は,抑止限界時間は無制限になります。

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

●データ名B

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

●データ名D

データ名CにVALUE 'S'を設定した場合に,抑止識別子が返されます。抑止識別子は,TP1/EEが自動的に割り当てた,プロセス内で一意の識別子です。

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

00001

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

00004

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

00005

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

00301

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

00302

トランザクションブランチ内でCBLEERPC('R-SPEND ')を呼び出しています。

非応答型RPCでCBLEERPC('R-SPEND ')を呼び出しています。

リモートAPI機能による自サービスグループへの代理実行要求中にCBLEERPC('R-SPEND ')を呼び出しています。

コネクションレス(UDPプロトコル)で起動されたトランザクション内で関数を発行しています。

RPCメッセージの永続化機能を有効にした状態で関数を発行しています。

00318

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

00338

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

00340

定義で指定した同時抑止最大数を超えました。

00342

RPC応答メッセージ送信は応答抑止済みです。

注意事項

  1. CBLEERPC('R-SPEND ')を呼び出したあと,RPC応答メッセージ抑止限界時間以内にCBLEERPC('R-SEND ')を呼び出さなかった場合,RPCエラー応答メッセージ「00307」が自動的に送信されます。そのあとでCBLEERPC('R-SEND ')を呼び出しても,CBLEERPC('R-SEND ')はエラーになります。

  2. 同一の抑止識別子を複数のCBLEERPC('R-SPEND ')で指定できます。この場合,一度のCBLEERPC('R-SEND ')で複数のRPC応答メッセージが送信されます。

  3. 非応答型RPCでCBLEERPC('R-SPEND ')を呼び出した場合は,エラーリターンします。

  4. 【XTC限定】コネクションレス(UDPプロトコル)で起動されたトランザクション内でこの関数を発行した場合は,エラーリターンします。