Maison  >  Article  >  base de données  >  Unabletogeterrormessage无法获取错误消息(6107)(0)分布式事务Tr

Unabletogeterrormessage无法获取错误消息(6107)(0)分布式事务Tr

WBOY
WBOYoriginal
2016-06-07 15:28:171604parcourir

今天遇到了一个奇葩问题,业务运行了不到1分钟,就跑出来一个数据库错误,而且还是不定行的,错误内容是 无法获取错误消息(6107)(0) , 英文是 Unable to get error message(6107)(0) , 如果大家谁还遇到这个问题,那我帮你定位 100% 是分布式事务 超时所引


今天遇到了一个奇葩问题,业务运行了不到1分钟,就跑出来一个数据库错误,而且还是不定行的,错误内容是 无法获取错误消息(6107)(0) , 英文是 Unable to get error message(6107)(0) ,

如果大家谁还遇到这个问题,那我帮你定位 100% 是分布式事务 超时所引起的。一般在打开事务的地方需要设置超时时间

 using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(1, 0, 0)))
            {




}

我的超时情况比较复杂,因为事务里面还有WCF 访问,所以WCF 的连接超时也会影响分布式事务,设置WCF的时间

<binding name="transactionalBinding" receiveTimeout="00:30:00" sendTimeout="00:30:00">
          <textMessageEncoding>
            <readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647" maxDepth="64"/>
          </textMessageEncoding>
	<transactionFlow transactionProtocol="WSAtomicTransaction11"/>
          <httpsTransport manualAddressing="false" maxBufferPoolSize="524288"
            maxReceivedMessageSize="2147483647" allowCookies="false" authenticationScheme="Anonymous"
            bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
            keepAliveEnabled="true" maxBufferSize="2147483647" proxyAuthenticationScheme="Anonymous"
            realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
            useDefaultWebProxy="true" />
        </binding>

另外还要设置Web.Config 对于这个应用的分布式事务超时

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

最后一点,如果还是在10分钟内就断掉了,就要设置Machine.Config 了

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG

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


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:JDBC--Statement(添加)Article suivant:达梦(6)联机备份恢复