请教:事务的完整性一般怎么实现?

05-09-20 chabulier
这几天我们的项目出现了一个Bug,不太容易修复,总结下来应该是早期架构或设计的问题。

下面我说一下现象出现的步骤,相信大家就明白了:

1.客户A停留在一个一览页面叫Page1;

2.客户B也停留在这个页面;

3.客户A删除了Page1里面的一条记录Record3;

4.客户B使用Record3去试行操作,结果系统错误。

因为Record3这条记录已经被删除了。

客户说这个系统使用的人很少可以不考虑这类问题,所以这个问题并没有去解决。

我是一个新手,想了几个办法(1.执行操作前先判断是不是还存在;2.字段加上最后更新时间,每次比较),但是不知道这类问题的现在的普遍的成熟的解决办法是什么?是不是可以用EJB解决?最好最简单的办法是什么?普遍的解决之道是什么?

想到一些银行系统应该对这些有着严格的要求,所以拜了先。。。

chabulier
2005-09-20 17:42
不知道这叫不叫并发控制?请赐教

banq
2005-09-20 17:42
这种现象一般在后台删除方法时捕获一下出错就可以,然后告诉B记录已经被删除。

如果你的业务上有要求:客户B在浏览Record3时,其他客户就不能对Record3进行修改或删除操作,也就是锁定Record3,那么就要求一个长事务了。

短事务一般指数据库连接打开和关闭这段事务。

chabulier
2005-09-21 09:10
谢谢BanQ,又长进了一步。我们的业务要求很低,不需要做长事务。

猜你喜欢