第83章 ダイレクト仮想マシンコンポーネント

Camel バージョン 2.10 以降で利用可能

direct-vm: コンポーネントは、プロデューサがメッセージエクスチェンジを送信するときに、JVM 内のすべてのコンシューマーの直接の同期呼び出しを提供します。
このエンドポイントを使用して、同じ camel コンテキスト内の既存のルートを接続したり、同じ JVM 内の他の camel コンテキストから接続したりできます。

このコンポーネントは、Direct-VM が CamelContext インスタンス間の通信をサポートするという点で Direct コンポーネントとは異なります。そのため、このメカニズムを使用して Web アプリケーション間で通信できます (camel-core.jar がシステム/ブートクラスパスにある場合)。

実行時に、既存のコンシューマーを停止して新しいコンシューマーを開始することにより、新しいコンシューマーをスワップできます。
ただし、任意の時点で、特定のエンドポイントに対して最大で 1 つのアクティブなコンシューマーしか存在できません。

このコンポーネントを使用すると、後でわかるように、異なる OSGI バンドルにデプロイされたルートを接続することもできます。それらが異なるバンドルで実行されている場合でも、キャメルルートは使用します
同じスレッド。これは、Transactions - Tx を使用してアプリケーションを開発するために自動化されます。

image

83.1. URI 形式

direct-vm:someName

someName は、エンドポイントを一意に識別する任意の文字列にすることができます。