System.Transactions 事务超时属性

System.Transactions 有2个超时属性(timeout 与 maxTimeout),可以通过配置文件来进行设置。

1. timeout

System.Transactions 默认的timeout值为1分钟,可以通过app.config/web.config/machine.config来进行设置(对于应用中具体的事务还可以通过调用具体对象TransactionScopeCommittableTransaction的构造函数进行设置)。以下配置样例代码将其设置为30秒:

<configuration>
 <system.transactions>
  <defaultSettings timeout="00:00:30" />
 </system.transactions>
</configuration>

2. maximum transaction timeout

System.Transactions此外还有一个属性: maximum transaction timeout,该属性主要是系统管理员用于限制事务超时,其默认值为10分钟,并且不可在代码中覆盖设置。如果在配置文件或者代码中所设置的超时值均已超出该值,则以该值为准。maximum transaction timeout只能在machine.config文件中进行配置,以下配置样例代码将其设置为30分钟:

<configuration>
 <system.transactions>
   <machineSettings maxTimeout="00:30:00" />
 </system.transactions>
</configuration>

综上所述,即使在应用的配置文件或代码中将timeout设置为0,试图将事务超时时间设置为无限长也是无效的,整个事务的实际超时时间还是为machineSetting的maxTimeout值所限制。

时间: 2024-08-26 03:20:06

System.Transactions 事务超时属性的相关文章

System.Transactions事务超时设置

System.Transactions 有2个超时属性(timeout 与 maxTimeout),可以通过配置文件来进行设置. 1. timeout System.Transactions 默认的timeout值为1分钟,可以通过app.config/web.config/machine.config来进行设置(对于应用中具体的事务还可以通过调用具体对象TransactionScope或CommittableTransaction的构造函数进行设置).以下配置样例代码将其设置为30秒: <co

谈谈分布式事务之三: System.Transactions事务详解[上篇]

在.NET 1.x中,我们基本是通过ADO.NET实现对不同数据库访问的事务..NET 2.0为了带来了全新的事务编程模式,由于所有事务组件或者类型均定义在System.Transactions程序集中的System.Transactions命名空间下,我们直接称基于此的事务为System.Transactions事务.System.Transactions事务编程模型使我们可以显式(通过System.Transactions.Transaction)或者隐式(基于System.Transact

谈谈分布式事务之三: System.Transactions事务详解[下篇]

在前面一篇给出的Transaction的定义中,信息的读者应该看到了一个叫做DepedentClone的方法.该方法对用于创建基于现有Transaction对 象的“依赖事务(DependentTransaction)”.不像可提交事务是一个独立的事务对象,依赖事务依附于现有的某个事务(可能是可提交事 务,也可能是依赖事务).依赖事务可以帮助我们很容易地编写一些事务型操作,当环境事务不存的时候,可以确保操作在一个独立的事务中执行:当环境事务存在 的时候,则自动加入其中. 一.依赖事务(Depen

C#高级编程 25.5 System.Transactions学习笔记

在.NET 1.x中,基本上是通过ADO.NET实现对不同数据库访问的事务..NET 2.0增加了System.Transactions名称空间,为.NET应用程序带来了一个新的事务变成模型. 所有的事务组件或者类型均定义在System.Transactions程序集中的System.Transactions命名空间下,我们直接称基于此的事务为System.Transactions事务. System.Transactions事务变成模型使我们可以显式(通过System.Transactions

MongoDB和System.Transactions

此文为译文,原文地址请点击. 如何在你的MongoDB操作使用TransactionScope? 简介MongoDB是一个开源的NoSQL面向文档的数据库,以JSON格式的动态数据模式,以上是维基百科的描述.这篇文章的目的并不是提供一个高水平的MongoDB 速成课程,但是如果你不知道MongoDB这款华丽的软件,产品网站本身是更好的起点https://www.mongodb.com/what-is-mongodb.本文档是不仅仅是作为一个C#使用MongoDB的例子,而且它是在一定程度上规范你

实例详解 EJB 中的六大事务传播属性--转

前言 事务 (Transaction) 是访问并可能更新数据库中各种数据项的一个程序执行单元 (unit).在关系数据库中,一个事务可以是一条或一组 SQL 语句,甚至整个程序.它有通常被称为 ACID 的原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持续性(Durability)四大特性: 原子性(Atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做. 一致性(Consistency):事务必须是使数据库

数据库事务的属性-ACID和隔离级别

1.数据库事务的属性-ACID(四个英文单词的首写字母): 1)原子性(Atomicity) 所谓原子性就是将一组操作作为一个操作单元,是原子操作,即要么全部执行,要么全部不执行. 2)一致性(Consistency) 事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态.如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态.如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态. 3)隔离性(Isolation) 隔离性指并发的事务是相互

Spring事务超时时间可能存在的错误认识

摘自:http://jinnianshilongnian.iteye.com/blog/1986023, 感谢作者. 1.先看代码 1.1.spring-config.xml Java代码   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName&q

SpringBoot系列教程之事务传递属性

200202-SpringBoot系列教程之事务传递属性 对于mysql而言,关于事务的主要知识点可能几种在隔离级别上:在Spring体系中,使用事务的时候,还有一个知识点事务的传递属性同样重要,本文将主要介绍7中传递属性的使用场景 I. 配置 本文的case,将使用声明式事务,首先我们创建一个SpringBoot项目,版本为2.2.1.RELEASE,使用mysql作为目标数据库,存储引擎选择Innodb,事务隔离级别为RR 1. 项目配置 在项目pom.xml文件中,加上spring-boo