FIX: WCF-SQL adapter fails intermittently if AmbientTransaction is True or if ReceiveTimeout is not more than polling time plus time to query data from SQL Server

Applies to: BizTalk Server 2013 R2 DeveloperBizTalk Server 2013 R2 BranchBizTalk Server 2013 R2 Enterprise

Symptoms


Consider the following scenario:

  • You have a Windows Communication Framework (WCF)-based SQL adapter in Microsoft BizTalk Server that retrieves lots of data at short, regular intervals from a stored procedure in Microsoft SQL Server.
  • The data retrieved is written as files in shared folders.

In this scenario, you may notice that only a few files are written randomly because the receive port does not trigger. No error messages are logged in the server event log, and you don't receive any suspended messages in BizTalk Server. 

This issue occurs because the WCF-SQL adapter fails intermittently if either of the following conditions is true:

  • The AmbientTransaction property is set to True.
  • The ReceiveTimeout binding property is equal to or less than the total of the PollingIntervalInSeconds value plus the time that's required to query the data from SQL Server.

Resolution


This issue is fixed in the following cumulative update for BizTalk Server:

       Cumulative Update 4 for BizTalk Server 2016

       Cumulative Update 7 for BizTalk Server 2013 R2

Note This update introduces a new PollingSqlReceiveTimeout property that will determine the SQL time-out value. If this value is zero, WCF ReceiveTimeout will be used as PollingSqlReceiveTimeout.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.