mybatis 执行插入操作,insert 返回1,数据库中无数据。数据库中数据的创建时间和插入执行时间不一致。

大家好,我是烤鸭:

     今天记录一下线上的问题,由于不是我们组的代码,所以没参与全程,只是最后有幸听各位大佬探讨解决方案。mybatis 执行插入操作,insert返回1,日志记录和接口返回都正常,但是数据库中无数据

 

1.场景介绍

    该接口是一个从mq中消费数据的接口,每消费一条记录,数据库插入一条数据(无事务)。项目上线后,不定时会出现Mybatis日志插入成功,但是数据库中无数据的情况。每次重启之后就好了,但是不知道过多久又不行了。问了DBA,当时执行的操作线程正常,锁释放情况正常,是交替执行,就是insert语句确实是一条一条执行的,并无死锁情况,但是binlog中无数据

    后来开发人员又说,mybatis打印的sql语句的时间和数据库的创建时间不一致,有时候相差两小时。

 

2.思路

     从上面的场景,基本能看出来是sql执行了,事务没有commit。有大佬说是不是某个版本的mybatis的bug或者项目打包不完整,又一起缕了下当时的接口代码,虽然业务逻辑比较重,简单来说,还是校验参数后生成数据入库,不会产生数据库死锁。

     

3.解决

     当时一直在看问题接口,也没想过其他的。有位大佬找了项目的其他代码,发现了问题。由于同一个项目,单一数据源,共用一个事务管理器 transactionManager。其他的接口有手动开启事务,但是try catch没有finally,出现异常,一直报这个错,Lock wait timeout exceeded; try restarting transaction导致没有释放事务管理器,所有的sql操作都卡在这

    查了一下第一次出现有日志无数据的地方的日志,附近1千行没有类似错误,附近5k行发现了,确实是这个问题。

 

4.总结

     先不讨论为什么要手动开启事务,如果事务手动开启了,一定要记得关闭。如果用到了try catch 必须加finally

     其次,这个问题发生了好几次,每次都尝试了解决方案,比如在将myabtis日志级别改为debug,问题方法改为手动事务(原来是无事务)等等,都没有解决。还是日志分析的不够。如果能多看一点日志(多几千行),说不定就能发现问题了。

    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

敏捷软件开发学习笔记(四)之结构型设计模式

PHP结构型设计模式 参考 设计模式PHP 设计模式全集 2018什么是结构型是设计模式 结构型模式讲的是如何将类和对象按照某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,其中类结构型模式采用继承机制来组织接口和类,其中对象结构型模式采用组…

[css] position的relative和absolute定位原点是哪里?

[css] position的relative和absolute定位原点是哪里? absolute: 定位原点为第一个position不为static的父级元素的左上角。 可以基于该特性实现height:100%生效 relative:定位原点为元素本身的所在位置。 relative的偏移量设置会导致显示效果和定位原点…

javax.mail.MessagingException: while sending message;Connection reset by peer: socket write error

大家好,我是烤鸭: 阿里云邮件推送服务报错。当你也使用阿里云的邮件推送服务提示上面这个错误的话,我先告诉你原因和目前能想到的解决方案。 解决思路: 1. 换企业邮箱,阿里的上限15M,网易的不知道&…

李晓菁201771010114《面向对象程序设计(java)》第十三周学习总结

