資格スワイプ
テクノロジ系

複数のトランザクションが、互いに相手が確保しているロックの解放を待ち続け、双方とも処理が進まなくなる状態が発生した。このときDBMSがとる典型的な対応として適切なものはどれか。

  • A両方のトランザクションを同時にコミットする
  • Bロックの粒度を大きくして再試行する
  • いずれか一方のトランザクションを強制的にロールバックし、確保していたロックを解放する
  • Dトランザクションの分離レベルをREAD UNCOMMITTEDに変更する

解説

この状態はデッドロックであり、DBMSはデッドロックを検知すると、いずれか一方のトランザクションを強制的にロールバックしてロックを解放し、他方の処理を続行させる。

根拠テクノロジ系:データベース(トランザクション管理・排他制御・デッドロック)

← 前の問題次の問題 →
スワイプでまとめて流す