SEND − メッセージの送信(データ操作言語)
- 〈このページの構成〉
形式1(セグメントの内容を設定して送信する場合)
DATA DIVISION(通信記述項)の指定
CD 通信記述名 FOR {OUTPUT | I-O} 〔STATUS KEY IS データ名1〕 〔SYMBOLIC TERMINAL IS データ名2〕 〔SYNCHRONOUS MODE IS {SYNC | ASYNC | データ名6}〕 〔SWITCHING MODE IS {NORMAL | PRIOR | データ名7}〕 〔DETAIL MODE IS データ名10〕 〔WAITING TIME IS データ名11〕.
形式2(セグメントの内容を設定しないで,メッセージの送信の終了だけ連絡する場合)
DATA DIVISION(通信記述項)の指定
CD 通信記述名 FOR {OUTPUT | I-O} 〔STATUS KEY IS データ名1〕 〔SYMBOLIC TERMINAL IS データ名2〕 〔SWITCHING MODE IS {NORMAL | PRIOR | データ名7}〕.
PROCEDURE DIVISION(通信文)の指定
SEND 通信記述名 WITH EMI.
機能
次に示すCALLインタフェースの機能を実現します。
-
一方送信メッセージの送信 CBLDCMCF('SEND△△△△')
-
同期型のメッセージの送受信 CBLDCMCF('SENDRECV')
-
応答メッセージの送信 CBLDCMCF('REPLY△△△')
同期型のメッセージの送受信では,単一セグメントの論理メッセージだけを扱えます。
セグメントを送信する領域(一意名1で示す領域)の形式を次に示します。
同期型メッセージの送受信の場合,セグメントを受信する領域(一意名3で示す領域)も設定します。
セグメントを受信する領域の形式を次に示します。
UAPで値を設定する項目
●FOR句
次のどちらかの値を設定します。
- OUTPUT
-
一方送信メッセージの送信
- I-O
-
応答メッセージの送信,または同期型のメッセージの送受信
●SYMBOLIC TERMINAL句
論理端末名称を設定したデータ項目を設定します。データ名2に出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合,論理端末名称の後ろを空白で埋めてください。
●SYNCHRONOUS MODE句
非同期型でメッセージを送信するか,同期型でメッセージを送信するかを設定します。
- SYNC
-
同期型のメッセージの送受信
同期型のメッセージの送受信のとき設定します。
- ASYNC
-
非同期型のメッセージの送信
一方送信メッセージの送信,または応答メッセージの送信のとき設定します。
- データ名6
-
次の値を設定したデータ項目
'0'または'△':非同期型のメッセージの送信
'1':同期型のメッセージの送受信
省略した場合は,ASYNC(非同期型メッセージの送信)が設定されます。
●SWITCHING MODE句
一方送信メッセージの場合に,一般か優先かを設定します。
- NORMAL
-
一般の一方送信メッセージ
- PRIOR
-
優先の一方送信メッセージ
- データ名7
-
次の値を設定したデータ項目
'0'または'△':一般の一方送信メッセージ
'1':優先の一方送信メッセージ
省略した場合および非応答型のアプリケーションから応答メッセージを送信した場合は,NORMAL(一般の一方送信メッセージ)が設定されます。
●DETAIL MODE句
非同期型のメッセージの送信の場合に,出力通番を付けるかどうかを設定します。データ名10に次のどちらかを設定します。
- データ名10
-
次の値を設定したデータ項目
'0'または'△':出力通番を付けます。
'1':出力通番を付けません。
省略した場合および非応答型のアプリケーションから応答メッセージを送信した場合は,出力通番を付けません。
●WAITING TIME句
SEND文を実行してから終了するまでの,最大時間を設定したデータ項目を設定します。同期型のメッセージの送受信の場合に設定します。
- データ名11
-
監視時間の値をHHMMSS00(HH:時 MM:分 SS:秒 00は固定)の形式で設定したデータ項目を設定します。
省略した場合,またはデータ名11に'00000000'を設定した場合,MCFマネジャ定義のUAP共通定義で指定した同期型送受信監視時間(mcfmuap -t sndrcvtim)が設定されます。
●データ名A
送信するセグメントの長さ+4を設定します。
●データ名B
MCFで使用する領域です。
●データ名C
送信するセグメントの内容を設定します。一つのセグメントで32000バイトまで送信できます。
●データ名E
MCFで使用する領域です。
●WITH句
送信するセグメントを設定します。非同期型のメッセージ送信の場合だけ設定します。
- ESI
-
先頭セグメントまたは中間セグメントの送信
- EMI
-
最終セグメントまたは単一セグメントの送信
- 一意名2
-
次の値を設定したデータ項目
'1':ESI(先頭セグメントまたは中間セグメントの送信)
'2':EMI(最終セグメントまたは単一セグメントの送信)
省略した場合は,EMI(最終セグメントまたは単一セグメントの送信)が設定されます。
なお,同期型のメッセージの送受信(SENDRECV)の場合は,EMIを指定するか,または指定を省略してください。
●BEFORE句
同期型のメッセージの送受信の場合に,セグメントを受信するデータ項目(一意名3)を設定します。一方送信メッセージの送信,または,応答メッセージの送信の場合,BEFORE句を省略します。
OpenTP1から値が返される項目
●STATUS KEY句
ステータスコードを受け取りたい場合に設定します。省略した場合は,ステータスコードを受け取れません。データ名1にステータスコードが返されます。
●データ名D
受信したセグメントの長さ+4が返されます。
●データ名F
受信したセグメントの内容が返されます。
ステータスコード
ステータスコード |
意味 |
---|---|
00000 |
正常に終了しました。 |
71002 |
メッセージキューへの出力処理中に障害が発生しました。 |
メッセージキューが閉塞されています。 |
|
メッセージキューが割り当てられていません。 |
|
データ名Aに32004バイトを超える値を設定しています。 |
|
MCFが終了処理中のため,メッセージの送信を受け付けられません。 |
|
71003 |
メッセージキューが満杯です。 |
71004 |
メッセージを格納するバッファをメモリ上に確保できませんでした。 |
71108 |
メッセージを送信しようとしましたが,送信先の管理テーブルが確保できませんでした。 |
プロセスのローカルメモリが不足しています。 |
|
72000 |
<MHPの実行でリターンした場合>
|
<SPPの実行でリターンした場合>
|
|
72001 |
SYMBOLIC TERMINAL句に設定した論理端末名称が間違っています。 |
SYMBOLIC TERMINAL句に設定した論理端末名称は,定義されていません。 |
|
SEND文を実行できない論理端末を設定しています。 |
|
<応答メッセージの送信を行う(FOR句にI-Oを設定し,かつ,SYNCHRONOUS MODE句を省略またはSYNCHRONOUS MODE句にASYNCを設定またはSYNCHRONOUS MODE句に0もしくは空白を設定したデータ名6を設定)場合> 入力元論理端末は,応答メッセージの送信をサポートしていません。 |
|
72005 |
<WITH句にESIを設定またはWITH句に1を設定した一意名2を設定した場合> データ名Aに0から4バイト,またはマイナス値を設定しています。 |
72008 |
応答メッセージの最終セグメントを送信するSEND文を実行したあとに,再び応答メッセージを送信するSEND文を実行しています。 |
SEND文を実行して応答型のアプリケーションを起動させたあとで,再び応答メッセージを送信するSEND文を実行しています。 |
|
72013 |
データ名Fのサイズを超えるセグメントを受信しました。データ名Fのサイズを超えた部分は切り捨てられました。 |
72017 |
DETAIL MODE句に設定した値が間違っています。 |
72018 |
SWITCHING MODE句に設定した値が間違っています。 |
72020 |
SYNCHRONOUS MODE句に設定した値が間違っています。 |
72024 |
FOR句に設定した値が間違っています。 |
72026 |
WITH句に設定した値が間違っています。 |
72036 |
データ名Fのサイズが不足しています。5バイト以上の領域を確保してください。 |
72037 |
BEFORE句に設定した値が間違っています。 |
72041 |
<WITH句を省略またはWITH句にEMIを設定またはWITH句に2を設定した一意名2を設定した場合> データ名Aに0から4バイト,またはマイナス値を設定しています。 |
<メッセージの送信の終了を連絡した場合> WITH句にESIを設定またはWITH句に1を設定した一意名2を設定したSEND文を呼び出さないで,メッセージの送信の終了を連絡しています。 |
|
72045 |
継続問い合わせ応答型のアプリケーションはサポートしていません。 |
72047 |
継続問い合わせ応答型のアプリケーションはサポートしていません。 |
73001 |
データ名11に60秒を加算した時間が経過しましたが,相手システムまたはMCF通信プロセスからの応答がありません。 |
出力キューからのメッセージの読み込み時に障害が発生しました。 |
|
相手システムから受信打ち切りを受信しました。 |
|
同期型のメッセージを送信するSEND文を実行したあとで,UA障害またはコネクション障害が発生しました。 |
|
73002 |
メッセージを送信しようとしましたが,送信バッファまたは編集バッファを確保できませんでした。 |
出力先の論理端末でMCF通信プロセスの内部障害が発生しました。 |
|
73008 |
論理端末が閉塞中,またはMCFが終了処理中に,SEND文を呼び出しました。 |
73010 |
入力または出力メッセージ編集UOCで障害が発生しました。 |
メッセージの編集エラーが発生しました。 |
|
73015 |
出力先の論理端末は,ほかのUAPで仕掛り中です。 |
73018 |
WAITING TIME句に設定した値が間違っています。 |
上記以外 |
プログラムの破壊などによる,予期しないエラーが発生しました。 |