52.2. URI 形式


jms:[queue:|topic:]destinationName[?options]
Copy to Clipboard Toggle word wrap

ここで、destinationName は JMS キューまたはトピック名です。デフォルトでは、destinationName はキュー名として解釈されます。たとえば、キューに接続するには、FOO.BAR を次のように使用します。

jms:FOO.BAR
Copy to Clipboard Toggle word wrap

必要に応じて、オプションの queue: 接頭辞を含めることができます。

jms:queue:FOO.BAR
Copy to Clipboard Toggle word wrap

トピックに接続するには、topic: 接頭辞を含める 必要 があります。たとえば、トピック Stocks.Prices に接続するには、次を使用します。

jms:topic:Stocks.Prices
Copy to Clipboard Toggle word wrap

次の形式を使用して、クエリーオプションを URI に追加します。

?option=value&option=value&…​

52.2.1. ActiveMQ の使用

JMS コンポーネントは、Spring 2 の JmsTemplate を再利用してメッセージを送信します。これは非 J2EE コンテナーでの使用には理想的ではなく、通常、パフォーマンスの低下 を避けるために JMS プロバイダーでのキャッシュが必要になります。

Apache ActiveMQ をメッセージブローカーとして使用する場合は、次のいずれかを実行することを推奨します。

  • ActiveMQ を効率的に使用するためにすでに最適化されている ActiveMQ コンポーネントを使用する
  • ActiveMQ で PoolingConnectionFactory を使用します。

52.2.2. トランザクションとキャッシュレベル

メッセージを消費してトランザクションを使用している場合 (transacted=true)、キャッシュレベルのデフォルト設定がパフォーマンスに影響を与える可能性があります。

XA トランザクションを使用している場合は、XA トランザクションが正しく機能しなくなる可能性があるため、キャッシュできません。

XA を使用して いない 場合は、cacheLevelName=CACHE_CONSUMER を設定するなど、キャッシュを使用してパフォーマンスを高速化することを検討する必要があります。

cacheLevelName のデフォルト設定は CACHE_AUTO です。このデフォルトの自動モードはモードを検出し、それに応じてキャッシュレベルを設定します。

  • transacted=false の場合は CACHE_CONSUMER
  • transacted=true の場合は CACHE_NONE

したがって、デフォルト設定は保守的であると言えます。非 XA トランザクションを使用している場合は、cacheLevelName=CACHE_CONSUMER の使用を検討してください。

52.2.3. JMS 1.1 の永続サブスクリプション

永続トピックサブスクリプションを使用する場合は、clientIddurableSubscriptionName の両方を指定する必要があります。clientId の値は一意である必要があり、ネットワーク全体で単一の JMS 接続インスタンスによってのみ使用できます。

注記

Apache ActiveMQ Classic を使用している場合は、Virtual Topic と呼ばれる機能を使用することが推奨されます。これにより、一意の clientId が不要になります。この機能を活用する方法の詳細は、Artemis または ActiveMQ Classic のドキュメントを参照してください。ActiveMQ Classic の永続メッセージングの詳細は、こちら を参照してください。

52.2.3.1. JMS 2.0 の永続サブスクリプション

永続トピックサブスクリプションを使用する場合は、durableSubscriptionName を指定する必要があります。

52.2.4. メッセージヘッダーのマッピング

JMS 仕様では、メッセージヘッダーを使用する場合、ヘッダー名は有効な Java 識別子である必要があると規定されています。そのため、有効な Java 識別子になるようにヘッダーに名前を付けるようにしてください。これを行う利点の 1 つは、JMS セレクター内でヘッダーを使用できることです (その SQL92 構文では、ヘッダーの Java 識別子構文が義務付けられています)。

デフォルトでは、ヘッダー名をマッピングする単純な方法が使用されます。以下に示すように、ヘッダー名のドットとハイフンをすべて置き換え、ネットワーク経由で送信された JMS メッセージからヘッダー名が復元されたときに置き換えを元に戻す方法です。意味を確認するBean コンポーネントで呼び出すメソッド名が失われたり、ファイルコンポーネントのファイル名ヘッダーが失われたりすることはもうありません。

Camel でヘッダー名を受け入れるための現在のヘッダー名戦略は次のとおりです。

  • ドットは `DOT` に置き換えられ、Camel がメッセージを消費すると置換が逆になります
  • ハイフンは `HYPHEN` に置き換えられ、Camel がメッセージを消費すると置換が逆になります

JMS エンドポイントでさまざまなプロパティーを設定できます。これらのプロパティーは、JMSConfiguration オブジェクトのプロパティーにマップされます。

注記

Spring JMS へのマッピング
これらのプロパティーの多くは、Camel がメッセージの送受信に使用する Spring JMS のプロパティーにマップされます。したがって、関連する Spring ドキュメントを参照することで、これらのプロパティーに関する詳細情報を取得できます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る