第5章 設定オプション


本章では、AMQ JMS で利用可能な設定オプションについて説明します。

JMS 設定オプションは、接続 URI でクエリーパラメーターとして設定されます。詳細は、「「接続 URI」」を参照してください。

5.1. JMS オプション

これらのオプションは、ConnectionSessionMessageConsumerMessageProducer などの 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
これは、すべての事前にフェッチされた値を一度に設定するために使用できます。

prefetch の値は、キューまたは共有サブスクリプションの複数のコンシューマーへのメッセージの分散に影響します。値が大きいと、各コンシューマーに一度に送信されるバッチが大きくなる可能性があります。より均等にラウンドロビンの分散を実現するには、小さい値を使用します。

再配信ポリシーオプション

再配信ポリシーは、クライアント上で再配信されたメッセージの処理方法を制御します。

jms.redeliveryPolicy.maxRedeliveries
受信メッセージが再配信された回数に基づいて拒否されるタイミングを制御します。値が 0 の場合は、メッセージの再配信が許可されないことを示します。値が 5 の場合、メッセージを 5 回再送することができます。デフォルトは -1 で、無制限を意味します。
jms.redeliveryPolicy.outcome
設定された maxRedeliveries 値を超過した後にメッセージに適用される結果を制御します。サポートされる値は ACCEPTEDREJECTEDRELEASEDMODIFIED_FAILED、および MODIFIED_FAILED_UNDELIVERABLE です。デフォルト値は MODIFIED_FAILED_UNDELIVERABLE です。

メッセージ ID ポリシーオプション

メッセージ ID ポリシーは、クライアントから送信されたメッセージに割り当てられたメッセージ ID のデータタイプを制御します。

jms.messageIDPolicy.messageIDType
デフォルトでは、生成された String 値は送信メッセージのメッセージ ID に使用されます。その他の利用可能なタイプは、UUIDUUID_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
ObjectMessage のコンテンツをデシリアライズする際に許可されるクラス名のコンマ区切りリスト (blackList によって上書きされない限り)。このリストの名前はパターンの値ではありません。java.util.Map または java.util にあるように、正確なクラスまたはパッケージ名を設定する必要があります。パッケージの一致には、サブパッケージが含まれます。デフォルトではすべてを許可します。
jms.deserializationPolicy.blackList
ObjectMessage の内容をデシリアライズする際に拒否されるべきであるクラス名とパッケージ名のコンマ区切りリスト。このリストの名前はパターンの値ではありません。java.util.Map または java.util にあるように、正確なクラスまたはパッケージ名を設定する必要があります。パッケージの一致には、サブパッケージが含まれます。デフォルトでは、none が回避されます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.