過去問解きまくり研究所 ホーム

平成25年度 春期 午前Ⅱ 問17

トランザクション処理

デッドロックに関する問題

複数のバッチ処理を並行して動かすとき,デッドロックの発生をできるだけ回避したい。バッチ処理の設計ガイドラインのうち,適切なものはどれか。

答えと解説を見る

✓ これが正解エ複数レコードを更新するときの順番を決めておき,全てのバッチ処理がこれに従って処理するように設計する。

解説

更新の順番を全処理でそろえれば、待ちが輪にならずデッドロックを避けられます。

デッドロックは、二つ以上のトランザクションが、互いに相手のロックしている資源の解放を待ち合って先へ進めなくなる状態です。例えば一方がレコード X、Y の順に、もう一方が Y、X の順に専有ロックをかけると、それぞれが一つ目を確保したところで相手を待ち合う形になります。全てのバッチ処理がレコードを更新する順番を同じに決めておけば、どの処理も同じ順にロックを取りにいくので、待ちが輪になる形が生じません。デッドロックの回避策は、待ちの輪ができる条件をどこで断つかで比べると選べます。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問17

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)