9.5. メッセージヘッダー


Azure ServiceBus コンポーネントは、以下に示す 25 個のメッセージヘッダーをサポートしています。

名前説明デフォルトタイプ

CamelAzureServiceBusApplicationProperties (common)

定数: APPLICATION_PROPERTIES

producer と consumer によってそれぞれ送受信されるメッセージのアプリケーションプロパティー (カスタムプロパティーとも呼ばれます)。

 

Map

CamelAzureServiceBusContentType (consumer)

定数: CONTENT_TYPE

メッセージのコンテンツタイプを取得します。

 

文字列

CamelAzureServiceBusCorrelationId (consumer)

定数: CORRELATION_ID

相関識別子を取得します。

 

文字列

CamelAzureServiceBusDeadLetterErrorDescription (consumer)

定数: DEAD_LETTER_ERROR_DESCRIPTION

デッドレターキューに追加されたメッセージの説明を取得します。

 

文字列

CamelAzureServiceBusDeadLetterReason (consumer)

定数: DEAD_LETTER_REASON

メッセージがデッドレターキューに追加された理由を取得します。

 

文字列

CamelAzureServiceBusDeadLetterSource (consumer)

定数: DEAD_LETTER_SOURCE

このメッセージがキューに格納されたキューまたはサブスクリプションの名前を取得してから、デッドレターに追加されます。

 

文字列

CamelAzureServiceBusDeliveryCount (consumer)

定数: DELIVERY_COUNT

このメッセージがクライアントに配信された回数を取得します。

 

long

CamelAzureServiceBusEnqueuedSequenceNumber (consumer)

定数: ENQUEUED_SEQUENCE_NUMBER

Service Bus によってメッセージに割り当てられた、キューに入れられたシーケンス番号を取得します。

 

long

CamelAzureServiceBusEnqueuedTime (consumer)

定数: ENQUEUED_TIME

このメッセージが Azure Service Bus でエンキューされた日時を取得します。

 

OffsetDateTime

CamelAzureServiceBusExpiresAt (consumer)

定数: EXPIRES_AT

このメッセージの有効期限が切れる日時を取得します。

 

OffsetDateTime

CamelAzureServiceBusLockToken (consumer)

定数: LOCK_TOKEN

現在のメッセージのロックトークンを取得します。

 

文字列

CamelAzureServiceBusLockedUntil (consumer)

定数: LOCKED_UNTIL

このメッセージのロックが切れる日時を取得します。

 

OffsetDateTime

CamelAzureServiceBusMessageId (consumer)

定数: MESSAGE_ID

メッセージの識別子を取得します。

 

文字列

CamelAzureServiceBusPartitionKey (consumer)

定数: PARTITION_KEY

パーティション分割されたエンティティーにメッセージを送信するためのパーティションキーを取得します。

 

文字列

CamelAzureServiceBusRawAmqpMessage (consumer)

定数: RAW_AMQP_MESSAGE

AMQP プロトコルで定義されたメッセージの表現。

 

AmqpAnnotatedMessage

CamelAzureServiceBusReplyTo (consumer)

定数: REPLY_TO

返信を送信するエンティティーのアドレスを取得します。

 

文字列

CamelAzureServiceBusReplyToSessionId (consumer)

定数: REPLY_TO_SESSION_ID

ReplyTo アドレスを拡張するセッション識別子を取得または設定します。

 

文字列

CamelAzureServiceBusSequenceNumber (consumer)

定数: SEQUENCE_NUMBER

Service Bus によってメッセージに割り当てられた一意の番号を取得します。

 

long

CamelAzureServiceBusSessionId (consumer)

定数: SESSION_ID

メッセージのセッション ID を取得します。

 

文字列

CamelAzureServiceBusSubject (consumer)

定数: SUBJECT

メッセージのサブジェクトを取得します。

 

文字列

CamelAzureServiceBusTimeToLive (consumer)

定数: TIME_TO_LIVE

このメッセージが期限切れになるまでの期間を取得します。

 

期間

CamelAzureServiceBusTo (consumer)

定数: TO

アドレスを取得します。

 

文字列

CamelAzureServiceBusScheduledEnqueueTime (common)

定数: SCHEDULED_ENQUEUE_TIME

(producer) メッセージが Service Bus キューまたはトピックに表示される OffsetDateTime をオーバーライドします。(consumer) このメッセージのスケジュールされたエンキュー時刻を取得します。

 

OffsetDateTime

CamelAzureServiceBusServiceBusTransactionContext (producer)

定数: SERVICE_BUS_TRANSACTION_CONTEXT

サービス中のトランザクションをオーバーライドします。このオブジェクトにはトランザクション ID のみが含まれます。

 

ServiceBusTransactionContext

CamelAzureServiceBusProducerOperation (producer)

定数: PRODUCER_OPERATION

producer で使用する目的の操作をオーバーライドします。

列挙値:

  • sendMessages
  • scheduleMessages
 

ServiceBusProducerOperationDefinition

9.5.1. メッセージボディー

producer では、このコンポーネントは String 型または List<String> のメッセージ本文を受け入れてバッチメッセージを送信します。

cosumer では、返されるメッセージ本文は String.type になります。

9.5.2. Azure ServiceBus producer の操作

操作説明

sendMessages

バッチアプローチを使用して、一連のメッセージを Service Bus キューまたはトピックに送信します。

scheduleMessages

この送信者が接続されている Azure Service Bus エンティティーにスケジュールされたメッセージを送信します。スケジュールされたメッセージはキューに入れられ、スケジュールされたエンキュー時間にのみ受信者が利用できるようになります。

9.5.3. Azure ServiceBus consumer の操作

操作説明

receiveMessages

Service Bus エンティティーから <b>無限</b> のメッセージストリームを受信します。

peekMessages

受信側またはメッセージソースの状態を変更せずに、アクティブメッセージの次のバッチを読み取ります。

9.5.3.1. 例

  • sendMessages
from("direct:start")
  .process(exchange -> {
         final List<Object> inputBatch = new LinkedList<>();
            inputBatch.add("test batch 1");
            inputBatch.add("test batch 2");
            inputBatch.add("test batch 3");
            inputBatch.add(123456);

            exchange.getIn().setBody(inputBatch);
       })
  .to("azure-servicebus:test//?connectionString=test")
  .to("mock:result");
  • scheduleMessages
from("direct:start")
  .process(exchange -> {
         final List<Object> inputBatch = new LinkedList<>();
            inputBatch.add("test batch 1");
            inputBatch.add("test batch 2");
            inputBatch.add("test batch 3");
            inputBatch.add(123456);

            exchange.getIn().setHeader(ServiceBusConstants.SCHEDULED_ENQUEUE_TIME, OffsetDateTime.now());
            exchange.getIn().setBody(inputBatch);
       })
  .to("azure-servicebus:test//?connectionString=test&producerOperation=scheduleMessages")
  .to("mock:result");
  • receiveMessages
from("azure-servicebus:test//?connectionString=test")
  .log("${body}")
  .to("mock:result");
  • peekMessages
from("azure-servicebus:test//?connectionString=test&consumerOperation=peekMessages&peekNumMaxMessages=3")
  .log("${body}")
  .to("mock:result");
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.