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エクスプローラなどの管理ツールを使って頻繁に削除する必要があります。