事务管理,是应用程序中的一种牺牲性能提高数据的一致性完整性的手段。在IBM博客中有以下内容:
引用
少数应用程序极少或从来不会抛出异常。这些应用程序基于编写良好的代码、编写良好的验证例程,并经过了充分的测试,有代码覆盖支持,可以避免性能损耗和与事务处理有关的复杂性。这种类型的应用程序只需考虑事务支持的一个特性:原子性。原子性确保所有更新被当作一个单独的单元,要么全部提交,要么回滚。但是回滚或同时更新不是事务支持的惟一方面。另一方面,隔离性 将确保某一工作单元独立于其他工作单元。没有适当的事务隔离性,其他工作单元就可以访问某一活动工作单元所做的更新,即使该工作单元还未完成。这样,就会基于部分数据作出业务决策,而这会导致失败的交易或产生其他负面(或代价昂贵的)结果。
事务管理是保证服务的完整,要么提交,要么回滚,这在Linux/Unix系统中也随处可见,如果每个程序没安装成功,中途报错影响使用的话,会发生rollBack。在应用程序中也是一个道理,比如在一个服务中,重要的更新报错出错,导致业务没有实现,就有道理和理由进行回滚,撤销本次操作开始到更新操作中间的写操作,这是应用场景之一。上一场景时重要的更新,相对就有不重要的操作,比如在注册账户的过程中,需要邮件服务器向用户邮箱发送通知确认邮件,但此时邮件服务器失去连接,我们没有理由撤销用户的注册过程,所以此处我们有必要认为此次注册操作成功,至于邮件我们可以将其加入通知任务列表异步处理,这是不能进行回滚的场景之一。
REQUIRED
支持当前上下文中存在事务,如果没有事务就创建一个新的,如果有,则在当前事务下执行
SUPPORTS
支持当前上下文中存在事务,如果没有事务,就在无事务上下文下执行
MANDATORY
支持当前上下文中存在事务,如果没有事务就抛出异常
REQUIRES_NEW
产生一个新的事务,如果当前上下文中有事务就挂起原来事务
NOT_SUPPORTED
不支持当前上下文存在事务,总是在无事务上下文下执行,存在的事务会进行挂起操作
NEVER
不支持当前上下文存在事务,如果存在事务则抛出异常
NESTED
如果当前上下文中存在事务就执行一个内嵌的事务
非事务环境,一般可以用于查询,无需挂起加锁,加快查询。如果对写操作设置SUPPORTS,同时表明readonly是无效,此时没有事务,仍然会被写入。
注意事务是牺牲性能保证数据的一致性完整性,如果无需保证数据检验而又使用事务管理,反而或因为无谓加锁导致性能降低。
分享到:
相关推荐
PostgreSQL 事务处理技术内幕深度探索 PostgreSQL 是一种开放源代码的关系数据库管理系统(RDBMS),它具有高度的可靠性、稳定性和安全性,被广泛应用于各种企业级应用和云服务。PostgreSQL 的事务处理机制是...
事务处理广泛地应用于数据库和操作系统领域,并在现代计算机系统中监控、控制和更新信息。本书向读者展示了大型的、分布的、异构的计算机系统是如何进行可靠工作的。作者使用事务作为基本概念,说明了在有限的资金和...
### 联机事务处理系统(OLTP)深入解析 #### OLTP系统概览 联机事务处理系统(OLTP)是数据库管理的核心组件之一,主要用于处理大量的事务性操作,如银行交易、订单处理和机票预订等。这些系统旨在提供高并发、低...
在IT领域,尤其是在数据库编程中,事务处理是一个至关重要的概念,尤其在使用C#进行开发时。事务确保了数据的一致性和完整性,是数据库操作的基本单位。本篇将深入探讨C#中的事务处理,以及如何在实践中应用这些知识...
本压缩包文件"易语言学习进阶事务处理"是针对易语言使用者提供的一份进阶学习资料,主要涵盖了事务处理的相关知识。 事务处理在计算机科学中是指在数据库管理系统中执行的一系列操作,这些操作被视为一个单一的工作...
Java事务处理详解 Java事务处理是指在Java应用程序中对事务的管理和控制。事务是指一系列的操作,Either all succeed or all fail。Java事务处理的目的是为了确保数据的一致性和完整性。 Spring是Java事务处理的...
### Socket_UDP多事务处理程序框架的关键知识点 #### 第一部分:Socket通信事务处理中的常见问题描述 **1.1 Socket通信基础** Socket通信是基于互联网协议(IP)进行数据传输的标准方式,提供了网络上的进程间...
### 分布式事务处理在大规模SOA系统中的挑战与解决方案 #### 一、背景与历史:山穷水尽 在介绍分布式事务处理之前,我们首先回顾一下事务处理的历史背景及其面临的挑战。传统的事务处理通常是在单个应用系统内部...
数据库事务处理是数据库管理系统中的核心概念,用于确保数据的一致性和完整性。事务是数据库操作的基本单元,它包含一组逻辑操作,这些操作要么全部执行,要么全部不执行,以确保数据的原子性。事务处理主要关注两个...
事务处理 概念与技术
在IT领域,事务处理是数据库管理系统中的核心概念,它确保了数据的一致性和完整性。本文将深入探讨事务的原理和实现方法。 1. **什么是事务** 事务是一系列数据库操作的逻辑单元,这些操作要么全部成功执行,要么...
在易语言的学习过程中,进阶事务处理是提升技能的重要环节。事务处理通常涉及到数据库操作、多线程、错误处理和程序流程控制等复杂技术,对于软件的稳定性和效率有着至关重要的作用。 在这个“易语言学习进阶事务...
### ASP.NET中的事务处理与异常处理 在ASP.NET开发中,事务处理与异常处理是确保应用程序稳定性和数据一致性的重要组成部分。本文将详细探讨这两个概念及其具体应用方式。 #### 一、事务处理 事务处理主要用于...
数据库事务处理是数据库管理系统中的核心概念,用于确保数据的一致性和完整性。在“数据库事务处理基础——设计与实现”这个主题中,我们将深入探讨数据库事务的各个方面,包括其定义、特性、类型以及如何在实际应用...
在VB.NET 2008中,事务处理是确保数据库操作一致性的重要机制。它允许一组数据库操作要么全部成功,要么全部失败,从而避免了数据不一致性的风险。本示例涵盖了如何在VB.NET环境中利用ADO.NET进行事务管理,特别是在...
### Java事务处理详细介绍 #### 一、什么是Java事务 在软件开发领域,特别是涉及数据库操作的应用中,**事务处理**是非常关键的一个概念。通常人们认为事务处理与数据库操作紧密相关,其实事务的概念远不止于此。...
在SQL Server中,事务处理是数据库操作的核心组成部分,它确保数据的一致性和完整性。事务是一组逻辑操作,这些操作被视为单个单元,要么全部完成,要么全部回滚,以维护数据库的ACID(原子性、一致性、隔离性和持久...
本文将探讨分布式系统中事务处理的常用方法,并重点分析数据分区和数据镜像这两种扩展数据服务的手段,以及它们对事务处理带来的挑战。 首先,我们需要了解单台服务器在处理大量网络请求时所面临的性能瓶颈和服务的...
### JavaBean中使用JDBC方式进行事务处理 #### 一、引言 在现代软件开发过程中,数据一致性是非常关键的一个方面,特别是在涉及到多个数据库操作时。本文将详细介绍如何在JavaBean中利用JDBC(Java Database ...