Ich wollte eine Deadlock-Situation in der Oracle-Tabelle erstellen, die keine Antwort gibt und die gleiche Abfrage von der Java-Anwendung ausführen wird Könnten Sie bitte eine Beispielabfrage angeben, die diese Situation auf einer Tabelle (mit 4 Spalten) macht Sno, Name, Job, Abteilung).Wie man Deadlock-Situation im Orakel auf einer Tabelle, die einfache 4 Spalten (Sno, Name, Job, Dept) hat?
Antwort
In Session 1:
DECLARE
v_row1 TABLE_NAME%ROWTYPE;
v_row2 TABLE_NAME%ROWTYPE;
BEGIN
SELECT *
INTO v_row1
FROM table_name
WHERE sno = 1
FOR UPDATE;
DBMS_LOCK.SLEEP(seconds => 5);
SELECT *
INTO v_row2
FROM table_name
WHERE sno = 2
FOR UPDATE;
ROLLBACK;
END;
/
Dann in Session 2:
DECLARE
v_row1 TABLE_NAME%ROWTYPE;
v_row2 TABLE_NAME%ROWTYPE;
BEGIN
SELECT *
INTO v_row2
FROM table_name
WHERE sno = 2
FOR UPDATE;
DBMS_LOCK.SLEEP(seconds => 5);
SELECT *
INTO v_row1
FROM table_name
WHERE sno = 1
FOR UPDATE;
ROLLBACK;
END;
/
Vielen Dank für die Antwort, ich versuche, diese Situation zu machen .. Sie kennen das Ergebnis – user3442562
Eine andere Möglichkeit ist, Aktualisierungen zu Zeilen in Sitzung 1 zu tun und sie nicht begehen und dann versuchen Führen Sie Aktualisierungen für dieselben Zeilen in Sitzung 2 durch. Sitzung 2 wird so lange angehalten, bis Sitzung 1 eine Festschreibung oder ein Rollback durchführt. – MT0
Ein Deadlock tritt auf, wenn zwei oder mehr Sitzungen für Daten, die von miteinander verriegelten warten, was in allen Sitzungen zu sein verstopft. In der Regel werden Deadlocks durch schlecht implementierte Sperren im Anwendungscode oder aufgrund eines Leistungsproblems oder aufgrund eines Konflikts zwischen zwei verschiedenen Prozessverarbeitungsdaten in der Datenbank verursacht.
danke für die antwort, ich versuche diese situation zu machen ..können sie das ergebnis wissen – user3442562
Meinen Sie * Deadlock * oder nur ein * lock *? Ein Deadlock ist eine bestimmte Art von Sperre und würde die Dinge nicht hängen lassen, sondern würde schnell einen Fehler verursachen und einen der Prozesse unterbrechen. –
Ich wollte Deadlock zu den Sitzungen machen – user3442562