例 3: 問題メッセージでの問題がシステムで発生する
問題メッセージに対して備えるため、 そのメッセージを例外宛先に移動し、他のメッセージは正常に処理されるよう、 システムを構成します。
始める前に
MDB が listen している宛先は、例外宛先を使用する必要があります。 この例外宛先は、システム・デフォルトにするか、または特にその宛先のために構成した宛先とすることができます。
このタスクを実行するには、以下の情報が必要です。
- MDB を含んでいるエンタープライズ・アプリケーション。
- 従属外部システム・リソース。
- 「連続障害メッセージのしきい値」に値 3 を設定します。 これはメッセージ配信の連続障害の最大数で、その数を超えると MDB が停止します。 このプロパティーは、メッセージの集合に 適用されます。
- 「障害のあるメッセージの再試行間の遅延」に値 5000 を設定します。 これは、障害のあるメッセージが MDB に送達可能になるまでの時間 (ミリ秒) です。 「連続障害メッセージのしきい値」および最大並行性が 1 に設定されている場合を除き、他のメッセージはこの期間内に送達される可能性があります。
- 「1 メッセージ当たりの最大デリバリー失敗数」に値 5 を設定します。 これはメッセージ処理試行の失敗の最大数で、その数を超えるとメッセージが本来の宛先から例外宛先に転送されます。 このプロパティーは、個々のメッセージに 適用されます。
このタスクについて
このシナリオでは、エンタープライズ・アプリケーションは、連続的に実行しているシステムであり、外部システム・リソースにアクセスするために、デプロイされた MDB を使用しています。
問題 メッセージ (このシナリオでは msg1) があると、それはキューに 戻されます。
msg1 は MDB ですぐに使用できるようになるのではなく、「障害のあるメッセージの再試行間の遅延」に設定された再試行遅延 5 秒の間は隠蔽されます。
キューにある次のメッセージ (msg2) が MDB によって処理されます。 このメッセージおよびそれ以降のメッセージは 成功します。
msg1 の「障害のあるメッセージの再試行間の遅延」が満了になると、msg1 は隠蔽が解除され、再処理されます。 このメッセージはもう一度キューに戻されます。
MDB は以降のメッセージを普通に処理し続けますが、msg1 は処理されるたびにキューに書き戻されます。
msg1 は、隠蔽を解除され、ロールバックされ、再び隠蔽された回数が「1 メッセージ当たりの最大デリバリー失敗数」限度 (このシナリオでは 5 回) に達すると、構成された例外宛先に移動されます。