WEB开发网
开发学院软件开发Java 建立一个 Derby 日历,第 3 部分: 使用事务和锁定... 阅读

建立一个 Derby 日历,第 3 部分: 使用事务和锁定(上)

 2010-04-19 00:00:00 来源:WEB开发网   
核心提示: 公用事件日历可能遇到的问题第 2 部分中,您花费了很大的精力去区分输入的数据以避免并发问题,建立一个 Derby 日历,第 3 部分: 使用事务和锁定(上)(3),但是这意味着什么呢? 如果多个日历用户同时处理同一天的数据就会出现并发问题,有时候没有关系,应用程序的概念证明只需要能够让多个用户添

公用事件日历可能遇到的问题

第 2 部分中,您花费了很大的精力去区分输入的数据以避免并发问题。但是这意味着什么呢?

如果多个日历用户同时处理同一天的数据就会出现并发问题。有时候没有关系。比方说,只要不修改数据,无论一个、两个还是 137 个用户同时查看某一天的事件都没有关系。

假设两个用户都在查看同一个事件:2005 年 10 月 28日,为即将退休的程序员举行的典礼。两个人同时在屏幕上看到了这一事件。Bob 决定修改描述,说明地点已经改在了一个安静的饭馆,而 Troy 则决定改为游乐场。当两个人都保存所做的修改时,谁会赢呢?如果 Bob 首先保存,Troy 的修改就会将其覆盖掉,而两人毫不知情。

为了避免这种情况,必须使用事务、锁定和隔离级别。

事务、锁定和隔离级别

事务是一组数据库操作,作为一个整体要么都成功,要么都失败。比方说,假设有一些经过相邻两天的事件,如一个持续两天的会议。如果移动一个事件,另一个事件也必须移动。

因此,如果发出 SQL update 语句成功修改了第一个事件,而修改第二个事件的 update 语句失败了,则必须撤销或者回滚第一个操作。

事务通过建立必须全部成功的一组动作解决了这个问题。

因此创建事务和执行动作时,比如插入数据,只有当完成或者提交事务之后动作才能生效。但这并不是说看不到更改,无论是否提交都能看到修改的情况。

问题是“其他人谁能看到?”这正是本教程探讨锁和隔离级别的原因。

对应用程序的修改

本教程将从两个方面修改应用程序。

首先是解决可用性的问题。应用程序的概念证明只需要能够让多个用户添加和显示事件。为了方便用户,还需要增加更简单的日期管理和事件编辑能力。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:建立 一个 Derby

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接