第35章 Direct-VM


Direct VM コンポーネント

Camel 2.10 以降で利用可能
direct-vm: コンポーネントは、プロデューサーがメッセージエクスチェンジを送信するときに JVM のコンシューマーを直接同期呼び出しを提供します。このエンドポイントは、同じ Camel コンテキスト内の既存のルートと、同じ JVM の他の Camel コンテキストから接続するために使用できます。
このコンポーネントは、 Direct -VM が CamelContext インスタンス全体の通信をサポートする点で Direct コンポーネントとは異なります。そのため、このメカニズムを使用して Web アプリケーション全体で通信できます(camel-core.jar がシステム/ブートクラスパス上にある場合)。
ランタイム時に、既存のコンシューマーを停止し、新しいコンシューマーを開始することで、新しいコンシューマーにスワップできます。ただし、ある時点では、特定のエンドポイントに対して最大 1 つのアクティブなコンシューマーしか存在できません。
このコンポーネントを使用すると、以下の後に確認できるように、異なる OSGI バンドルにデプロイされたルートを接続することもできます。異なるバンドルで実行されている場合でも、Camel ルートは同じスレッドを使用します。トランザクションを使用してアプリケーションを開発するための自動スリア(Tx)。

URI 形式

direct-vm:someName
Copy to Clipboard Toggle word wrap
someName には、エンドポイントを一意に識別する任意の文字列を指定できます。

オプション

Expand
名前 デフォルト値 説明
block false Camel 2.11.1: アクティブなコンシューマーのないダイレクトエンドポイントにメッセージを送信する場合は、プロデューサーにブロックし、コンシューマーがアクティブになるのを待つようにプロデューサーに指示することができます。
timeout 30000 Camel 2.11.1: ブロックが有効な場合に使用するタイムアウト値。
failIfNoConsumers true
Camel 2.16.0: アクティブなコンシューマーのない DIRECT エンドポイントに送信するときにプロデューサーが例外を出力して失敗するかどうかを示します。

サンプル

以下のルートでは、direct コンポーネントを使用して 2 つのルートをリンクします。
from("activemq:queue:order.in")
    .to("bean:orderServer?method=validate")
    .to("direct-vm:processOrder");
Copy to Clipboard Toggle word wrap
別の CamelContext (別の OSGi バンドルなど)で
from("direct-vm:processOrder")
    .to("bean:orderService?method=process")
    .to("activemq:queue:order.out");
Copy to Clipboard Toggle word wrap
Spring DSL を使用した例:
   <route>
     <from uri="activemq:queue:order.in"/>
     <to uri="bean:orderService?method=validate"/>
     <to uri="direct-vm:processOrder"/>
  </route>

  <route>
     <from uri="direct-vm:processOrder"/>
     <to uri="bean:orderService?method=process"/>
     <to uri="activemq:queue:order.out"/>
  </route>
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat