请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

数据库事务隔离问题。

老师,遇到了一个脏读问题。其中数据库事务隔离级别是read committed。@transaction注解里面有三步操作:1,对A表进行插入;2,对B表进行插入;3,推送消息给队列。队列消息出来后,走rpc请求进行A表和B表进行查询。结果A表数据查到了,而B表数据没查到。请问老师,这种情况下,会是数据库bug么?

正在回答 回答被采纳积分+3

1回答

翔仔 2019-11-02 21:17:19

同学好,我觉得这个应该跟业务代码处理相关,跟数据库无关,数据库运行这么久了,类似的需求很多,不可能出现这样的bug,如果不放心可以看数据库源码,可我感觉需要先从消息队列这块定位,多打些日志,看看期间发生了什么。

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_红_14 #1
    老师,当时rpc在一秒内发起了三次请求。前两次都发生了a表数据读取成功,b表数据读取失败。第三次是a表数据读取成功,b表数据读取成功,正确返回。判断a表数据读取成功是因为a表查询有数据非空检验。判断b表读取失败,是因为日志打出了报错位置的行数,空指针了。
    回复 有任何疑惑可以回复我~ 2019-11-03 09:41:19
  • 提问者 qq_红_14 #2
    然后就是这种情况很少见,目前就发生一次。所以才会怀疑是数据库bug,或者其他莫名其妙的工具bug
    回复 有任何疑惑可以回复我~ 2019-11-03 09:42:43
  • 翔仔 回复 提问者 qq_红_14 #3
    具体还是需要多打日志定位呢,我这不了解同学的实际情况,只能给出这样的建议,应该不是数据库的bug
    回复 有任何疑惑可以回复我~ 2019-11-03 21:40:56
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信