9.5. メッセージヘッダー
Azure ServiceBus コンポーネントは、以下に示す 25 個のメッセージヘッダーをサポートしています。
名前 | 説明 | デフォルト | タイプ |
---|---|---|---|
CamelAzureServiceBusApplicationProperties (common) | producer と consumer によってそれぞれ送受信されるメッセージのアプリケーションプロパティー (カスタムプロパティーとも呼ばれます)。 | Map | |
CamelAzureServiceBusContentType (consumer) 定数: CONTENT_TYPE | メッセージのコンテンツタイプを取得します。 | 文字列 | |
CamelAzureServiceBusCorrelationId (consumer) 定数: CORRELATION_ID | 相関識別子を取得します。 | 文字列 | |
CamelAzureServiceBusDeadLetterErrorDescription (consumer) | デッドレターキューに追加されたメッセージの説明を取得します。 | 文字列 | |
CamelAzureServiceBusDeadLetterReason (consumer) | メッセージがデッドレターキューに追加された理由を取得します。 | 文字列 | |
CamelAzureServiceBusDeadLetterSource (consumer) | このメッセージがキューに格納されたキューまたはサブスクリプションの名前を取得してから、デッドレターに追加されます。 | 文字列 | |
CamelAzureServiceBusDeliveryCount (consumer) 定数: DELIVERY_COUNT | このメッセージがクライアントに配信された回数を取得します。 | long | |
CamelAzureServiceBusEnqueuedSequenceNumber (consumer) | 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) | 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) | (producer) メッセージが Service Bus キューまたはトピックに表示される OffsetDateTime をオーバーライドします。(consumer) このメッセージのスケジュールされたエンキュー時刻を取得します。 | OffsetDateTime | |
CamelAzureServiceBusServiceBusTransactionContext (producer) | サービス中のトランザクションをオーバーライドします。このオブジェクトにはトランザクション ID のみが含まれます。 | ServiceBusTransactionContext | |
CamelAzureServiceBusProducerOperation (producer) | producer で使用する目的の操作をオーバーライドします。 列挙値:
| ServiceBusProducerOperationDefinition |
9.5.1. メッセージボディー
producer では、このコンポーネントは String
型または List<String>
のメッセージ本文を受け入れてバッチメッセージを送信します。
cosumer では、返されるメッセージ本文は String.type になります。
9.5.2. Azure ServiceBus producer の操作
操作 | 説明 |
---|---|
| バッチアプローチを使用して、一連のメッセージを Service Bus キューまたはトピックに送信します。 |
| この送信者が接続されている Azure Service Bus エンティティーにスケジュールされたメッセージを送信します。スケジュールされたメッセージはキューに入れられ、スケジュールされたエンキュー時間にのみ受信者が利用できるようになります。 |
9.5.3. Azure ServiceBus consumer の操作
操作 | 説明 |
---|---|
| Service Bus エンティティーから <b>無限</b> のメッセージストリームを受信します。 |
| 受信側またはメッセージソースの状態を変更せずに、アクティブメッセージの次のバッチを読み取ります。 |
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");