286.6. 追記
286.6.1. メッセージヘッダーの形式 リンクのコピーリンクがクリップボードにコピーされました!
SJMS2 コンポーネントは、Camel JMS コンポーネントで使用されるのと同じヘッダー形式ストラテジーを使用します。このプラグ可能な戦略により、ネットワーク経由で送信されるメッセージが JMS メッセージ仕様に準拠することが保証されます。
exchange.in.header の場合、次のルールがヘッダーキーに適用されます。
-
JMSまたはJMSXで始まるキーは予約されています。 -
exchange.in.headersキーはリテラルで、すべて有効な Java 識別子である必要があります (キー名にドットを使用しないでください)。 Camel は、JMS メッセージを消費するときにドットとハイフンを置き換え、その逆を行います。
- Camel がメッセージを消費するときは、DOT と逆の置換に置き換えられます。
-
Camel がメッセージを消費するときは、HYPHEN と逆の置換に置き換えられます。
オプションjmsKeyFormatStrategyも参照してください。これにより、キーのフォーマットに独自のカスタム戦略を使用できます。
exchange.in.header の場合、次のルールがヘッダー値に適用されます。
286.6.2. メッセージ内容 リンクのコピーリンクがクリップボードにコピーされました!
ネットワーク経由でコンテンツを配信するには、配信されるメッセージの本文が JMS メッセージ仕様に準拠していることを確認する必要があります。したがって、生成されるものはすべて、プリミティブまたはそのカウンターオブジェクト (Integer、Long、Character など) のいずれかでなければなりません。タイプ String、CharSequence、Date、BigDecimal、および BigInteger はすべて、それらの toString() 表現に変換されます。他のすべてのタイプはドロップされます。
286.6.3. クラスタリング リンクのコピーリンクがクリップボードにコピーされました!
クラスター化された環境で SJMS2 と一緒に InOut を使用する場合、TemporaryQueue 宛先を使用するか、InOut プロデューサエンドポイントごとに宛先への一意の名前付き応答を使用する必要があります。メッセージ相関は、ブローカーのメッセージセレクターではなく、エンドポイントによって処理されます。InOut プロデューサエンドポイントは、メッセージ JMSCorrelationID によってキャッシュされた Java Concurrency Exchangers を使用します。これにより、パフォーマンスが大幅に向上し、ブローカーのオーバーヘッドが削減されます。これは、すべてのメッセージが、関心のあるコンシューマーによって生成された順序で宛先から消費されるためです。
現在、唯一の相関ストラテジーは JMSCorrelationId を使用することです。InOut Consumer はこのストラテジーを使用し、含まれている JMSReplyTo 宛先へのすべてのレスポンスメッセージにも、リクエストからコピーされた JMSCorrelationId が含まれるようにします。