Java 事务期间数据库连接丢失
我有一个更新多行的JDBC事务。在事务处理过程中,数据库连接丢失。然后,由于数据库连接丢失,事务无法回滚或提交 以下是DB/tx的详细信息Java 事务期间数据库连接丢失,java,mysql,transactions,innodb,Java,Mysql,Transactions,Innodb,我有一个更新多行的JDBC事务。在事务处理过程中,数据库连接丢失。然后,由于数据库连接丢失,事务无法回滚或提交 以下是DB/tx的详细信息 数据库:MYSQL 存储引擎:InnoDB 事务隔离:可重复读取 当这种情况发生时,事务所使用的锁仍然存在于数据库中 以下是“SHOW ENGINE INNODB STATUS\G;”命令的输出 ---交易记录69476,有效5395秒 96个锁结构,堆大小24784,301个行锁,撤消日志条目301 有没有办法可以手动移除锁 我们可以更改指定的最大事务
- 数据库:MYSQL
- 存储引擎:InnoDB
- 事务隔离:可重复读取
您是如何用Java处理事务的?请在回答中包含代码。添加的代码片段我希望它能快速发现客户端已消失,并执行
回滚
,从而释放锁。是吗?你是如何用Java处理事务的?请在回答中包含代码。添加的代码片段我希望它能快速发现客户端已消失,并执行回滚
,从而释放锁。是吗?
Ebean.beginTransaction(TxIsolation.REPEATABLE_READ);
boolean foundError = false;
for (Object object : objectList) {
if (!saveObject(object)) {
foundError = true;
break;
}
}
if (foundError) {
Ebean.endTransaction();
} else {
Ebean.commitTransaction();
}
public boolean saveObject(Object object) {
try {
Ebean.save(object);
} catch (Exception e) {
return false;
}
return true;
}