分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/OSAS-NIF編

[目次][用語][索引][前へ][次へ]

3.2.6 CBLDCMCF('SEND ')メッセージの送信

<この項の構成>
(1) 形式
(2) 機能
(3) UAPで値を設定するデータ領域
(4) OpenTP1から値が返されるデータ領域
(5) ステータスコード

(1) 形式

PROCEDURE DIVISION の指定
 
CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3
 
DATA DIVISION の指定
01 一意名1.
   02 データ名A  PIC X(8) VALUE 'SEND  '.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名C  PIC X(4) VALUE SPACE.
   02 データ名D  PIC X(4) VALUE SPACE.
   02 データ名E  PIC 9(8).
   02 データ名F  PIC 9(8).
   02 データ名G  PIC 9(9) COMP VALUE ZERO.
   02 データ名H  PIC X(4).
   02 データ名I  PIC X(4) VALUE SPACE.
   02 データ名J  PIC X(4).
   02 データ名K  PIC X(4).
   02 データ名L  PIC X(8) VALUE SPACE.
   02 データ名M1 PIC X(4) VALUE SPACE.
   02 データ名M2 PIC X(8) VALUE SPACE.
   02 データ名M3 PIC X(4) VALUE SPACE.
   02 データ名M4 PIC 9(9) COMP VALUE ZERO.
   02 データ名M5 PIC 9(9) COMP VALUE ZERO.
   02 データ名M6 PIC X(1) VALUE SPACE.
   02 データ名M7 PIC X(1).
   02 データ名N  PIC X(14) VALUE LOW-VALUE.
01 一意名2.
   02 データ名O  PIC X(4) VALUE 'OUT '.
   02 データ名P  PIC X(8).
   02 データ名Q  PIC X(8) VALUE SPACE.
   02 データ名R  PIC X(8) VALUE SPACE.
   02 データ名T  PIC X(28) VALUE LOW-VALUE.
01 一意名3.
 02 データ名U  PIC 9(x) COMP.
 02 データ名V  PIC X(x).
 02 データ名W  PIC X(n).
 

(2) 機能

MCFで管理する論理端末に送信するメッセージのうち,一つのセグメントを送信要求します。必要なセグメントの数だけ,CBLDCMCF('SEND△△△△')を発行することによって,一つの論理メッセージを送信できます。

送信するセグメントの領域(一意名3で示す領域)の形式を次に示します。

[図データ]

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

(4) OpenTP1から値が返されるデータ領域

(5) ステータスコード

ステータスコード 意味
00000 正常に終了しました。
71002 メッセージキューへの出力処理中に障害が発生しました。
メッセージキューが閉塞されています。
メッセージキューが割り当てられていません。
データ名Uに32000バイトを超える値を設定しています。
MCFが終了処理中のため,メッセージの送信を受け付けられません。
71003 メッセージキューが満杯です。
71004 メッセージを格納するバッファをメモリ上に確保できませんでした。
71108 メッセージを送信しようとしましたが,送信先の管理テーブルを確保できませんでした。
プロセスのローカルメモリが不足しています。
72000 <MHPの実行でリターンした場合>
先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に,CBLDCMCF('SEND△△△△')を呼び出しています。
<SPPの実行でリターンした場合>
トランザクションでないSPPの処理から,CBLDCMCF('SEND△△△△')を呼び出しています。
72001 データ名Pに設定した論理端末名称が間違っています。
CBLDCMCF('SEND△△△△')を呼び出せない論理端末を設定しています。
72005 先頭セグメントまたは中間セグメントを送信するCBLDCMCF('SEND△△△△')で,データ名Uに0(バッファ形式1)または4以下(バッファ形式2)の値を設定しています。
72016 データ名Jに設定した値が間違っています。
データ名M1に設定した値が間違っています。
データ名M7に設定した値が間違っています。
データ名N,データ名Tに設定した値が間違っています。
72017 データ名Kに設定した値が間違っています。
72019 データ名M6に設定した値が間違っています。
72020 データ名Iに設定した値が間違っています。
72024 データ名Oに設定した値が間違っています。
72026 データ名Hに設定した値が間違っています。
72028 データ名Aに設定した値が間違っています。
72041 単一セグメントを送信するCBLDCMCF('SEND△△△△')で,データ名Uに0(バッファ形式1の場合)または4以下(バッファ形式2の場合)の値を設定しています。
上記以外 プログラムの破壊などによる,予期しないエラーが発生しました。