In einem Projekt bei einem grossen Energieversorger habe ich Hibernate 3.X zusammen mit Spring 2.5 konfiguriert, nach der Beschreibung von Eberhard Wolf. Dier Persistenzschicht hat wunderbar funktioniert, bis ich einen Stresstest mit jMeter gemacht habe. Als ich einen aufgezeichneten Testfall in zehn Threads gestartet habe, trat bei einigen Threads folgender Fehler auf:
hibernate java.sql.SQLException: Can't call commit when autocommit=true
Daraufhin habe ich in der Hibernatekonfiguration den Wert explizit auf false gesetzt:
hibernate.connection.autocommit=false
leider blieb der erhoffte Erfolg aus. Die Loesung habe ich in einem JIRA-Eintrag gefunden. An die connection.url muss der Wert “relaxAutoCommit=true” angehaengt werden. Also z.B.
hibernate.connection.url=jdbc:mysql://localhost:3306/project?relaxAutoCommit=true
Seit dem ich meine Connection.url abgeaendert habe ist der Fehler nicht wieder augetreten.