Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

WBOY
Freigeben: 2016-06-07 15:28:17
Original
1603 Leute haben es durchsucht

今天遇到了一个奇葩问题,业务运行了不到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)))
            {




}
Nach dem Login kopieren

我的超时情况比较复杂,因为事务里面还有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>
Nach dem Login kopieren

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

  <system.transactions>
  <defaultSettings timeout="00:30:00" />
  </system.transactions>
Nach dem Login kopieren

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

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

<configuration>
 <system.transactions>
   <machineSettings maxTimeout="00:30:00" />
 </system.transactions>
</configuration>
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage