CBLEESCD('MSGRECV ')【XTC限定】
- 〈このページの構成〉
形式
PROCEDURE DIVISIONの指定
CALL 'CBLEESCD' USING 一意名1 一意名2
DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'MSGRECV '. 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 VALUE ZERO. 02 データ名D PIC 9(9) COMP VALUE ZERO. 02 データ名E ADDRESS. 02 データ名F ADDRESS.
機能
入力キュー(ITQ)に滞留しているメッセージを受信します。
UAPで値を設定するデータ領域
●データ名A
滞留しているメッセージの受信を示す要求コードを「VALUE 'MSGRECV△'」と設定します。
●データ名Z
0を設定します。
TP1/EEから値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
●データ名C
入力メッセージ長が返されます。
●データ名D
受信したメッセージのメッセージ通番が返されます。
●データ名E
入力メッセージ引き渡しエリアのアドレスが返されます。
●データ名F
入力メッセージ情報が返されます。
ただし,受信メッセージがMCPメッセージの場合だけアドレスが返されます。
アドレスが示す領域トランザクション起動時にMCPエリアポインタが示す構造体を参照してください。
また,トランザクション起動時にMCPエリアポインタが示す領域を使用するため,以前の情報は参照できなくなります。
ステータスコード
ステータスコード |
意味 |
---|---|
00000 |
正常に終了しました。 |
00001 |
TP1/EEの環境下にありません。 |
00004 |
UOCから発行しているため,この機能は使用できません。 |
00005 |
オフラインバッチプロセスから発行しているため,この機能は使用できません。 |
00801 |
引数に設定した値が間違っています。 |
00804 |
発行条件が不正です(プロセス関連定義のxtc_useオペランドにNを指定してこの関数を発行)。 |
00806 |
入力メッセージ引き渡しエリア(IMA)がオーバフローしました。※1 |
00860 |
滞留メッセージはありません。※2 |
00861 |
滞留メッセージ中に同種のメッセージがありません。 |
00862 |
読み出し上限を超えました。 |
00870 |
中間同期点処理を行ったため,滞留メッセージの受信はできません。 |
00875 |
この関数を発行できるサービスではありません(サービス属性定義でservice_attr -e serialを指定していないサービスでこの関数を発行)。または,トランザクション種別がMNもしくはTMではありません。 |
00876 |
トランザクション起動時のメッセージが滞留メッセージ読み出し対象メッセージではありません。 |
00881 |
スキップ処理中のため読み出せません。 |
注意事項
-
滞留メッセージを受信できるのは,次のメッセージ種別がトランザクション起動時に渡されたメッセージ種別と同じメッセージの場合です。
なお,タイマトランザクションの場合は,永続タイマと非永続タイマは同じメッセージ種別とは見なされません。
-
トランザクション起動時に渡されたメッセージ種別がRPC受信メッセージであり,かつ応答型RPCまたはトランザクショナルRPCの場合は,滞留しているメッセージを受信できません。
また,リモートAPI機能(RAP)で送信されたメッセージも受信できません。
-
トランザクション起動時に引き出したキュー(優先キューまたは通常キュー)に滞留しているメッセージだけ受信できます。
例えば最初に引き出したキューが優先キューの場合,通常キューにメッセージが滞留していてもこの関数では受信できません。
-
入力メッセージ引き渡しエリアおよび入力メッセージサイズ格納領域はトランザクション起動時に使用した領域を再使用します。この関数発行後に前のメッセージおよびメッセージサイズを参照する場合は領域の内容を退避したあと,この関数を発行してください。
-
トランザクション起動時のトランザクション種別がMNまたはTMの場合だけ,この関数を発行できます。
-
該当サービスの同時引き出しの可否(service_attr -e)にserialを指定した場合だけ,この関数を発行できます。
-
滞留メッセージを受信できる最大数は,トランザクション起動時に滞留していたメッセージ数です。
-
中間同期点処理(CBLEETRN('C-ROLL ')発行)を行ったあとは,この関数を発行できません。