hibernate操做mysql時拋出Lock wait timeout exceeded; try restarting transaction異常

Lock wait timeout exceeded; try restarting transaction是鎖等待超時。是當前事務在等待其它事務釋放鎖資源形成的。mysql

解決方法:sql

在mysql查詢中執行如下指令hibernate

select * from information_schema.innodb_trx線程

結果如圖:rest

找出與其餘幾個有參數不一樣的線程,找出他的線程號mysql_thread_idorm

執行命令kill +線程號便可解決。blog

 

我報這個錯的緣由是由於用hibernate執行了delete操做,卻一直沒有commit事務,後面再執行delete操做時就會拋這個異常。就是事務在等待給某個表加鎖時超時,估計是表正被另的進程鎖住一直沒有釋放。進程