Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第182章 VM
仮想マシンコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、VM が CamelContext インスタンス間の通信をサポートする点で SEDA コンポーネントとは異なります。そのため、このメカニズムを使用して Web アプリケーション全体で通信できます(
camel-core.jar
が システム/ブート
クラスパスにあることを想定)。
仮想マシンは SEDA コンポーネントの拡張です。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
vm:queueName[?options]
vm:queueName[?options]
queueName
には、JVM 内のエンドポイントを一意に識別する任意の文字列(または少なくとも camel-core.jar をロードしたクラ出力ダー内)を指定できます。
URI にクエリーオプションは
?option=value&option=value&.. の形式で追加できます。
Camel 2.3 より前のバージョン - プロデューサーとコンシューマーの両方に同じ URI を使用する必要があります。
完全に同一の 仮想マシン エンドポイント URI は、プロデューサーとコンシューマーエンドポイントの両方に使用 する必要があり ます。そうしないと、URI の
queueName
部分が同じであるにもかかわらず、Camel は 2 つ目の 仮想マシン エンドポイントを作成します。以下に例を示します。
from("direct:foo").to("vm:bar?concurrentConsumers=5"); from("vm:bar?concurrentConsumers=5").to("file://output");
from("direct:foo").to("vm:bar?concurrentConsumers=5");
from("vm:bar?concurrentConsumers=5").to("file://output");
プロデューサーとコンシューマーの両方にオプションを含む、完全な URI を使用する必要があります。
Camel 2.4 では、キュー名のみが一致するように修正されました。キュー名
バー
を使用して、以下のように以前の exmple を書き換えることができます。
from("direct:foo").to("vm:bar"); from("vm:bar?concurrentConsumers=5").to("file://output");
from("direct:foo").to("vm:bar");
from("vm:bar?concurrentConsumers=5").to("file://output");
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
サンプル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下のルートでは、CamelContext インスタンス全体のエクスチェンジを
order.email
という名前の仮想マシンキューに送信します。
from("direct:in").bean(MyOrderBean.class).to("vm:order.email");
from("direct:in").bean(MyOrderBean.class).to("vm:order.email");
その後、他の Camel コンテキストでエクスチェンジを受信します(別の
.war
アプリケーションにデプロイされるなど)。
from("vm:order.email").bean(MyOrderEmailSender.class);
from("vm:order.email").bean(MyOrderEmailSender.class);