Mycat的事务异常:Caused by: java.sql.SQLException: Transaction error, need to rollback.Distributed transaction is disabled!
工作中踩到的一个坑 ,一个报错,导致整个服务不能用。工程部署四个节点,请求是按轮询机制分发的,所以请求四次报错,整个系统瘫痪。记录下 。
项目环境:spring +Mybaties +mycat +Druid+mysql,
很早前写的一个新增方法,后来同事把表迁移到别的库去了 ,但是日志表又没有迁移 ,所以新增的表和日志表不在一个物理库中,而新曾的方法又开启了spring事务,
但是系统mycat把分布式事务关了 ,没有开分布式事务,然后请求过来就报错:如标题不支持分布式事务。而且,一报错,后续进来的请求,只要开启了事务,就会报同样的错。
这个我现在都没弄清楚。请求事务方法如下代码:
public int save(List<GwAcceptCriteria> entityList) throws Exception { // 方法加入spring事务支持。
if(null == entityList||entityList.isEmpty())
return 0;
ArrayList<BaseLog> Logs = new ArrayList<>();
ArrayList<GwAcceptCriteria> saveData = new ArrayList<>();
for (GwAcceptCriteria gwAcceptCriteria : entityList) {
gwAcceptCriteria.setCreateEmp(BaseContextUtil.getCurrentUser());
gwAcceptCriteria.setCreateTime(DateUtils.getNow());
gwAcceptCriteria.setModifyTime(DateUtils.getNow());
BaseLog log = getBLog(OperateTypeUtil.ADD_TYPE , null, gwAcceptCriteria);
Logs.add(log);
if(isDuplicates(gwAcceptCriteria)) {// 校验数据库数据是否重复 数据库节点DB1
continue;
}
saveData.add(gwAcceptCriteria);
}
if(saveData.isEmpty())
return 0;
int num = gwAcceptCriteriaMapper.insertList(saveData);
baseLogManager.saveList(Logs); // 保存实体日志 数据库节点DB2
logger.info(">>>>>>>>>>> 官网收寄标准管理-->{}<--数据{}条 ", OperateTypeUtil.ADD_TYPE,num);
return num;
}
报错异常如下图片:

解决方法:
1.把方法内操作的数据表统一到一个物理库。
2.关闭方法的事务支持。
Mycat的事务异常:Caused by: java.sql.SQLException: Transaction error, need to rollback.Distributed transaction is disabled!的更多相关文章
- 异常:Caused by: java.sql.SQLException: Field 'cust_id' doesn't have a default value
异常: 由Java.q.L.SqLExpExt引起:字段“CuSTyID”没有默认值 Caused by: java.sql.SQLException: Field 'cust_id' doesn't ...
- Oracle异常:Caused by: java.sql.SQLException: ORA-01536: 超出表空间 '登录名' 的空间限额 (JPA保存数据)
原因: Oracle表空间为0,没有分配空间内存. 解决办法在代码框里: 1. 查看用户表空间的限额 select * from user_ts_quotas; max_bytes字段就是了 -1是代 ...
- 数据库连接异常 Caused by: java.sql.SQLException: Unknown system variable 'tx_isolation'
1.错误截图 2.错误分析 数据库的版本比连接驱动的版本高很多. 3.解决方法 因此将mysql-connector-java升级到最新版本就解决了问题. 原本我的版本是mysql-connector ...
- hibernate 出现Caused by: java.sql.SQLException: Column 'id' not found.异常
用hibernate进行映射查询时,出现Caused by: java.sql.SQLException: Column 'id' not found 异常,检查数据库表及映射都有id且已经正确映射, ...
- Caused by: java.sql.SQLException: Incorrect integer value: '' for column 'clientId' at row 41
1.错误描述 [ERROR:]2015-06-10 13:48:26,253 [异常拦截] oa.exception.ExceptionHandler org.hibernate.exception. ...
- Caused by: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0
1.错误描述 [ERROR:]2015-05-05 16:35:50,664 [异常拦截] org.hibernate.exception.GenericJDBCException: error ex ...
- Caused by: java.sql.SQLException: Operand should contain 1 column(s)
1.错误描述 [ERROR:]2015-05-05 15:48:55,847 [异常拦截] org.hibernate.exception.DataException: error executing ...
- Caused by: java.sql.SQLException: Failed to start database 'metastore_db' with class loader org.apache.spark.sql.hive.client.IsolatedClientLoader$$anon$1@d7c365, see the next exception for details.
解决方法:https://stackoverflow.com/questions/37442910/spark-shell-startup-errors 异常: 18/01/29 19:04:27 W ...
- Caused by: java.sql.SQLException: Couldn't perform the operation getAutoCommit: You can't perform any operations on this connection. It has been automatically closed by Proxool for some reason (see lo
系统启动,一段时间不操作,然后在来操作时,报错如下: Caused by: java.sql.SQLException: Couldn't perform the operation getAutoC ...
随机推荐
- The 'stream().forEach()' chain can be replaced with 'forEach()' (may change semantics)
对集合操作时,因不同的写法Idea经常会提示:The 'stream().forEach()' chain can be replaced with 'forEach()' (may change s ...
- 终论到底该不该写isDebugEnabled
以前: 很多日志框架都不支持{}模板的写法(如Log4j1.X, Apache Commons Logging),于是只能通过字符串拼接来输出日志内容: log.debug("debug日志 ...
- [JavaScript] 实现简单的表单数据校验功能
实现表单数据校验功能 因为项目用的UI库功能太少,表单不具备校验功能,所以自己写了一个,只有一个文件. 使用 import { required, email, useValidate } from ...
- GoLang设计模式15 - 策略模式
策略模式是一种行为型设计模式.通过策略模式,可以在运行时修改一个对象的行为. 接下来仍然是通过例子来了解策略模式.比如说内存缓存,这是我们在开发中经常使用的东西,大家应该都有一定的了解,接下来就用内存 ...
- .NET Protobuf包装器库
Wodsoft Protobuf Wrapper 内容 关于 需求 安装 用法 序列化 反序列化 字段定义 字段排序 非空构造函数对象 获取Protobuf包装器 高级 支持的属性类型与Protobu ...
- [loj2135]幻想乡战略游戏
以1为根建树,令$D_{i}$为$i$子树内所有节点$d_{i}$之和 令$ans_{i}$为节点$i$的答案,令$fa$为$i$的父亲,则$ans_{i}=ans_{fa}+dis(i,fa)(D_ ...
- [cf1083F]The Fair Nut and Amusing Xor
令$c_{i}=a_{i}\oplus b_{i}$,那么也就是要对$c_{i}$执行操作使其变为0 显然有一个贪心的策略,即从左往右,若当前$c_{i}\ne 0$,则执行对$[i,i+k)$异或$ ...
- [cf878D]Magic Breeding
对于每一行,用一个2^12个01来表示,其中这一行就是其中所有为1的点所代表的行(i二进制中包含的行)的max的min,然后就可以支持取max和min了,查询只需要枚举答案即可 1 #include& ...
- C语言下的Led灯
1. 设计思想 1.1 设置处理器模式 设置sp啥的汇编要先进入SVC模式,超级管理员特权模式,这样就可以访问所有寄存器了,需要用到cpsr寄存器 0到4位要设置svc模式10011 = 0x13, ...
- 关于阿里云图标的使用 iconfont
iconfont 关于阿里云图标库使用的介绍 对于添加到网页中的iconfont可使用以下几种方式: 首先需要进入阿里云图标库官网进行对应的下载iconfont-阿里巴巴矢量图标库 将需要的图标加入到 ...