zoukankan      html  css  js  c++  java
  • System.Transactions 事务超时属性

    最近遇到一个处理较多数据的大事务,当进行至10分钟左右时,爆出事务超时异常,如果Machine.config中不设置最大超时时间,则默认超时时间为10分钟

    MachineSettingsSection.MaxTimeout Property

    [TimeSpanValidatorAttribute(MinValueString = "00:00:00", MaxValueString = "10675199.02:48:05.4775807")]
    [ConfigurationPropertyAttribute("maxTimeout", DefaultValue = "00:10:00")]
    public TimeSpan MaxTimeout { get; set; }
    http://msdn.microsoft.com/en-us/library/system.transactions.configuration.machinesettingssection.maxtimeout.aspx

    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值所限制。

    Machine.config文件在:

    C:WindowsMicrosoft.NETFrameworkv4.0config

    C:WindowsMicrosoft.NETFramework64v4.0config

  • 相关阅读:
    ZZNU 1995: cots' times
    网站后缀名都有哪些
    webstorm运行到服务器(Apache)
    window系统下node.js环境配置
    window系统安装node.js
    网站创建自定义百度地图
    响应式一级到三级导航
    H5插入视频兼容各大浏览器
    phpStudy环境安装
    jquery on和bind
  • 原文地址:https://www.cnblogs.com/springwind268/p/3963935.html
Copyright © 2011-2022 走看看