169.14. ライブ時間


同期されたクロックに関する最初の読み取り。

Camel を使用して JMS 上でリクエスト/リプライ(InOut)を行う場合、Camel は送信者側でタイムアウトを使用します。デフォルトは requestTimeout オプションから 20 秒です。これを制御するには、より高い/低レイテンシーの値を設定します。ただし、ライブ値の持続時間は、送信される JMS メッセージに設定されます。したがって、システム間でクロックを同期する必要があります。有効でない場合は、ライブ値の設定時間を無効にする必要がある場合があります。これは、Camel 2.8 以降の disableTimeToLive オプションを使用できるようになりました。そのため、このオプションを disableTimeToLive=true に設定すると、Camel は JMS メッセージの送信時に常にライブ値を設定し ませんただし、 リクエストのタイムアウトは引き続きアクティブです。たとえば、JMS 上でリクエスト/応答を実行し、ライブ時間を無効にした場合、Camel は引き続き 20 秒のタイムアウトを使用します( requestTimeout オプション)。このオプションは、ほとんどの場合設定することもできます。そのため、requestTimeoutdisableTimeToLive の 2 つのオプションにより、リクエスト/応答の実行時により詳細な制御が可能になります。

Camel 2.13/2.12.3 以降では、メッセージにヘッダーを指定して、設定されたエンドポイントではなく、リクエストのタイムアウト値として使用できます。以下に例を示します。

   from("direct:someWhere")
     .to("jms:queue:foo?replyTo=bar&requestTimeout=30s")
     .to("bean:processReply");
Copy to Clipboard Toggle word wrap

上記のルートでは、エンドポイント requestTimeout を 30 秒に設定します。そのため、Camel は応答メッセージがバーキューで戻されるまで 30 秒待機します。応答メッセージを受信しないと、org.apache.camel.ExchangeTimedOutException がエクスチェンジに設定され、Camel はメッセージをルーティングを継続し、例外により失敗し、Camel のエラーハンドラーが反応します。

メッセージごとのタイムアウト値を使用する場合は、定数値 "CamelJmsRequestTimeout" が長い型を持つ org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT のキー org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT でヘッダーを設定することができます。

たとえば、以下のように Bean を使用して、サービス Bean の "whatIsTheTimeout" メソッドを呼び出すなど、個別のメッセージごとにタイムアウト値を算出することができます。

   from("direct:someWhere")
     .setHeader("CamelJmsRequestTimeout", method(ServiceBean.class, "whatIsTheTimeout"))
     .to("jms:queue:foo?replyTo=bar&requestTimeout=30s")
     .to("bean:processReply");
Copy to Clipboard Toggle word wrap

Camel を使用して JMS 経由で(InOut)を実行し、忘れると、デフォルトでは Camel はメッセージをライブ値に設定し ませんtimeToLive オプションを使用して値を設定できます。たとえば、timeToLive=5000 を設定します。disableTimeToLive オプションを使用すると、InOnly メッセージングでも、ライブ時間の無効化を強制できます。requestTimeout オプションは InOnly メッセージングには使用されません。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat