[mysql-jdbc] Lange Antwortzeit blockiert select-statements

DasArne

Grünschnabel

Hallo zusammen,
ich habe immer wieder spontane Ausfälle meines J2EE-Projektes, weil dem J2EE-Server die Datenbank-Verbindungen ausgehen. Nun habe ich es geschafft in einer solchen Situation ein "SHOW PROCESSLIST" zu machen. Dabei ist folgendes raus gekommen:
Ein Select-Statement das sehr lange läuft locked alle anderen.
Code:
626634	root	localhost:58361	xxx	Query	78	Sending data	(SELECT l.ident,l.description AS 'lectureDescription',l.name AS 'lectureName', l.XXX, l.msg_Button,l
626694	root	localhost:58423	XXX	Query	75	Locked	select useraccoun0_.ACCOUNT as ACCOUNT3_0_, useraccoun0_.DESCRIPTION as DESCRIPT2_3_0_, useraccoun0_
642644	xxx_reader	localhost	xxx	Query	54	Locked	select count(*) from UserAccountData where status='enabled'
Mir war nicht klar, das Select-Statments von mysql serialisiert werden. :(
  • Muss das sein?
  • Kann man das abschalten?
  • Liegt das an der JDBC-Connection, oder muss ich in mysql etwas ändern?
Versionen:
  • mysql-5.0.67-13.20.1
  • mysql-connector-java-5.1.6-bin.jar

Viele Grüße
Arne
 
Zuletzt bearbeitet:
Hi,
also ich bin dem Problem auf der Spur.
Ein JDBC-Problem ist das wohl nicht. Ein mysqldump auf die Datenbank blockiert ebenso alle weiteren select-statements.
Ich habe dennoch die Daten auf eine frisch installierte mysql Test-Datenbank kopiert und dort tritt das Problem nicht auf.
  • Wie kann ich also einen mysql-Server zu einem solchen Verhalten bringen?
  • Und vor allem: Wie werde ich das wieder los?
Viele Grüße
Arne
 
Hi,
wieder ein bisschen weiter.
Es ist ein Update-Statement, dass sich dazwischen schiebt. Dieses wartet auf des langsame Select-Statement.
Alle weiteren Select-Statements warten dann auf das Update-Statement.
Kann man dieses Verhalten unterbinden?
Geht DirtyReading mit mysql?

Viele Grüße
Arne
 
Zurück