CBLDCMCF('SENDSYNC') − 同期型メッセージの送信(COBOL言語)
- 〈このページの構成〉
形式
PROCEDURE DIVISIONの指定
CALL 'CBLDCMCF' USING 一意名1 一意名2 一意名3
DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'SENDSYNC'. 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) 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 9(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 SPACE. 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(x) COMP. 02 データ名V PIC X(x). 02 データ名W PIC X(n).
- 注※
-
負の値を設定する場合,「PIC S9(9) COMP」としてください。
機能
相手システムへ同期型でメッセージを送信します。送信するメッセージは,常に単一セグメントで構成されます。
送信できるメッセージの一つのセグメントの最大長は,32000バイトです。
セグメントを送信する領域(一意名3で示す領域)の形式を次に示します。
UAPで値を設定するデータ領域
●データ名A
同期型メッセージの送信を示す要求コード「VALUE 'SENDSYNC'」を設定します。
●データ名C,データ名D
空白を設定します。
●データ名E,データ名F
MCFで使用する領域です。
●データ名G
0を設定します。
●データ名H
単一セグメントの送信を示す「VALUE 'EMI△'」を設定します。
●データ名I,データ名J,データ名K,データ名L,データ名M1,データ名M2,データ名M3
空白を設定します。
●データ名M4
0を設定します。
●データ名M5
CBLDCMCF('SENDSYNC')を呼び出しから終了するまでの監視時間を設定します。0を設定した場合,MCFマネジャ定義のUAP共通定義で指定した同期型送信監視時間(mcfmuap -t sndtim)が設定されます。
負の値を設定した場合は,時間を監視しません。
- 注意事項
-
監視時間の精度は秒単位です。また,タイマ定義(mcfttim -t)のbtimオペランドで指定する時間の間隔でタイムアウトが発生したかどうかを監視しています。このため,設定した監視時間と実際にタイムアウトを検出する時間には秒単位の誤差が生じます。そのため,タイミングによっては,設定した監視時間よりも短い時間で起動することがあります。監視時間が小さくなるほど,誤差の影響を受けやすくなりますので,監視時間は3(単位:秒)以上の値の設定を推奨します。
●データ名M6
空白を設定します。
●データ名M7
使用するバッファ形式を指定します。
- VALUE '1'
-
バッファ形式1を使用する場合に設定します。
- VALUE '2'
-
バッファ形式2を使用する場合に設定します。
- 空白
-
省略されたものとして,「VALUE '1'」(バッファ形式1)が設定されます。
●データ名N
MCFで使用する領域です。
●データ名O
空白を設定します。
●データ名P
出力先の論理端末名称を設定します。論理端末名称は最大8バイトの長さです。8バイトに満たない場合,論理端末名称の後ろを空白で埋めてください。
●データ名Q,データ名R
空白を設定します。
●データ名T
MCFで使用する領域です。
●データ名U
- 【バッファ形式1の場合】 PIC 9(9)
-
送信するセグメントの長さを設定します。
- 【バッファ形式2の場合】 PIC9(4)
-
送信するセグメントの長さ+4を設定します。
●データ名V
【バッファ形式1の場合】 PICX(8)
- 【バッファ形式2の場合】 PICX(2)
-
MCFで使用する領域です。
●データ名W
送信するセグメントの内容を設定します。一つのセグメントで32000バイトまで送信できます。
OpenTP1から値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
ステータスコード
ステータスコード |
意味 |
---|---|
00000 |
正常に終了しました。 |
71002 |
バッファ形式1の場合はデータ名Uに32000バイトを超える値を設定しています。バッファ形式2の場合はデータ名Uに32004バイトを超える値を設定しています。 |
MCFが終了処理中のため,メッセージの送信を受け付けられません。 |
|
71003 |
メッセージキューが満杯です。 |
71004 |
メッセージを格納するバッファをメモリ上に確保できませんでした。 |
71108 |
メッセージを送信しようとしましたが,送信先の管理テーブルが確保できませんでした。 |
プロセスのローカルメモリが不足しています。 |
|
72000 |
先頭セグメントを受信するCBLDCMCF('RECEIVE△')を呼び出す前に,CBLDCMCF('SENDSYNC')を呼び出しています。 |
72001 |
データ名Pに設定した論理端末名称が間違っています。 |
データ名Pに設定した論理端末名称は,定義されていません。 |
|
CBLDCMCF('SENDSYNC')を呼び出せない論理端末を設定しています。 |
|
72016 |
データ名M1に設定した値が間違っています。 |
データ名M7に設定した値が間違っています。 |
|
データ名Nまたはデータ名Tに設定した値が間違っています。 |
|
72019 |
データ名M6に設定した値が間違っています。 |
72024 |
データ名Oに設定した値が間違っています。 |
72026 |
データ名Hに設定した値が間違っています。 |
72028 |
データ名Aに設定した値が間違っています。 |
72041 |
バッファ形式1の場合はデータ名Uに0バイト,またはマイナス値を設定しています。バッファ形式2の場合はデータ名Uに0から4バイト,またはマイナス値を設定しています。 |
73001 |
データ名M5に60秒を加算した時間が経過しましたが,MCF通信プロセスからの応答がありません。 |
送信処理中にコネクション障害が発生しました。 |
|
出力先の論理端末でMCF通信プロセスの内部障害が発生しました。 |
|
73002 |
同期送信時,メッセージ送信先の論理端末とTP1/NET/OSI-TPとの間のコネクションが切断されています。または,CBLDCMCF('SENDSYNC')かCBLDCMCF('RECVSYNC')を呼び出してから現在の送信要求を呼び出すまでの間に,メッセージ送信先の論理端末とTP1/NET/OSI-TPの間のコネクションが切断されました。 |
73005 |
データ名M5に設定した時間が経過しましたが,論理端末からの応答がありません。 |
73010 |
出力メッセージ編集UOCで障害が発生しました。 |
メッセージの読み込み時に障害が発生しました。 |
|
73015 |
出力先の論理端末は,ほかのUAPで仕掛り中です。 |
73018 |
データ名M5に設定した値が間違っています。 |
73020 |
出力先の論理端末は停止しています。 |
77001 |
指定したコネクショングループ内に使用できるコネクションがありません。 |
77301 |
送信セグメント長と,「制御情報+パラメタ+ユーザデータ」のサイズが一致していません。 |
77302 |
制御情報のサイズの設定が間違っています。 |
77303 |
転送手順の設定が間違っています。 |
77304 |
サービスプリミティブコードの設定が間違っています。 |
77310 |
パラメタ情報サイズの設定が間違っています。 |
77311 |
Initiating-TPSU-Titleに設定した値が間違っています。 |
77312 |
Recipient-AP-Titleに設定した値が間違っています。 |
77313 |
Recipient-TPSU-Titleに設定した値が間違っています。 |
77314 |
Functional-Unitsに設定した値が間違っています。 |
77315 |
Quality-of-Serviceに設定した値が間違っています。 |
77316 |
Application-Context-Nameに設定した値が間違っています。 |
77317 |
Confirmationに設定した値が間違っています。 |
77318 |
Resultに設定した値が間違っています。 |
77321 |
Confirmation-Urgencyに設定した値が間違っています。 |
77330 |
ユーザデータのサイズの設定が間違っています。 |
77331 |
APDUの連結状態の設定が間違っています。 |
77332 |
ユーザデータのサイズが設定されていません。 |
77333 |
ユーザデータが設定できません。 |
77350 |
サービスプリミティブの発行順が間違っています。 |
サービスプリミティブの連結数が超過しています。 |
|
77433 |
相手からのメッセージによって,ダイアログが未確立になりました。 |
77436 |
相手からのメッセージによって,ダイアログを解放しています。 |
77437 |
相手からのメッセージによって,ハンドシェイクが応答待ちになりました。 |
77491 |
相手からのメッセージによって,エラー処理中です。 |
上記以外 |
プログラムの破壊などによる,予期しないエラーが発生しました。 |