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