Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成の手引


2.3 メッセージの設計

MQI命令を使用してメッセージをキューに登録するときに,ユーザはメッセージを作成します。命令への入力として,メッセージ記述子(MQMD構造体)内の幾つかの制御情報,および相手アプリケーションに送信したいデータを設定します。しかし,設計時には,メッセージの作成方法に影響があることから,次に示す項目について検討してください。

使用するメッセージタイプ

単純なメッセージを送信するだけで以降の応答を期待しないのか,問い合わせに対する応答を期待するのかを検討します。問い合わせをする場合には,応答を受信するためのキューの名前をメッセージ記述子に設定してください。

また,問い合わせと応答のメッセージを同期させるか検討します。つまり,問い合わせに対する応答には期限を設定でき,それを過ぎるとエラーとして処理されます。

または,プロセスが共通タイミングシグナルのような特定イベントの発生に依存しないように,非同期に処理するのか検討します。

その他の検討項目としては,すべてのメッセージをトランザクション内で処理するかどうかということがあります。

作成するメッセージに異なる属性を設定するか

各メッセージには優先度の値を設定できます。また,キューが優先度に応じてメッセージを保持するよう定義できます。この場合には,相手アプリケーションがキューからメッセージを取り出すときには常に高い優先度のメッセージを取り出します。キューがメッセージ優先度を無視する場合,メッセージが登録された順序に応じて取り出されます。

メッセージがキューに登録されたときにキューマネジャによって付加されるメッセージ識別子を使用することによって,アプリケーションでメッセージを選択することもできます。また,ユーザ独自の識別子をメッセージに設定することもできます。

OpenTP1の再開始時にメッセージを保持するか

キューマネジャはすべての永続メッセージを保持し,再開始するときに回復します。しかし,非永続メッセージと一時的動的キューは再開始するときには回復されません。失いたくないメッセージを作成するときには永続メッセージとして作成してください。

メッセージの受信側に自システムの情報を与えるべきか

ユーザが設定しない場合,キューマネジャがメッセージにユーザ識別子を設定します。受信側アプリケーションが課金やセキュリティの目的でユーザ識別子を使用する場合は,送信側アプリケーションでユーザ識別子を設定してください。