問題ID:34666

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2020-12-30 2:18
macchi_i9  新米   投稿数: 3
回答は「トランザクションAの処理のみ実行され、Bの処理はロールバックされる」ということですが、ドキュメントをみるかぎり、デッドロックを検出した際にどちらがロールバックされるかは不定のようです。
回答の解説を読んだもののなぜトランザクションAが必ず実行されるかわからなかったためご教授いただけませんでしょうか。

お手数おかけしますがよろしくお願いいたします。

v9.6ドキュメント(問題に添付)
https://www.postgresql.jp/document/9.6/html/explicit-locking.html#locking-deadlocks

v11ドキュメント(OSS-DB v2.0は11まで対応なのでこちらも確認しました。)
https://www.postgresql.jp/document/11/html/explicit-locking.html#LOCKING-DEADLOCKS
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2021-1-4 0:28
yama708  半人前   投稿数: 10
macchi_i9さんの考えの通り、「デッドロックを検出した際にどちらがロールバックされるかは不定」で合っていると思います。
問題ID:34666の実行例ではたまたま、トランザクションAの処理が実行され、Bの処理がロールバックされているようですが、必ずそうなるとは言えないですね。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2021-1-5 10:13
staff_naomi  長老   投稿数: 43
macchi_i9さん

ご指摘の点を修正致しました。
ご報告、誠にありがとうございました。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.