CBLEEMCP('SENDRECV ') - 同期型メッセージの送受信
- 〈このページの構成〉
機能
相手システムへ同期送受信メッセージを送信します。同期送受信メッセージは,一つのセグメントで構成されます。
TP1/FSPを使用する場合,アプリケーション定義のeemcpfuncの-oオプションのoutputmessageが設定されている場合,または,ユーザサービス関連定義service_attrの-mオプションが設定されている場合に,送信データをUAP履歴情報のデータ種別「OJ(出力メッセージ)」として取得します。オペランドの関連性については,TP1/FSPの関連ドキュメントを参照してください。
形式
- PROCEDURE DIVISIONの指定
CALL 'CBLEEMCP' USING 一意名1 一意名2 一意名3 01 一意名1. 02 データ名A PIC X(8) VALUE 'SENDRECV'. 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 9(9) COMP. 02 データ名J PIC X(4) VALUE SPACE. 02 データ名K PIC X(4) VALUE SPACE. 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 S9(9) COMP. 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 'IO '. 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(9) COMP. 02 データ名V PIC X(8). 02 データ名W PIC X(n). 01 一意名4. 02 データ名X PIC 9(9) COMP. 02 データ名Y PIC X(8) 02 データ名Z PIC X(n).
UAPで値を設定するデータ領域
●データ名A
同期型のメッセージの送受信を示す要求コードを「VALUE 'SENDRECV'」と設定します。
●データ名C,D
空白を設定します。
●データ名G
指定した論理端末がすでに送信処理中のとき,送信可能となるまで待ち合わせるか,エラーリターンとするかを,次のどちらかの数値で設定します。
- 0
-
送信可能となるまで待ち合わせる場合に設定します。
待ち合わせている間の時間は,watcitimeに設定した時間に含まれます。
- 1
-
エラーリターンする場合に設定します。
●データ名H
単一セグメントの送信を示す「VALUE 'EMI△'」を設定します。
●データ名J,K,L,M1,M2,M3
空白を設定します。
●データ名M4
0を設定します。
●データ名M5
CBLEEMCP('SENDRECV')を呼び出してから終了するまでの最大時間(1〜65535 単位:秒)を設定します。0を設定した場合,MCP共通定義(eemcpcn -b sndrcvtim)で指定した同期送受信監視時間が仮定されます。負の値を設定した場合は,無限に待ち合わせをします。
●データ名M6
空白を設定します。
●データ名M7
空白を設定します。
●データ名N
MCPで使用する領域です。
●データ名O
同期型のメッセージの送受信を示す「VALUE 'IO△△'」を設定します。
●データ名P
出力先の論理端末名を設定します。論理端末名の長さは最大8バイトです。8バイトに満たない名称を設定する場合は,後ろを空白で埋めてください。
●データ名Q,R
空白を設定します。
●データ名T
MCPで使用する領域です。
●データ名U
送信するセグメントの長さを設定します。設定できる最大値は,メッセージの最大サイズを拡張しているかどうか(eemcpfunc定義コマンドの-mオプションのmsglenオペランド指定値)によって,次の表に示すとおり異なります。
|
メッセージの最大サイズ拡張有無 |
送信メッセージ長に設定できる最大値(単位:バイト) |
|
|---|---|---|
|
TCP/IPプロトコル使用時 |
UDPプロトコル使用時 |
|
|
なし(msglenオペランドにnormalを指定) |
32000※ |
32000※ |
|
あり(msglenオペランドにextendを指定) |
8388608 |
65531※ |
- 注※
-
TP1/EEサービス定義のsend_message_buf_sizeオペランドで指定した送信バッファサイズの方が小さい場合は,send_message_buf_sizeオペランドの指定値が設定されます。
●データ名V
MCPで使用する領域です。
●データ名W
送信するセグメントの内容を設定した領域を設定します。送信できる最大長は,データ名Uを参照してください。
- TCP/IPの場合
-
- UDPの場合
-
●データ名Y
MCPで使用する領域です。
TP1/EEから値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
ステータスコードが00000または10031の場合だけ,次に示すデータ名E,データ名F,データ名X,データ名Zの領域は参照可能です。これ以外のステータスコードの場合は参照しないでください。
●データ名E
メッセージを受信した日付がYYYYMMDD(YYYY:西暦年 MM:月 DD:日)の形式で返されます。
●データ名F
メッセージを受信した日付がHHMMSS00(HH:時 MM:分 SS:秒)の形式で返されます。
●データ名X
受信したメッセージの長さが返されます。
●データ名Z
受信したセグメント内容が返されます。
|
|
ステータスコード
|
ステータスコード |
意味 |
|---|---|
|
00000 |
正常に終了しました。 |
|
00001 |
TP1/EE環境下にありません。 |
|
00004 |
UOCから発行しているため,この機能は使用できません。 |
|
10009 |
発行条件が不正です。 |
|
10001 |
データ名Uに送信サイズを超える値を設定しています。 |
|
10002 |
データ名Uに0以下の値を設定しています。 |
|
10003 |
データ名A,E,F, M5,W,X,Zに設定した値が間違っています。 |
|
10004 |
データ名Hに設定した値が間違っています。 |
|
10005 |
データ名Gに設定した値が間違っています。 |
|
10006 |
データ名Oに設定した値が間違っています。 |
|
10007 |
データ名M5に設定した時間が経過しました。 |
|
10011 |
データ名Pに設定した論理端末名が間違っています。 |
|
10020 |
データ名Pに設定した論理端末名は閉塞中です。 |
|
10021 |
出力メッセージ編集UOCがエラーリターンしました。 |
|
10022 |
出力メッセージ編集UOCで障害が発生しました。 |
|
10025 |
システムに対する送信時に障害が発生しました。 |
|
10030 |
メモリ不足が発生しました。
|
|
10031 |
データ名Iの指定値を超えるセグメントを受信しました。データ名Iの指定値を超えた部分は切り捨てられました。 |
|
10032 |
データ名Iの指定値が不足しています。9バイト以上の領域を確保してください。 |
|
10033 |
メッセージ受信が仕掛かり中です。 |
|
10034 |
出力先の論理端末は,ほかのUAPで仕掛かり中です。 |
|
10035 |
メッセージ送信完了監視タイマ(MCP構成定義eemcpcnの-bオプションsndcmptimオペランドに指定)のタイムアウトが発生しました。 |
|
10036 |
受信待ちでコネクション障害が発生しました。 |
注意事項
-
CBLEEMCP('SEND ')関数発行後,CBLEEMCP('SENDRECV ')関数を発行した場合,CBLEEMCP('SENDRECV ')関数のメッセージが先に送信されます。
-
リターン値が10031の場合,データ名Xにはデータ名Iの領域に格納できた受信データのサイズが設定されます。
-
TP1/FSPを使用する場合,以下のステータスコードの場合,OJは取得されません。
00001,00004,10001,10002,10003,10004,10005,10006,10009,10011,10032