Hitachi

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


13.4 トリガイベントの制御

アプリケーションキューを定義する属性を使用することによって,ユーザはトリガイベントを制御できます。トリガを有効にしたり無効にしたり,トリガイベント用に数えるメッセージの数や優先度を選択したりできます。

関連する属性について次に示します。

TriggerControl

アプリケーションキューのトリガを有効にしたり無効にしたりします。

TriggerMsgPriority

トリガイベント用に数えるメッセージの優先度の下限値です。トリガメッセージの生成の有無を決定するときにこの属性よりも低い優先度のメッセージがアプリケーションキューに到着した場合,キューマネジャはメッセージを無視します。0を設定する場合は,すべてのメッセージがトリガイベント用に数えられます。

TriggerType

キューでトリガイベントを発生させる条件について,次に示すトリガタイプを指定できます。

none

TriggerControl属性にoffを設定した場合のようにトリガを無効にします。

every

アプリケーションキューにメッセージが到着するたびにトリガイベントを発生させます。1メッセージを処理したあとでサーバアプリケーションを終了したい場合は,これを使用してください。

first

アプリケーションキューにあるメッセージの数が0から1に変わるときだけにトリガイベントを発生させます。キューに最初のメッセージが到着するときにサーバアプリケーションを開始させ,処理する必要があるメッセージがなくなるまで処理を継続したあとで終了したい場合は,これを使用してください。

depth

アプリケーションキューにあるメッセージの数がTriggerDepth属性値に達したときにだけトリガイベントを発生させます。要求に対するすべての応答を受信したときにアプリケーションを開始したい場合は,これを使用してください。

注意

depthを指定する場合は,キューマネジャがトリガメッセージを生成したあとでトリガ(TriggerControl属性)が無効になります。その場合は,アプリケーションで,MQSET命令を使用してトリガを再度有効にしてください。

トリガを無効にする処理は,トランザクションに参加できません。そのため,トランザクションをロールバックするだけではトリガは再度有効にできません。トリガイベントを発生させた登録要求をアプリケーションでロールバックするときは,MQSET命令でトリガを再度有効にしてください。

TriggerDepth

depthの指定時にトリガイベントを発生させるキューのメッセージ数です。

キューマネジャがトリガメッセージを生成する条件については,「13.3 トリガイベントの条件」を参照してください。

〈この節の構成〉