JSteinhilber
Grünschnabel
Zunächst Guten Tag liebe Java-Cracks.
Meine "Java-Anwendung" (ich bin blutigster Java-Anfänger) arbeitet mit einer InnoDB Datenbank unter MySQL.
Der Sperrmodus ist mittels FOR UPDATE auf Datensatzebene.
Wenn jetzt Person A einen Datensatz sperrt und Person B auf diesen Satz mit ....FOR UPDATE zugreifen möchte wird die Ausnahme SQLException ausgelöst.
Läßt sich die Wartezeit bis zum Auslösen der Ausnahme (timeout?) einstellen? Am besten sogar auf NULL setzen, damit Person B, bzw. die Programmlogik sofort erfährt daß dieser Satz derzeit in Bearbeitung ist und nicht erst ein oder zwei Sekunden Wartezeit in Kauf nehmen muß?
Sofern ja - wo wird dieses "timeout" eingestellt?
In der my.cnf habe ich es bereits mit innodb_lock_wait_timeout=0 versucht, obwohl dieser Parameter vermutlich nicht für diesen Zweck gedacht ist....und wie erwartet - kein Erfolg.
Mit stmt.setQueryTimeout(int sec) habe ich ebenfalls schon herumgedoktert - kein Erfolg.
Es dauert immer ca. 2 Sekunden bis zum Auslösen der Ausnahme.
Läßt sich das irgendwie beschleunigen?
Wär schön wenn mir jemand weiterhelfen könnte.
Herzliche Grüße
Meine "Java-Anwendung" (ich bin blutigster Java-Anfänger) arbeitet mit einer InnoDB Datenbank unter MySQL.
Der Sperrmodus ist mittels FOR UPDATE auf Datensatzebene.
Wenn jetzt Person A einen Datensatz sperrt und Person B auf diesen Satz mit ....FOR UPDATE zugreifen möchte wird die Ausnahme SQLException ausgelöst.
Läßt sich die Wartezeit bis zum Auslösen der Ausnahme (timeout?) einstellen? Am besten sogar auf NULL setzen, damit Person B, bzw. die Programmlogik sofort erfährt daß dieser Satz derzeit in Bearbeitung ist und nicht erst ein oder zwei Sekunden Wartezeit in Kauf nehmen muß?
Sofern ja - wo wird dieses "timeout" eingestellt?
In der my.cnf habe ich es bereits mit innodb_lock_wait_timeout=0 versucht, obwohl dieser Parameter vermutlich nicht für diesen Zweck gedacht ist....und wie erwartet - kein Erfolg.
Mit stmt.setQueryTimeout(int sec) habe ich ebenfalls schon herumgedoktert - kein Erfolg.
Es dauert immer ca. 2 Sekunden bis zum Auslösen der Ausnahme.
Läßt sich das irgendwie beschleunigen?
Wär schön wenn mir jemand weiterhelfen könnte.
Herzliche Grüße