2.37. JMS


JMS Queue または Topic との間でメッセージを送受信します。

2.37.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.37.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jms</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.37.3. 用途

2.37.3.1. org.w3c.dom.Node を使用したメッセージマッピング

Camel JMS コンポーネントは、javax.jms.Message および org.apache.camel.Message 間のメッセージマッピングをサポートします。Camel メッセージ本文タイプ org.w3c.dom.Node を変換する場合は、camel-quarkus-jaxp エクステンションがクラスパスに存在することを確認する必要があります。

2.37.3.2. javax.jms.ObjectMessage のネイティブモードのサポート

JMS メッセージペイロードを javax.jms.ObjectMessage として送信する場合、シリアル化のために登録する関連クラスに @RegisterForReflection (serialization = true) でアノテーションを付ける必要があります。

注記

このエクステンションは、quarkus.camel.native.reflection.serialization-enabled = true を自動的に設定します。詳細については、ネイティブモードのユーザーガイド を参照してください。

2.37.3.3. 接続プーリングと X/Open XA 分散トランザクションのサポート

注記

Quarkus 向けの Camel 拡張機能のこのリリースでは、接続プーリングは、テクニカルプレビュー機能となっています。

camel-quarkus-jms コンポーネントで接続プールを使用するには、io.quarkiverse.artemis:quarkus-artemis および io.quarkiverse.messaginghub:quarkus-pooled-jms を pom.xml に追加し、次の設定を指定する必要があります。

quarkus.pooled-jms.max-connections = 8
Copy to Clipboard Toggle word wrap

quarkus-pooled-jms エクステンションを使用して、JMS 接続のプーリングと XAのサポートを得ることができます。詳細は、quarkus-pooled-jms エクステンションドキュメントを参照してください。現在、quarkus-artemis-jms 拡張でのみ動作します。これら 2 つの依存関係を pom.xml に追加するだけです。

<dependency>
    <groupId>io.quarkiverse.messaginghub</groupId>
    <artifactId>quarkus-pooled-jms</artifactId>
</dependency>
<dependency>
    <groupId>io.quarkiverse.artemis</groupId>
    <artifactId>quarkus-artemis-jms</artifactId>
    <version>2.0.1</version>
</dependency>
Copy to Clipboard Toggle word wrap
注記

プーリングはデフォルトで有効になっています。

XA を有効にするには、次の設定を application.properties に追加する必要があります。

quarkus.pooled-jms.xa.enabled=true
Copy to Clipboard Toggle word wrap
注記

プーリング接続では、clientIDdurableSubscriptionName はサポートされていません。プールから reused された接続で setClientID が呼び出されると、IllegalStateException が出力されます。次のようなエラーメッセージが表示されます。Cause: setClientID can only be called directly after the connection is created

2.37.4. ネイティブモードの transferException オプション

ネイティブモードで transferException オプションを使用するには、オブジェクトのシリアル化のサポートを有効にする必要があります。詳細については、ネイティブモードのユーザーガイド を参照してください。

また、シリアル化する予定の例外クラスのシリアル化を有効にする必要があります。以下に例を示します。

@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat