1、排查业务端
1)业务是否确实需要使用长事务
比如:删除不必要的只读事务。
2)对使用长事务的代码检测是否有自动提交事务(可在mysql的general_log中查看是否开启);
注意:最好在业务功能测试时输出general_log,分析日志行为提前发现问题。
自动提交-setAutoCommit=1;
查看是否开启事务:
show variables like 'general_log';
show variables like 'general_log_file';
show variables like '%log%';
set global general_log = ON;
3)确实需要的,需确认 业务端 是否设置执行时间,对事务超时异常是否有处理
设置时间:对业务本身的预估执行时间设置,setMaxExecutionTime命令或 transactionTemplate-setTimeo