当我们得到:
时,如何重新启动一个事务(以便它至少执行一次)(com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException:尝试获取锁定时发现死锁;尝试重启事务)或(事务超时)?
我正在使用MySQL(innoDB ENGINE)和Java.Please帮助并链接任何有用的资源或代码。
答案 0 :(得分:1)
如果使用普通JDBC,则必须在循环中手动完成(并且不要忘记每次都检查前置条件。
如果你使用spring,“How to restart transactions on deadlock/lock-timeout in Spring?”会有所帮助。
答案 1 :(得分:1)
当你在catch块中捕获这种类型的异常时
catch(Exception e){
if(e instanceof TransactionRollbackException){
//Retrigger Your Transaction
}
// log your exception or throw it its upto ur implementation
}