情報処理安全確保支援士試験 令和3年度春期 午前Ⅱ 問21「複数のバッチ処理を並行して動かすとき,デッドロックの発生をできるだけ回避したい。…」の正解と解説です。情報処理安全確保支援士試験の「デッドロック」分野の過去問で、これまでの受験者の正答率は約100%です。
エ. 複数レコードを更新するときにロックを掛ける順番を決めておき,全てのバッチ処理がこれに従って処理するように設計する。
正答率 100.0%(1人中 1人が正解)
デッドロックは、複数のトランザクションが互いに相手の保持するロックを待ち合って進めなくなる状態。発生回避の定石は、複数レコードをロックする順序をあらかじめ統一し、全処理が同じ順番でロックを取得すること。これにより循環待ちが起きなくなる。よってエが正解。実務では並行バッチやトランザクション設計で、ロック獲得順序の統一が基本的な予防策となる。