クラス JdbcLockRegistry

java.lang.ObjectSE
org.springframework.integration.jdbc.lock.JdbcLockRegistry
実装済みのインターフェース一覧:
ExpirableLockRegistry<DistributedLock>, LockRegistry<DistributedLock>, RenewableLockRegistry<DistributedLock>

public class JdbcLockRegistry extends ObjectSE implements ExpirableLockRegistry<DistributedLock>, RenewableLockRegistry<DistributedLock>
共有データベースを使用してロックを調整する ExpirableLockRegistry。DefaultLockRegistry と同じセマンティクスを提供しますが、基盤となるデータベースがトランザクションで「直列化可能な」分離レベルをサポートしている限り、取得されるロックはグローバルになります。

ロックインスタンスは、キーごとにキャッシュされ、後で再利用されます。キャッシュ内のすべてのロックが取得された場合、obtain(Object) メソッドは CannotAcquireLockException 例外をスローします。そうでない場合、古い未使用のロックはキャッシュから削除されます。このような孤立した JdbcLockRegistry.JdbcLock をロックしようとすると、同じキーに対して異なるスレッドから二重ロックが発生するのを防ぐため、別の CannotAcquireLockException 例外がスローされます。

導入:
4.3
作成者:
Dave Syer, Artem Bilan, Vedran Pavic, Kai Zimmermann, Bartosz Rempuszewski, Gary Russell, Alexandre Strubel, Stefan Vassilev, Olivier Hubaut, Fran Aranda, Unseok Kim, Christian Tzolov, Myeonghyeon Lee, Eddie Cho
  • フィールドの詳細

    • DEFAULT_TTL

      public static final DurationSE DEFAULT_TTL
      time-to-live プロパティのデフォルト値。
      導入:
      7.0
  • コンストラクターの詳細

    • JdbcLockRegistry

      public JdbcLockRegistry(LockRepository client)
      提供された LockRepository に基づいてインスタンスを構築します。
      パラメーター:
      client - 依存する LockRepository。
    • JdbcLockRegistry

      public JdbcLockRegistry(LockRepository client, DurationSE expireAfter)
      指定されたロック有効期限でロックレジストリを作成します。
      パラメーター:
      client - 依存する LockRepository。
      expireAfter - DurationSE の有効期限。
      導入:
      7.0
  • 方法の詳細

    • setIdleBetweenTries

      public void setIdleBetweenTries(DurationSE idleBetweenTries)
      ロックレコードの挿入 / 更新試行間のスリープ時間(DurationSE)を指定します。デフォルトは 100 ミリ秒です。
      パラメーター:
      idleBetweenTries - DurationSE は、挿入 / 更新の試行の間にスリープします。
      導入:
      5.1.8
    • setCacheCapacity

      public void setCacheCapacity(int cacheCapacity)
      キャッシュされたロックの容量を設定します。現在キャッシュされているロックの数が新しい容量を超えた場合、このメソッドは使用されていないロックを削除しようとします。
      パラメーター:
      cacheCapacity - キャッシュされたロックの容量(デフォルトは 100_000)。
      導入:
      5.5.6
      関連事項:
    • obtain

      public DistributedLock obtain(ObjectSE lockKey)
      インターフェースからコピーされた説明: LockRegistry
      パラメーターオブジェクトに関連付けられたロックを取得します。
      次で指定:
      インターフェース LockRegistry<DistributedLock> 内の obtain 
      パラメーター:
      lockKey - ロックが関連付けられているオブジェクト。
      戻り値:
      関連するロック。
    • pathFor

      protected StringSE pathFor(StringSE input)
    • expireUnusedOlderThan

      public void expireUnusedOlderThan(long age)
      インターフェースからコピーされた説明: ExpirableLockRegistry
      現在ロックされていない「年齢」より前に最後に取得されたロックを削除します。
      次で指定:
      インターフェース ExpirableLockRegistry<DistributedLock> 内の expireUnusedOlderThan 
      パラメーター:
      age - ロックが最後に取得されてからの時間。
    • renewLock

      public void renewLock(ObjectSE lockKey)
      インターフェースからコピーされた説明: RenewableLockRegistry
      ロックの存続時間を更新すると、パラメーターオブジェクトに関連付けられます。ロックは現在のスレッドによって保持される必要があります
      次で指定:
      インターフェース RenewableLockRegistry<DistributedLock> 内の renewLock 
      パラメーター:
      lockKey - ロックが関連付けられているオブジェクト。
    • renewLock

      public void renewLock(ObjectSE lockKey, DurationSE customTtl)
      インターフェースからコピーされた説明: RenewableLockRegistry
      ロックの存続時間の更新は、特定の値を持つパラメーターオブジェクトに関連付けられます。ロックは現在のスレッドによって保持されている必要があります。
      次で指定:
      インターフェース RenewableLockRegistry<DistributedLock> 内の renewLock 
      パラメーター:
      lockKey - ロックが関連付けられているオブジェクト。
      customTtl - ロック状態データの特定の有効期間
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSE の toString