COBOL2002 ユーザーズガイド
キューへメッセージを送信するには,CBLMQSENDMSGサービスルーチンを呼び出します。
- 形式
- CALL 'CBLMQSENDMSG' USING 引数1 引数2
- 引数
- 引数1には,キューをオープンしたときにCBLMQOPENサービスルーチンに指定した「表29-2 MSMQアクセスサービスルーチンで使用するインタフェース領域」の名前を指定します。
- 引数2には,データパラメタ領域の名前を指定します。
- インタフェース領域に設定する項目
- 優先順位
メッセージの優先順位を0〜7の範囲で指定します。
- 配信方法
メッセージの配信方法を指定します。
高速メッセージとして配信する場合は0を,回復可能メッセージとして配信する場合は1を指定します。
- ジャーナリング
メッセージの送信に成功した場合,ジャーナルキューにメッセージのコピーを格納するかどうかを指定します。
メッセージのコピーを格納する場合は1を,格納しない場合は0を指定します。
- 配信不能メッセージ
メッセージの送信に失敗した場合,配信不能メッセージキューにメッセージのコピーを格納するかどうかを指定します。
メッセージのコピーを格納する場合は1を,格納しない場合は0を指定します。
- データ変換フラグ
メッセージデータをデータ変換して,テキストデータとしてキューへ送信するかどうかを指定します。
テキストデータに変換して送信する場合は1を,そのまま送信する場合は0を指定します。
- インタフェース領域の形式については,「表29-2 MSMQアクセスサービスルーチンで使用するインタフェース領域」を参照してください。
- データパラメタ領域に設定する項目
- 送信するメッセージデータ,およびメッセージのラベルを,次の形式で指定します。
記述形式 |
内容 |
01 データ名1. |
CALL文のUSINGで指定するデータパラメタ領域の名前 |
02 データ名2 PIC S9(9) USAGE COMP. |
メッセージのラベルのデータ長 |
02 データ名3 PIC X(512). |
メッセージのラベルのパス名 |
02 データ名4 PIC S9(9) USAGE COMP. |
メッセージデータのデータ長 |
02 データ名5 PIC X(n). |
メッセージデータ |
- (凡例)
- n:メッセージデータのデータ長
- 戻り値
- 0:サービスルーチンは正常に終了した。
- -1:MSMQアクセスでエラーを検出した。
- -2:MSMQアクセス以外でエラーを検出した。
- また,インタフェース領域に次の項目が返されます。
- 規則
- データパラメタ領域のデータ名2には,データ名3で指定したメッセージのラベルのデータ長を,バイト数で指定します。
- データパラメタ領域のデータ名5の領域長には,メッセージデータのデータ長を指定します。指定できる最大データ長は,4,096,000バイトです。
- データパラメタ領域のデータ名4には,データ名5で指定したメッセージデータのデータ長を,バイト数で指定します。
ただし,インタフェース領域のデータ変換フラグに有効(テキストデータに変換)を指定した場合,CBLMQSENDMSGサービスルーチンはメッセージデータをワイド文字列(Unicode)に変換してキューに送信します。したがって,実際にキューに格納されるメッセージ本文のデータサイズは,データ名4で指定したメッセージデータのデータ長よりも大きくなり,最大で(メッセージデータのデータ長+1)×2バイトとなります。なお,実際にキューに格納されたメッセージ本文のデータサイズは,MSMQエクスプローラなどで確認できます。
- このサービスルーチンを実行する場合,あらかじめCBLMQOPENサービスルーチンを使って,メッセージを送信するキューをSENDモードでオープンしておく必要があります。
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.