1

のための条件を理解する上で必要性のヘルプ。次のシナリオがデータベースのデッドロックにつながるかどうかを理解する上で助けが必要です。つのデータベースがオーバーロックかかり春のデータベースロック:私は春-DATA-JPAを使用し、データベース(Oracleの)ロックを取るため@Lock注釈(PESSIMISTIC_WRITE)を使用していたデータベースのデッドロック

  1. トランザクション1(ISOLATION_DEFAULT PROPAGATION_REQUIRES_NEW)は、(例えば、ロックがID = 1の行引き継がれる)教師テーブル言います。子テーブルに新しいレコードを挿入しようとします。教師テーブルの更新は行われません。
  2. トランザクション1が進行中です。トランザクション2(PROPAGATION_REQUIRED、ISOLATION_DEFAULT)は、教師テーブル(ID = 1の行)を更新しようとします。それはデータベースロックをとらない。
  3. ロックはid 1の行に引き継がれているので、トランザクション2はトランザクション1が終了するまで待たなければなりません。

データベース死者ロックにこの条件つながることができますか?

+0

どのトランザクションの伝播を使用しますか? Oracleと –

+0

トランザクション1(PROPAGATION_REQUIRES_NEW、ISOLATION_DEFAULT).Transaction 2(PROPAGATION_REQUIRED、ISOLATION_DEFAULT) – Suchit

+0

は、デフォルトの分離がコミット読み出されます。 –

答えて

0

あなたのケースではデータベースロックが発生すると思いますが、デッドロックは発生しません。そして、データベースロックは、ACIDトランザクションを達成するために期待されるものです。

関連する問題