検索

169.18.6. エクスチェンジを格納するデッドレターキューとしての JMS の使用

download PDF

通常、JMS をトランスポートとして使用すると、本文とヘッダーのみをペイロードとして転送します。デッドレター チャネルで JMS を使用し、JMS キューを Dead Letter Queue として使用する場合、通常は原因となった例外は JMS メッセージに保存されません。ただし、JMS のデッドレターキューで transferExchange オプションを使用して、org.apache.camel.impl.DefaultExchangeHolder を保持する javax.jms.ObjectMessage としてエクスチェンジ全体をキューに保存するように指示します。これにより、Dead Letter Queue から消費し、キー Exchange.EXCEPTION_CAUGHT で Exchange プロパティーから原因の例外を取得できます。以下のデモは、以下を示しています。

// setup error handler to use JMS as queue and store the entire Exchange
errorHandler(deadLetterChannel("jms:queue:dead?transferExchange=true"));

その後、JMS キューから消費して問題を分析できます。

from("jms:queue:dead").to("bean:myErrorAnalyzer");

// and in our bean
String body = exchange.getIn().getBody();
Exception cause = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class);
// the cause message is
String problem = cause.getMessage();
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.