このセクションでは、[キューにメッセージを残す] オプションについて説明し、このオプションを使用する場合に発生する可能性がある問題について述べます。
説明
JMS QueueBrowser API を使用して、(メッセージをキューから削除せずに) JMS キューにポストされたメッセージを追跡する場合、[キューにメッセージを残す] オプションをオンにします。このように設定すると、SOAtest はトランザクションに影響を与えることなくメッセージをモニタリングできます。
考察
このオプションは JMS QueueBrowser API を使用してキューのメッセージをモニタリングします。しかし、JMS QueueBrowser API の制限がオプションに影響を与える可能性があります。
JMS QueueBrowser は pull メカニズムでしかキューのメッセージのリストを取得できません。そのため、SOAtest の QueueBrowser がメッセージを確認する前にキューにメッセージが送信され、取得される可能性があります。JMS 仕様は JMS ベンダーにメッセージの動的なリストを提供するよう要求していないため、取得されたリストはある特定の時点でのスナップショットでしかありません。
それでも、JMS メッセージがキューに送信されてから、別のアプリケーションによって取得されるまでにある程度の猶予がある場合、つまり SOAtest の QueueBrowser が新しいメッセージを定期的にポーリングして確認するための時間がある場合には、このオプションは問題なく動作します。
キューのメッセージをモニタリングする場合、使用している JMS/ESB プラットフォームに、アプリケーションがトレース目的で使用できる特別なシステム トピックが用意されているかどうかを確認してください。TIBCO や Sonic などの多くのベンダーは、そのようなトピックを用意しています。そのようなトピックは大抵マニュアルの「トレース」、「モニタリング」または「ログ記録」といったセクションで説明されています。
JMS トピックのモニタリングは、この制限の影響を受けません。なぜなら、トピックはサブスクリプション モデルを使用して、パブリッシュされたメッセージがトピックのすべてのサブスクライバーによって参照されることを保証しているからです (メッセージが指定されたメッセージ セレクター条件に一致する場合)。