48.14.2. Orphan Lock 対応の Jdbc IdempotentRepository


org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository の制限の 1 つは、JVM クラッシュまたは非正常なシャットダウンから生じる孤立したロックを処理しないことです。これにより、これが camel-file、camel-ftp などで使用されると、処理されていないファイル/メッセージが発生する可能性があります。孤立したロック処理に対応する必要がある場合は、org.apache.camel.processor.idempotent.jdbc.JdbcOrphanLockAwareIdempotentRepository を使用します。このリポジトリーは、アプリケーションのインスタンスが保持するロックを追跡します。保持されているロックごとに、アプリケーションはキープアライブシグナルをロックリポジトリーに送信し、作成されたAt 列を現在の Timestamp で更新します。アプリケーションインスタンスがロックを取得しようとすると、3 つの可能性があります。

  • ロックエントリーが存在しない場合は、JdbcMessageIdRepository のベース実装を使用してロックが提供されます。
  • ロックがすでに存在し、作成されたAt < System.currentTimeMillis ()- lockMaxAgeMillis.この場合、アクティブなインスタンスにロックがあり、ロックを要求する新規インスタンスにロックが提供されないことを前提とします。
  • ロックがすでに存在し、作成されたAt > = System.currentTimeMillis ()- lockMaxAgeMillis.この場合、ロックのあるアクティブなインスタンスがなく、要求元のインスタンスにロックが提供されていることを前提としています。理由は、ロックを含む元のインスタンスがまだ実行中の場合は、keepAlive メカニズムを使用して createdAt にタイムスタンプを更新することです。

このリポジトリーには、2 つの追加設定パラメーターがあります。

Expand
パラメーター説明

lockMaxAgeMillis

これは、ロックが孤立していると見なされるまでの期間を指します。つまり、currentTimestamp - createdAt >= lockMaxAgeMillis の場合、ロックは孤立します。

lockKeepAliveIntervalMillis

ライブ更新を維持する頻度は、createdAt Timestamp 列に行われます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る