Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/User Agent編


CBLDCMCF('REPLY ') − 応答メッセージの送信(COBOL言語)

〈このページの構成〉

形式

PROCEDURE DIVISIONの指定

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

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8)  VALUE 'REPLY   '.
   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)  VALUE SPACE.
   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 SPACE.
   02 データ名P  PIC X(8)  VALUE SPACE.
   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).

機能

問い合わせをしたシステムへ送る応答メッセージのうち,一つのセグメントを送信します。セグメントの数だけCBLDCMCF('REPLY△△△')を呼び出すと,一つの論理メッセージを送信できます。

送信できるメッセージの一つのセグメントの最大長は,32000バイトです。

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

[図データ]

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

●データ名A

応答メッセージの送信を示す要求コード「VALUE 'REPLY△△△'」を設定します。

●データ名C,データ名D

空白を設定します。

●データ名E,データ名F

MCFで使用する領域です。

●データ名G

0を設定します。

●データ名H

送信するセグメントを設定します。次のどちらかを設定します。

VALUE 'ESI△'

先頭セグメントまたは中間セグメントを送信する場合に設定します。

VALUE 'EMI△'

最終セグメントを送信する場合や,論理メッセージが単一セグメントの場合に設定します。

メッセージの送信の終了を連絡するために,最後は必ずこの値を設定してください。

●データ名I,データ名J

空白を設定します。

●データ名K

出力通番を付けるかどうかを設定します。

VALUE 'SEQ△'

出力通番を付ける場合に設定します。

ただし,非応答型のアプリケーションの場合は,VALUE 'SEQ△'を指定しても,MCFは応答メッセージに出力通番を付けません。

VALUE 'NSEQ'

出力通番を付けない場合に設定します。

空白

省略されたものとして,「VALUE 'NSEQ'」(出力通番は付けない)が設定されます。

●データ名L,データ名M1,データ名M2,データ名M3

空白を設定します。

●データ名M4,データ名M5

0を設定します。

●データ名M6

空白を設定します。

●データ名M7

使用するバッファ形式を設定します。

VALUE '1'

バッファ形式1を使用する場合に設定します。

VALUE '2'

バッファ形式2を使用する場合に設定します。

空白

省略されたものとして,「VALUE '1'」(バッファ形式1)が設定されます。

●データ名N

MCFで使用する領域です。

●データ名O,データ名P,データ名Q,データ名R

空白を設定します。

●データ名T

MCFで使用する領域です。

●データ名U

【バッファ形式1の場合】 PIC 9(9)

送信するセグメントの長さを設定します。先頭セグメントの送信後,メッセージの送信の終了を連絡する場合で,セグメントの内容がないときは,0を設定してください。

【バッファ形式2の場合】 PIC 9(4)

送信するセグメントの長さ+4を設定します。先頭セグメントの送信後,メッセージの送信の終了を連絡する場合で,セグメントの内容がないときは,4を設定してください。

●データ名V

【バッファ形式1の場合】 PIC X(8)

【バッファ形式2の場合】 PIC X(2)

MCFで使用する領域です。

●データ名W

送信するセグメントの内容を設定します。一つのセグメントで32000バイトまで送信できます。

先頭セグメントの送信後,メッセージの送信の終了を連絡する場合で,セグメントの内容がないときも,必ず設定してください。

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

●データ名B

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

71002

メッセージキューへの出力処理中に障害が発生しました。

メッセージキューが閉塞されています。

メッセージキューが割り当てられていません。

バッファ形式1の場合はデータ名Uに32000バイトを超える値を設定しています。バッファ形式2の場合はデータ名Uに32004バイトを超える値を設定しています。

MCFが終了処理中のため,メッセージの送信を受け付けられません。

71003

メッセージキューが満杯です。

71004

メッセージを格納するバッファをメモリ上に確保できませんでした。

71108

メッセージを送信しようとしましたが,送信先の管理テーブルが確保できませんでした。

プロセスのローカルメモリが不足しています。

72000

<MHPの実行でリターンした場合>

  • 先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に,CBLDCMCF('REPLY△△△')を呼び出しています。

  • 非応答型のアプリケーションからCBLDCMCF('REPLY△△△')を呼び出しています。

<SPPの実行でリターンした場合>

SPPではCBLDCMCF('REPLY△△△')を呼び出せません。

72001

入力元論理端末は,応答メッセージの送信をサポートしていません。

72005

<データ名HでVALUE 'ESI△'を設定した場合>

バッファ形式1の場合はデータ名Uに0バイト,またはマイナス値を設定しています。バッファ形式2の場合はデータ名Uに0から4バイト,またはマイナス値を設定しています。

72008

最終セグメントを送信するCBLDCMCF('REPLY△△△')を呼び出したあとで,再びCBLDCMCF('REPLY△△△')を呼び出しています。

応答型のアプリケーションからCBLDCMCF('EXECAP△△')を呼び出して応答型のアプリケーションを起動したあとで,CBLDCMCF('REPLY△△△')を呼び出しています。

72016

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

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

72017

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

72019

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

72020

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

72026

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

72028

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

72041

<データ名HでVALUE 'EMI△'を設定した場合>

  • バッファ形式1の場合はデータ名Uに0バイト,またはマイナス値を設定しています。バッファ形式2の場合はデータ名Uに0から4バイト,またはマイナス値を設定しています。

  • データ名HにVALUE 'ESI△'を設定したCBLDCMCF('REPLY△△△')を呼び出さないで,メッセージの送信の終了を連絡しています。

72045

継続問い合わせ応答型のアプリケーションはサポートしていません。

72047

継続問い合わせ応答型のアプリケーションはサポートしていません。

上記以外

プログラムの破壊などによる,予期しないエラーが発生しました。