13.4 トリガイベントの制御
アプリケーションキューを定義する属性を使用することによって,ユーザはトリガイベントを制御できます。トリガを有効にしたり無効にしたり,トリガイベント用に数えるメッセージの数や優先度を選択したりできます。
関連する属性について次に示します。
- TriggerControl
-
アプリケーションキューのトリガを有効にしたり無効にしたりします。
- TriggerMsgPriority
-
トリガイベント用に数えるメッセージの優先度の下限値です。トリガメッセージの生成の有無を決定するときにこの属性よりも低い優先度のメッセージがアプリケーションキューに到着した場合,キューマネジャはメッセージを無視します。0を設定する場合は,すべてのメッセージがトリガイベント用に数えられます。
- TriggerType
-
キューでトリガイベントを発生させる条件について,次に示すトリガタイプを指定できます。
- none
-
TriggerControl属性にoffを設定した場合のようにトリガを無効にします。
- every
-
アプリケーションキューにメッセージが到着するたびにトリガイベントを発生させます。1メッセージを処理したあとでサーバアプリケーションを終了したい場合は,これを使用してください。
- first
-
アプリケーションキューにあるメッセージの数が0から1に変わるときだけにトリガイベントを発生させます。キューに最初のメッセージが到着するときにサーバアプリケーションを開始させ,処理する必要があるメッセージがなくなるまで処理を継続したあとで終了したい場合は,これを使用してください。
- depth
-
アプリケーションキューにあるメッセージの数がTriggerDepth属性値に達したときにだけトリガイベントを発生させます。要求に対するすべての応答を受信したときにアプリケーションを開始したい場合は,これを使用してください。
注意
depthを指定する場合は,キューマネジャがトリガメッセージを生成したあとでトリガ(TriggerControl属性)が無効になります。その場合は,アプリケーションで,MQSET命令を使用してトリガを再度有効にしてください。
トリガを無効にする処理は,トランザクションに参加できません。そのため,トランザクションをロールバックするだけではトリガは再度有効にできません。トリガイベントを発生させた登録要求をアプリケーションでロールバックするときは,MQSET命令でトリガを再度有効にしてください。
- TriggerDepth
-
depthの指定時にトリガイベントを発生させるキューのメッセージ数です。
キューマネジャがトリガメッセージを生成する条件については,「13.3 トリガイベントの条件」を参照してください。