理论知识:事件处理 1.事件源:能够产生事件的对象都可以成为事件源,如文本框,按钮等。一个事件源是一个能够注册监听器并向监听器发送事件对象的对象。 2.事件监听器:事件监听器对象接收事件源发送的通告(事…

[css] 过渡和动画的区别是什么?

[css] 过渡和动画的区别是什么? 相同:都会让你的页面元素动起来 区别: 过渡 transition1.需要事件触发,比如hover,focus,checked , js改, media query 2.一次性的 3.只能定义开始和结束状态,不…

记一次 OOM 的原因和处理 出现大量 close_wait,项目无法访问 activeMq和 poi 出现的 OOM

大家好,我是烤鸭: 记一次项目无法访问的事件和处理。由于某个模块每隔几天就会出现无法访问,目前的最简单粗暴的方法就是重启。 1. 现象 项目内日志打印正常,经过dubbo的rpc服务和接口调用正常。http接口无法访问。提示nginx 502。 2.…

docker删除镜像和删除容器

删除容器:docker rm ID 删除镜像:docker rmi ID转载于:https://www.cnblogs.com/61355ing/p/10018498.html

[css] CSS中的calc()有什么作用?

[css] CSS中的calc()有什么作用? 用来计算长宽的属性,非常好用,百分比,px,vh/vm都可参与计算, 不过正如上面的大兄弟说的,运算符的左右要有空格,要不然不生效个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。…

fastjson导致的OOM

大家好,我是烤鸭: 今天又遇到OOM了,原因在于 fastjson 的 toJSONString。 这是线上的报错信息。 将这个 TotalLoanDTO 对象 toJSONString 导致的OOM。日志如下。 2019-10-31 12:07:49.896 [TID:285.93.15724948639339801] [XNIO-1 task-14] INFO [cla…

谷歌浏览器中安装JsonView扩展程序

实际开发工作中经常用到json数据,那么就会有这样一个需求:在谷歌浏览器中访问URL地址返回的json数据能否按照json格式展现出来。 比如,在谷歌浏览器中访问:http://jsonview.com/example.json 展现效果如下: 那么安装了…

[css] 怎么实现移动端的边框0.5px?

[css] 怎么实现移动端的边框0.5px&#xff1f; 一种是通过transform中的scaleborder: 1px solid red;transform: scaleY(.5);一种是通过meta viewport中设置init-scale为0.5 <meta name"viewport" content"widthdevice-width, initial-scale0.5"> 一…

Serialized class com.xxx.xxxService must implement java.io.Serializable

大家好&#xff0c;我是烤鸭&#xff1a; 使用dubbo的时候&#xff0c;遇到如下的问题。 Serialized class com.xxx.xxxService must implement java.io.Serializable 1. 异常 dubbo无论使用哪个协议传递参数的时候&#xff0c;都需要参数实现序列化接口。 所以提示这个…

CS229 7.1应用机器学习中的一些技巧

本文所讲述的是怎么样去在实践中更好的应用机器学习算法&#xff0c;比如如下经验风险最小化问题&#xff1a; 当求解最优的 后&#xff0c;发现他的预测误差非常之大&#xff0c;接下来如何处理来使得当前的误差尽可能的小呢&#xff1f;这里给出以下几个选项&#xff0c;下面…

[css] 行内元素和块级元素有什么区别,如何相互转换?

[css] 行内元素和块级元素有什么区别&#xff0c;如何相互转换&#xff1f; 一般通过display属性来区分块级元素和行内元素&#xff0c;block代表块级元素&#xff0c;inline代表行内元素。 块级元素&#xff1a; 1、内容独占一行。 2、width和height可以设置。 3、margin和pa…

dubbo源码解析(一)

大家好&#xff0c;我是烤鸭&#xff1a; 今天和大家分享dubbo的源码解析。 1.SPI http://dubbo.apache.org/zh-cn/docs/source_code_guide/dubbo-spi.html介绍: SPI 全称为 Service Provider Interface&#xff0c;是一种服务发现机制。 SPI 的本质是将接口实现类的全限定名配…

8号团队-团队任务三:每日立会(2018-11-27)

团队信息&#xff1a; 1.团队序号 8 2.开发软件 飞机大战 3.今日整理人&#xff1a;徐浩茗 职位&#xff1a;项目经理 学号&#xff1a;2016035107247 4.本次团队会议共有8人参加 无缺席 团队汇报&#xff1a; &#xff08;截图&#xff09;如下 . 4.燃尽图 5.本次会议中遇…

[css] 说说你对低版本IE的盒子模型的理解

[css] 说说你对低版本IE的盒子模型的理解 一个CSS盒子由四部分组成&#xff0c;由内到外依次是&#xff1a;content、padding、border、margin。所谓盒子模型定义的是盒子宽高的计算方法&#xff0c;IE盒子模型的宽高为content、padding、border之和。而W3C盒子的宽高仅为cont…

Alibaba 开源工具 Arthas 使用

大家好&#xff0c;我是烤鸭&#xff1a; 很长时间没更新了&#xff0c;最近太忙了&#xff0c;只能抽空水点文章了&#xff0c;今天给大家介绍的是阿里的开源工具 Arthas 的使用。 1. 开源地址 Arthas 是Alibaba开源的Java诊断工具 https://github.com/alibaba/arthas 中文说…

[css] 你是如何规划响应式布局的?

[css] 你是如何规划响应式布局的&#xff1f; 从项目角度来讲&#xff0c; PC 和 Mobile 是一个项目还是两个项目&#xff1b;从方法流派来讲&#xff0c; 有栅栏布局&#xff0c;固定 viewport&#xff0c;使用 rem/pt/vw 单位&#xff0c;使用定位百分比&#xff0c;修改为 …

Oracle 用户,角色,权限等

权限管理是 Oracle 系统的精华&#xff0c;不同用户登录到同一数据库中&#xff0c;可能看到不同数量的表&#xff0c;拥有不同的权限。Oracle 的权限分为系统权限和数据对象权限&#xff0c;共一百多种&#xff0c;如果单独对用户授权&#xff0c;很囧&#xff0c;有一些用户需…