第5章 SSL 設定オプション
本章では、AMQ JMS で利用可能な設定オプションについて説明します。
JMS 設定オプションは、接続 URI でクエリーパラメーターとして設定されます。詳細は、「接続 URI」 を参照してください。
5.1. JMS オプション
これらのオプションは、Connection
、Session
、MessageConsumer
、MessageProducer
などの JMS オブジェクトの動作を制御します。
- jms.username
- クライアントが接続を認証するために使用するユーザー名。
- jms.password
- クライアントが接続を認証するために使用するパスワード。
- jms.clientID
- クライアントが接続に適用するクライアント ID。
- jms.forceAsyncSend
-
有効にすると、
MessageProducer
からのすべてのメッセージが非同期に送信されます。それ以外の場合、非永続メッセージやトランザクション内のメッセージなど、特定の種類のみが非同期で送信されます。これはデフォルトで無効にされます。 - jms.forceSyncSend
-
有効にすると、
MessageProducer
からのすべてのメッセージが同期的に送信されます。これはデフォルトで無効にされます。 - jms.forceAsyncAcks
- 有効にすると、すべてのメッセージ承認は非同期で送信されます。これはデフォルトで無効にされます。
- jms.localMessageExpiry
-
有効にすると、
MessageConsumer
によって受信される期限切れのメッセージはすべてフィルタリングされ、配信されません。これはデフォルトで有効になっています。 - jms.localMessagePriority
- 有効にすると、事前にフェッチされたメッセージはメッセージの優先度の値に基づいてローカルに並べ替えられます。これはデフォルトで無効にされます。
- jms.validatePropertyNames
- 有効にすると、メッセージプロパティー名が有効な Java 識別子である必要があります。これはデフォルトで有効になっています。
- jms.receiveLocalOnly
-
これを有効にすると、timeout 引数を指定した
receive
の呼び出しは、コンシューマーのローカルメッセージバッファーのみを確認します。タイムアウトが期限切れになると、リモートピアをチェックして、メッセージがないことを確認します。これはデフォルトで無効にされます。 - jms.receiveNoWaitLocalOnly
-
有効にすると、
receiveNoWait
に対する呼び出しは、コンシューマーのローカルメッセージバッファーのみを確認します。それ以外の場合は、リモートピアをチェックし、利用可能なメッセージがないことを確認することができます。これはデフォルトで無効にされます。 - jms.queuePrefix
-
Session
から作成されるQueue
の名前に追加される任意のプレフィックス値。 - jms.topicPrefix
-
Session
から作成されるTopic
の名前に追加される任意のプレフィックス値。 - jms.closeTimeout
- 返される前にクライアントが通常のリソースクリップを待つ時間 (ミリ秒単位)。デフォルトは 60000 (60 秒) です。
- jms.connectTimeout
- エラーを返す前にクライアントが接続確立を待つ時間 (ミリ秒単位)。デフォルトは 15000 (15 秒) です。
- jms.sendTimeout
- エラーを返す前に、クライアントが 同期メッセージを送信 するのを待機する期間 (ミリ秒単位)。デフォルトでは、クライアントは送信が完了するまで無期限に待機します。
- jms.requestTimeout
- クライアントがエラーを返す前に、リモートピアでプロデューサまたはコンシューマー (送信を除く) を開くなど、さまざまな同期インタラクションが完了するまで待機する時間 (ミリ秒単位)。デフォルトでは、クライアントはリクエストが完了するまで無期限に待機します。
- jms.clientIDPrefix
-
ConnectionFactory
で新しいConnection
を作成する際に、クライアント ID 値を生成するために使用されるオプションの接頭辞値。デフォルトはID:
です。 - jms.connectionIDPrefix
-
ConnectionFactory
で新しいConnection
を作成する際に、クライアント ID 値を生成するために使用されるオプションの接頭辞値。この接続 ID は、Connection
オブジェクトから一部の情報をログに記録する際に使用されるため、設定可能な接頭辞を使用するとログのブレッドをより容易にすることができます。デフォルトはID:
です。 - jms.populateJMSXUserID
-
有効な場合は、接続から認証済みユーザー名を使用して、送信された各メッセージの
JMSXUserID
プロパティーを設定します。これはデフォルトで無効にされます。 - jms.awaitClientID
- 有効にすると、URI で設定されたクライアント ID のない接続は、クライアント ID がプログラムを設定するまで待機するか、または AMQP コネクション「open」を送信する前に何も設定できない確認を行います。これはデフォルトで有効になっています。
- jms.useDaemonThread
- 有効にすると、コネクションはデーモン以外のスレッドではなく、エグゼキューターにデーモンスレッドを使用します。これはデフォルトで無効にされます。
- jms.tracing
-
トレースプロバイダーの名前。サポートされる値は
opentracing
およびnoop
です。デフォルトはnoop
です。
prefetch ポリシーオプション
prefetch ポリシーは、各 MessageConsumer
がリモートピアから取得し、ローカルの「prefetch」バッファーに保持されるメッセージ数を決定します。
- jms.prefetchPolicy.queuePrefetch
- デフォルトは 1000 です。
- jms.prefetchPolicy.topicPrefetch
- デフォルトは 1000 です。
- jms.prefetchPolicy.queueBrowserPrefetch
- デフォルトは 1000 です。
- jms.prefetchPolicy.durableTopicPrefetch
- デフォルトは 1000 です。
- jms.prefetchPolicy.all
- これは、すべての事前にフェッチされた値を 1 度に設定するために使用できます。
prefetch の値は、キューまたは共有サブスクリプションの複数のコンシューマーへのメッセージの分散に影響します。値が大きいと、各コンシューマーに一度に送信されるバッチが大きくなる可能性があります。より均等にラウンドロビンの分散を実現するには、小さい値を使用します。
再配信ポリシーオプション
再配信ポリシーは、クライアント上で再配信されたメッセージの処理方法を制御します。
- jms.redeliveryPolicy.maxRedeliveries
- 受信メッセージが再配信された回数に基づいて拒否されるタイミングを制御します。値が 0 の場合は、メッセージの再配信が許可されないことを示します。値が 5 の場合、メッセージを 5 回など再送することができます。デフォルトは -1 で、無制限を意味します。
- jms.redeliveryPolicy.outcome
-
設定された maxRedeliveries 値を超過すると、メッセージに適用される結果を制御します。サポートされる値は
ACCEPTED
、REJECTED
、RELEASED
、MODIFIED_FAILED
、およびMODIFIED_FAILED_UNDELIVERABLE
です。デフォルト値はMODIFIED_FAILED_UNDELIVERABLE
です。
メッセージ ID ポリシーオプション
メッセージ ID ポリシーは、クライアントから送信されたメッセージに割り当てられたメッセージ ID のデータタイプを制御します。
- jms.messageIDPolicy.messageIDType
-
デフォルトでは、生成された
String
値は送信メッセージのメッセージ ID に使用されます。その他の利用可能なタイプは、UUID
、UUID_STRING
、およびPREFIXED_UUID_STRING
です。
Presettle ポリシーオプション
Presettle ポリシーは、AMQP の事前設定されたメッセージングセマンティクスを使用するように設定されているプロデューサーまたはコンシューマーインスタンスが設定されたタイミングを制御します。
- jms.presettlePolicy.presettleAll
- 有効な場合は、作成されたプロデューサーおよび非トランザクションコンシューマーはすべて、事前設定モードで動作します。これはデフォルトで無効にされます。
- jms.presettlePolicy.presettleProducers
- 有効な場合は、すべてのプロデューサーが事前設定されたモードで動作します。これはデフォルトで無効にされます。
- jms.presettlePolicy.presettleTopicProducers
-
有効にすると、
Topic
またはTemporaryTopic
宛先に送信されたすべてのプロデューサーは、事前に設定されたモードで動作します。これはデフォルトで無効にされます。 - jms.presettlePolicy.presettleQueueProducers
-
有効にすると、
Queue
またはTemporaryQueue
宛先に送信されたすべてのプロデューサーは、事前に設定されたモードで動作します。これはデフォルトで無効にされます。 - jms.presettlePolicy.presettleTransactedProducers
-
有効な場合、トランザクション
Session
で作成されたプロデューサーは事前設定モードで動作します。これはデフォルトで無効にされます。 - jms.presettlePolicy.presettleConsumers
- 有効にすると、すべてのコンシューマーは事前に設定されたモードで動作します。これはデフォルトで無効にされます。
- jms.presettlePolicy.presettleTopicConsumers
-
有効にすると、
Topic
またはTemporaryTopic
宛先から受信されたコンシューマーはすべて、事前セットモードで動作します。これはデフォルトで無効にされます。 - jms.presettlePolicy.presettleQueueConsumers
-
有効にすると、
Queue
またはTemporaryQueue
宛先から受信されたコンシューマーはすべて、事前セットモードで動作します。これはデフォルトで無効にされます。
デシリアライズポリシーオプション
デシリアライズポリシーは、シリアル化された Java Object
コンテンツで構成される受信 ObjectMessage
からボディーを取得しつつ、どの Java タイプがオブジェクトストリームからデシリアライズされるかを制御する手段を提供します。デフォルトでは、本文のデシリアライズの試行時にすべてのタイプが信頼されます。デフォルトのデシリアライズポリシーは、ホワイトリストと Java クラスまたはパッケージ名のブラックリストを指定できるようにする URI オプションを提供します。
- jms.deserializationPolicy.whiteList
-
blackList
によって上書きされない限り、ObjectMessage
の内容をデシリアライズする際に許可されるクラス名のコンマ区切りリスト。このリストの名前は、パターンの値ではありません。java.util.Map
またはjava.util
のように、正確なクラスまたはパッケージ名を設定する必要があります。パッケージの一致には、サブパッケージが含まれます。デフォルトではすべてを許可します。 - jms.deserializationPolicy.blackList
-
ObjectMessage
の内容をデシリアライズする際に拒否されるクラス名とパッケージ名のコンマ区切りリスト。このリストの名前は、パターンの値ではありません。java.util.Map
またはjava.util
のように、正確なクラスまたはパッケージ名を設定する必要があります。パッケージの一致には、サブパッケージが含まれます。デフォルトでは、none が回避されます。