System.Transactions事务超时设置
2017-09-07 15:07
288 查看
System.Transactions 有2个超时属性(timeout 与 maxTimeout),可以通过配置文件来进行设置。
System.Transactions 默认的timeout值为1分钟,可以通过app.config/web.config/machine.config来进行设置(对于应用中具体的事务还可以通过调用具体对象TransactionScope或CommittableTransaction的构造函数进行设置)。以下配置样例代码将其设置为30秒:
System.Transactions此外还有一个属性: maximum transaction timeout,该属性主要是系统管理员用于限制事务超时,其默认值为10分钟,并且不可在代码中覆盖设置。如果在配置文件或者代码中所设置的超时值均已超出该值,则以该值为准。maximum
transaction timeout只能在machine.config文件中进行配置,以下配置样例代码将其设置为30分钟:
综上所述,即使在应用的配置文件或代码中将timeout设置为0,试图将事务超时时间设置为无限长也是无效的,整个事务的实际超时时间还是为machineSetting的maxTimeout值所限制。
注:代码中设置非默认时这样写:
using (var scope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 3, 0)))
TransactionScopeOption.Required为默认,主要为后面的时间参数
1. timeout
System.Transactions 默认的timeout值为1分钟,可以通过app.config/web.config/machine.config来进行设置(对于应用中具体的事务还可以通过调用具体对象TransactionScope或CommittableTransaction的构造函数进行设置)。以下配置样例代码将其设置为30秒:<configuration> <system.transactions> <defaultSettings timeout="00:00:30" /> </system.transactions> </configuration>
2. maximum transaction timeout
System.Transactions此外还有一个属性: maximum transaction timeout,该属性主要是系统管理员用于限制事务超时,其默认值为10分钟,并且不可在代码中覆盖设置。如果在配置文件或者代码中所设置的超时值均已超出该值,则以该值为准。maximumtransaction timeout只能在machine.config文件中进行配置,以下配置样例代码将其设置为30分钟:
<configuration> <system.transactions> <machineSettings maxTimeout="00:30:00" /> </system.transactions> </configuration>
综上所述,即使在应用的配置文件或代码中将timeout设置为0,试图将事务超时时间设置为无限长也是无效的,整个事务的实际超时时间还是为machineSetting的maxTimeout值所限制。
注:代码中设置非默认时这样写:
using (var scope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 3, 0)))
TransactionScopeOption.Required为默认,主要为后面的时间参数
相关文章推荐
- System.Transactions事务超时设置
- System.Transactions 事务超时属性
- 设置事务锁的超时时间
- 事务控制(System.Transactions)用法
- System.Transactions; 事务
- 事务使用中如何避免误用分布式事务(System.Transactions.TransactionScope)
- Redis 常用命令以及使用事务、设置key超时
- 事务使用中如何避免误用分布式事务(System.Transactions.TransactionScope)
- 事务使用中如何避免误用分布式事务(System.Transactions.TransactionScope)
- System.Transactions 事务处理
- 谈谈分布式事务之三: System.Transactions事务详解[上篇]
- .NET开发中的事务处理大比拼 之 System.Transactions
- System.Transactions 事务处理
- 读书笔记:《亮剑 .Net》——System.Transactions 事务处理
- System.Transactions.TransactionException: 该伙伴事务管理器已经禁止了它对远程/网络事务的支持。
- EAS后台事务的超时时长如何设置?
- NET中的System.Transactions(分布式事务)
- .NET开发中的事务处理大比拼 之 System.Transactions
- 谈谈分布式事务之三: System.Transactions事务详解[上篇]
- [第4篇]System.Transactions事务之事务(Transaction)和可提交事务(CommittableTransaction)