Hallo ich hätte eine Frage zum Thema Row Locks.
Hier auf diesem Bild wird ein x lock gesetzt und wen ich versuche bei der transaktion 2 set update zu machen wird gewartet und am ende eine exception geschmissen.
Was ich aber nicht verstehe ist, warum wird keine Exception ausgelöst wenn ich bei der Transaktion2(Serializable) ein update mache und dan bei der ersten Transaktion ein select for update mache (quasi umgekehrt "geschrieben"). Die erste Transaktion wartet zwar wegen x-log gibt aber, wen ich bei der Transaktion2 commit mache, nix aus. (keine reihen).
Deswegen ist meine Frage ob es wichtig ist welche Transaktion ein x-log setzt bzw wann eine Exception ausgelöst wird, weil ihn diesem fall wird nur eine Exception ausgelöst, wenn ich die erste transaktion auf readcommited habe und bei ihr ein update mache?
Hier auf diesem Bild wird ein x lock gesetzt und wen ich versuche bei der transaktion 2 set update zu machen wird gewartet und am ende eine exception geschmissen.
Was ich aber nicht verstehe ist, warum wird keine Exception ausgelöst wenn ich bei der Transaktion2(Serializable) ein update mache und dan bei der ersten Transaktion ein select for update mache (quasi umgekehrt "geschrieben"). Die erste Transaktion wartet zwar wegen x-log gibt aber, wen ich bei der Transaktion2 commit mache, nix aus. (keine reihen).
Deswegen ist meine Frage ob es wichtig ist welche Transaktion ein x-log setzt bzw wann eine Exception ausgelöst wird, weil ihn diesem fall wird nur eine Exception ausgelöst, wenn ich die erste transaktion auf readcommited habe und bei ihr ein update mache?