差不多所有的企业应用程序都需要多用户和多个后台进程并行的更新数据库。2个数据库 处理事务同时访问同时访问同一个数据是很正常的,但是这种情况很可能引起数据库中的数据不一致或者引起应用程序的不正常。由于大部分的应用程序都需要处理多个处理事务并行访问同一个数据,则它可以影响到业务和持久层的设计。
无论你是使用EJB还是轻量级构架,你的程序必须可以并行访问共享数据。EJB2要求使用供应商提供的特殊扩充接口来实现并行,然而与此不同的是,JDO和Hibernate可以直接支持大部分并行机制。更重要的是,使用JDO和Hibernate不仅只配置简单,而且只需要少量的代码就可以实现了。
在这样主要介绍几种“并行更新数据库处理事务”的选项的概要,这些事务处理和用户的输入无关。下一章,我主要介绍一下如何在应用程序级长时间的并行更新数据库处理事务,这种处理事务会与用户输入有关,而且是由一系列的数据库事务处理组成的。
独立数据库事务
有时候对共享数据的并行访问可以简单的依靠数据库本身来实现,数据库可以设置为执行孤立的数据――这只是对数据库而言。如果你对这种概念不熟悉也不要担心,你只要记住:如果应用程序使用完全的孤立事务方式,那么同时执行2个事务的结果和一个接一个的执行是一样的。(也就是说,如果你用孤立事务的方式来访问数据库的话,你同时执行2个事务,就会变成一个接一个的串行执行了。)
这种方法也许听起来非常的简单,但问题是这种处理方式有时候会降低性能,因为如何实现对事务的孤立是由数据库来决定的。为了这个原因,许多应用程序都避免使用它,而采用optimistic或者pessimistic 所锁,这会在下面讲到。
开放式锁定
文章来源于领测软件测试网 https://www.ltesting.net/