各位高手,小弟有个问题一直未能解决;问题是这样的(举例说明):
有两个HTTP请求,一个请求结果(新增成功)已经返回了,然后再执行另一个请求(通过js控制),结果有时查到有时查不到有时又查到,查不到的时候过一会就能查到。就像:已经commit了,但是等一会才能执行成功一样;数据库客户端直接执行SQL插入数据也是要等一会才能查到
用的 java+mysql+阿里云+tomcat
请各位高手帮我研究下 是怎么回事,不甚感激!
按照您的描述,比较大的可能是:
1) 两个http请求使用的不是同一个连接。
2) 而第一个提交动作其实并不是正的commit,而是只是插入成功。
我们经常有客户发现类似的问题,就是java connector会默认使用set autocommit=0的模式。
这样第一个线程执行成功后,其实并没有提交事务,
第二个线程去查的时候是查不到的。
这个是一种比较常见的可能。至于要确诊,您可以开启RDS的审计日志,从数据库的执行语句序列中印证原因。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。