検索

6.2. camel-jms

download PDF

camel-jms、camel-sjms、および camel-sjms2 エンドポイントをリモート AMQ 7 ブローカーに接続するサポート対象の方法は 2 つあります。

  1. JBoss EAPConfiguring Messaging の Configuring the Artemis Resource Adapter to Connect to Red Hat JBoss AMQ 7 セクションで説明されているように、pooled-connection-factory で remote-connector を設定する。
  2. connection-factory を使用した remote-connector の設定で説明されているように、connection-factory を使用して remote-connector を設定する。

接続プールと XA トランザクションのサポートを提供するため、最初のオプションが推奨される方法です。

永続サブスクライバーを使用するメッセージングのシナリオでは、JavaEE 7 仕様による制約があるため、pooled-connection-factory は Fuse 7.13 on JBoss EAP ではサポートされません。このようなシナリオでは、標準のプール化されていない connection-factory を設定することが推奨されます。

connection-factory を使用した remote-connector の設定

  1. リモートメッセージングサーバーを指す outbound-socket-binding を作成します。

    /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=messaging-remote-throughput:add(host=localhost, port=61616)
  2. ステップ 1 で作成した outbound-socket-binding を参照する remote-connector を作成します。

    /subsystem=messaging-activemq/server=default/remote-connector=netty-remote-throughput:add(socket-binding=messaging-remote-throughput)
  3. ステップ 2 で作成した remote-connector を参照する connection-factory を作成します。

    /subsystem=messaging-activemq/server=default/connection-factory=simple-remote-artemis-connection-factory:add(entries=[java:/jms/RemoteJms],connectors=[netty-remote-throughput])

6.2.1. メッセージングブローカーおよびクライアント

概要

Fuse 7.13 にはデフォルトの内部メッセージングブローカーが含まれていませんが、外部 JMS ブローカーとインターフェイスするように設計されています。

Fuse 7.13 on JBoss EAP は、JBoss EAP でのメッセージングの設定 で説明されているリソースアダプターを使用して、外部メッセージングブローカーにアクセスします。

Fuse 7.13 on JBoss EAP のメッセージングで使用できる外部ブローカー、JCA アダプター、および Camel コンポーネントの組み合わせに関する詳細は、Red Hat Fuse でサポートされる構成 を参照してください。

JMS を使用して Fuse on JBoss EAP を使用して外部ブローカーに接続する方法は、「camel-jms」を参照してください。

camel-jms クイックスタート

クイックスタートは、Fuse on JBoss EAP で camel-jms コンポーネントを使用して JMS メッセージを生成および消費する方法を示すために提供されます。

このクイックスタートでは、Camel ルートは EAP_HOME/standalone/data/orders からファイルを消費し、コンテンツを OrdersQueue という名前のインメモリー ActiveMQ Artemis キューに配置します。別の Camel ルートは OrdersQueue の内容を使用し、EAP_HOME/standalone/data/orders/processed 内で個別の国ディレクトリーへの注文を並べ替えます。

アプリケーションがデプロイおよびアンデプロイされるときに、JMS OrdersQueue の作成および削除を処理する OrdersQueue CLI スクリプトが CLI コマンドによって作成および削除されます。これらのスクリプトは EAP_HOME/quickstarts/camel-jms/src/main/resources/cli ディレクトリー内にあります。

前提条件

このクイックスタートを実行するには、作業バージョンの Fuse 7.13 が必要です。

外部 AMQ 7 ブローカーに接続するには、Using JBoss AMQ for remote JMS Communication の手順にも従う必要があります。続いて、デフォルトの接続ファクトリーと同じように、接続ファクトリーを注入できます。

@Resource(mappedName = "java:jboss/RemoteJmsXA")
ConnectionFactory connectionFactory;

クイックスタートのセットアップ

  1. JBOSS EAP をスタンドアロンモードで起動します。
  2. EAP_HOME/quickstarts/camel/camel-jms に移動します。
  3. mvn clean install -Pdeploy` を入力して、クイックスタートをビルドおよびデプロイします。
  4. http://localhost:8080/example-camel-jms を参照します。

'Orders Received' というタイトルのページが表示されるはずです。サンプルアプリケーションに注文を送信すると、国ごとの注文リストがこのページに表示されます。

クイックスタートの実行

EAP_HOME/quickstarts/camel/camel-jms/src/main/resources ディレクトリー内の順序 XML ファイルの例があります。Camel は 5 秒ごとにランダムにファイルを選択し、処理のために EAP_HOME/standalone/data/orders にコピーします。

コンソールには、各注文で何が発生したかを説明するメッセージが出力されます。出力は以下のようになります。

JmsConsumer[OrdersQueue]) Sending order to the UK
JmsConsumer[OrdersQueue]) Sending order to another country
JmsConsumer[OrdersQueue]) Sending order to the US

ファイルが消費されると、http://localhost:8080/example-camel-jms/orders に戻ることができます。各国の受注の数が 1 増えているはずです。

処理されたすべての注文は、以下の宛先に分割されます。

EAP_HOME/standalone/data/orders/processed/uk
EAP_HOME/standalone/data/orders/processed/us
EAP_HOME/standalone/data/orders/processed/other

アンデプロイ

例をアンデプロイするには、EAP_HOME/quickstarts/camel/camel-jmsmvn clean -Pdeploy を実行するようにします。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.