LÖSNING: WCF-SQL-adaptern misslyckas ibland om AmbientTransaction är sant eller om ReceiveTimeout inte är mer än avsökningstiden plus tid för att fråga efter data från SQL Server

Gäller för
BizTalk Server 2013 R2 Developer BizTalk Server 2013 R2 Branch BizTalk Server 2013 R2 Enterprise BizTalk Server 2013 R2 Standard BizTalk Server 2016 Developer BizTalk Server 2016 Branch BizTalk Server 2016 Enterprise BizTalk Server 2016 Standard

Symptom

Tänk dig följande scenario:

  • Du har en WCF-baserad (Windows Communication Framework) SQL-adapter i Microsoft BizTalk Server som hämtar stora mängder data med korta, regelbundna intervall från en lagrad procedur i Microsoft SQL Server.
  • De data som hämtas skrivs som filer i delade mappar.

I det här scenariot kanske du märker att bara ett fåtal filer skrivs slumpmässigt eftersom mottagningsporten inte utlöses. Inga felmeddelanden loggas i serverhändelseloggen och du får inga pausade meddelanden i BizTalk Server.

Det här problemet beror på att WCF-SQL-kortet misslyckas tillfälligt om något av följande villkor är sant:

  • Egenskapen AmbientTransaction är inställd på True.
  • Bindningsegenskapen ReceiveTimeout är lika med eller mindre än det totala värdet PollingIntervalInSeconds plus den tid som krävs för att fråga efter data från SQL Server.

Lösning

Det här problemet åtgärdas i följande kumulativa uppdatering för BizTalk Server:

Kumulativ uppdatering 4 för BizTalk Server 2016

Kumulativ uppdatering 7 för BizTalk Server 2013 R2

Anteckning Den här uppdateringen introducerar en ny PollingSqlReceiveTimeout-egenskap som bestämmer SQL-timeoutvärdet. Om det här värdet är noll används WCF ReceiveTimeout som PollingSqlReceiveTimeout.

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Referenser

Lär dig mer om Service Pack och kumulativ uppdateringslista för BizTalk Server.

Lär dig mer om snabbkorrigeringar och kumulativt uppdateringsstöd för BizTalk Server.