COBOL2002 ユーザーズガイド


27.1.2 メッセージ

プログラム間の通信はメッセージの送受信によって行われます。また,コンピュータ間の情報およびデータの送受信も,メッセージの送受信によって行われます。メッセージには,テキストデータおよびバイナリデータを含めることができます。

トランザクションメッセージを使用すると,メッセージの送受信とほかの処理を一つにまとめることができます。トランザクションメッセージはトランザクションキューだけに送信できます。なお,COBOL2002のMSMQアクセス機能では,トランザクションメッセージ,およびトランザクションキューは使用できません。

〈この項の構成〉

(1) メッセージのラベル

メッセージには,ラベルを付けられます。付けられたラベルはプログラム中で使用できます。

メッセージにラベルを付ける場合,CBLMQSENDMSGサービスルーチンの呼び出し時に,データパラメタ領域の「メッセージのラベル」データ項目,および「メッセージのラベルのデータ長」データ項目を設定しておきます。

メッセージに付けられたラベルは,CBLMQRECEIVEMSGサービスルーチンを呼び出した後,データパラメタ領域の「メッセージのラベル」データ項目に格納されます。

(2) メッセージクラス

メッセージの種類をメッセージの機能または性質によって表したものをメッセージクラスといいます。代表的なメッセージクラスを次に示します。

COBOL2002で生成できるメッセージは,すべて通常メッセージです。

メッセージクラスは,CBLMQRECEIVEMSGサービスルーチンを呼び出した後,インタフェース領域の「メッセージクラス」データ項目に格納されます。

(3) メッセージの優先順位

メッセージの優先順位によって,緊急なメッセージなど重要度の高いメッセージを,重要度の低いメッセージよりも先に送信できます。メッセージの優先順位は0〜7の範囲で,0が最も優先順位が低く,7が最も優先順位が高くなります。

メッセージの優先順位を設定する場合,CBLMQSENDMSGサービスルーチンの呼び出し時に,インタフェース領域の「優先順位」データ項目を設定しておきます。

(4) メッセージの配信方法

MSMQには高速と回復可能という2種類の配信方法があります。

メッセージの配信方法を設定する場合,CBLMQSENDMSGサービスルーチンの呼び出し時に,インタフェース領域の「配信方法」データ項目を設定しておきます。

(5) ジャーナリング

メッセージのコピーを格納する処理をジャーナリングといいます。ジャーナリングされたメッセージは,ジャーナルキューに格納されます。

送信メッセージにジャーナリングを設定し,かつメッセージの送信が成功した場合,送信メッセージのコピーが送信側コンピュータのジャーナルキューに格納されます。

ジャーナリングする場合,CBLMQSENDMSGサービスルーチンの呼び出し時に,インタフェース領域の「ジャーナリング」データ項目を設定しておきます。

注意事項

メッセージングのパフォーマンスを向上させるために,すべてのジャーナルキューに格納されているメッセージをMSMQエクスプローラなどの管理ツールを使って頻繁に削除する必要があります。

(6) 配信不能メッセージ

配信に失敗した,または配信できなくなったメッセージを配信不能メッセージといいます。配信不能メッセージは,配信不能メッセージキューに格納できます。ただし,送信元がメッセージを送信先のキューに送ることを許可されていない場合,配信不能メッセージは配信不能メッセージキューには格納されません。

配信不能メッセージを配信不能メッセージキューに格納する場合,CBLMQSENDMSGサービスルーチンの呼び出し時に,インタフェース領域の「配信不能メッセージ」データ項目を設定しておきます。

注意事項

メッセージングのパフォーマンスを向上させるために,すべての配信不能メッセージキューに格納されているメッセージをMSMQエクスプローラなどの管理ツールを使って頻繁に削除する必要があります。