Java 理论与实践: 理解 JTS —— 事务简介
2010-03-22 00:00:00 来源:WEB开发网核心提示: 原子性 意味着要么所有事务操作都应用于应用程序状态,要么都不应用;事务是不可拆分的工作单元,Java 理论与实践: 理解 JTS —— 事务简介(4),一致性 意味着事务代表应用程序状态的正确转换 —— 即事务不能违反应用程序中固有的任何完整性限制,实际上,它们将是 JM
原子性 意味着要么所有事务操作都应用于应用程序状态,要么都不应用;事务是不可拆分的工作单元。
一致性 意味着事务代表应用程序状态的正确转换 —— 即事务不能违反应用程序中固有的任何完整性限制。实际上,一致性的概念是特定于应用程序的。例如,在记账应用程序中,一致性可能包括所有资产账户的总和始终等于所有负债账户的总和这个不变式。在本系列的第 3 部分中讨论事务划分时,我们将详细讨论这个需求。
隔离性 意味着一个事务的效果不影响正在同时执行的其他事务。从事务的角度讲,它意味着事务按顺序执行而不是并行执行。在数据库系统中,通常通过使用锁机制来实现隔离性。为了使应用程序获得最佳性能,有时也会对某些事务放松隔离性的要求。
持久性 意味着一旦成功完成某个事务,对应用程序状态所做的更改将 “经得起失败”。
什么是 “经得起失败”呢?它由什么组成?这取决于系统,一个设计良好的系统将明确地标识可以从哪些故障中恢复过来。在我的桌面工作站上运行的事务数据库,对于系统崩溃和电源故障非常稳定健壮,但是对于我的办公大楼发生大火灾却没有任何作用。银行可能不仅仅在数据中心具有冗余的磁盘、网络以及系统,而且还可能在别的城市有冗余的数据中心,该冗余数据中心通过冗余的通信链路连接,目的是允许从严重的故障(如自然灾害)中进行恢复。军用的数据系统甚至可能有更严格的容错要求。
事务的剖析
典型事务有几个参与者 —— 应用程序、事务监视器(TPM)以及一个或多个资源管理器(RM)。资源管理器存储应用程序状态,常常是数据库,但也可能是消息队列服务器(在 J2EE 应用程序中,它们将是 JMS 提供者)或其他事务性资源。TPM 协调 RM 的活动,以确保事务 “要么全有要么全无” 属性。
更多精彩
赞助商链接