讨论一个并发线程导致的数据保存失败的问题
2015-02-05 11:21
281 查看
环境:
前端采用异步提交的方式,将选择的多个附件分批发送到服务端
后端采用标准的SpringMVC架构来处理请求,采用声明式事务,控制在service层
现象:
后台保存附件信息到数据库的时候,总是报主键唯一性约束错误
分析:
后台使用到了一个uploadEntity对象,该对象被配置成了一个bean,但是没有配置其scope属性,所以默认是单例的,那么在方法中获取该实例的时候如果有其它线程串改了实例的属性值,就会导致获取的实例与你预期的不一致,也就出现的线程安全的问题。
前端采用异步提交的方式,将选择的多个附件分批发送到服务端
后端采用标准的SpringMVC架构来处理请求,采用声明式事务,控制在service层
现象:
后台保存附件信息到数据库的时候,总是报主键唯一性约束错误
分析:
后台使用到了一个uploadEntity对象,该对象被配置成了一个bean,但是没有配置其scope属性,所以默认是单例的,那么在方法中获取该实例的时候如果有其它线程串改了实例的属性值,就会导致获取的实例与你预期的不一致,也就出现的线程安全的问题。
相关文章推荐
- 由于ActionList导致的数据保存失败的问题;
- 最近一个崩溃的问题——针对数据量很大,和并发访问量高的时候
- 使用NSKeyedArchiver保存数据导致程序退出问题
- SQL大圣之路笔记——把数据库中表里的数据导出成Excel(Copy时,会因分隔符问题导致许多数据存放在一个单元格中)
- 1.并发线程导致的问题
- 通过模仿AsyncTask的封装方式,实现一个后台预读数据的线程,(使用AsyncTask有导致应用FC的风险)
- 在并发环境下使用HashMap导致的线程死循环问题
- 多并发下数据保存的问题
- unserialize的这个问题是由一个emlog论坛用户在使用时报错而发现的 问题表现情况如下: emlog缓存的保存方式是将php的数据对象(数组)序列化(serialize)后以文件的形式存放,
- 一个本地DNS解析和mysql授权导致的Mysq连接失败问题(Access denied for user 'loan'@'kfcsdb1' (using password: YES))
- 当web应用中面临大数据量同时并发量比较大的情况下性能是一个尤为重要的问题,面对性能优化我们应从何做起,在哪些方面做优化呢?
- mvc EF 数据保存时,报错:”对一个或多个实体的验证失败……“之解决
- 黑马程序员——java中两个线程对同一个数据做不同操作的安全问题
- pt-online-schema-change 修改主键导致数据删除失败的问题调查
- NopCommerce 执行计划任务不同Services协调操作导致更新数据失败的问题!
- 解决X5中一个保存按钮不能同时保存数据问题(多个数据集中其中某个数据集的store-type:simple 时,不能同时保存)
- 一个socket连接、发送、接收数据失败后是否可以重新进行连接的问题
- 关于EDM模型中多个实体之间循环引用导致保存数据失败的解决方案一例
- [负载均衡案例分享系列] 一个由负载均衡使用模式导致间断访问失败问题的处理
- 面试问题2:给一个5G的大文件,保存的数据为32位的整型,找到所有出现次数超过两次的数字