修正:當 AmbientTransaction 為真或 ReceiveTimeout 不超過輪詢時間加上查詢 SQL Server 資料的時間時,WCF-SQL 介面卡會間歇性失敗

套用到
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

症狀

請考慮以下案例:

  • 你有一個 Windows 通訊框架 (WCF) 基於 SQL 介面卡Microsoft BizTalk Server,能從SQL Server的儲存程序中以短時間、規律的間隔取得大量資料Microsoft。
  • 檢索的資料會以檔案形式寫入共享資料夾中。

在這種情況下,你可能會注意到只有少數檔案是隨機寫入的,因為接收埠不會觸發。 伺服器事件日誌中不會記錄錯誤訊息,BizTalk Server 也不會收到任何暫停訊息。

此問題發生於 WCF-SQL 介面卡在以下任一條件成立時間歇性失效:

  • AmbientTransaction 屬性設定為 True
  • ReceiveTimeout 綁定屬性等於或小於 PollingIntervalInSeconds 值加上查詢 SQL Server 資料所需時間的總和。

解決方式

此問題已在以下 BizTalk Server 的累積更新中得到修正:

BizTalk Server 2016 的累積更新 4

BizTalk Server 2013 r2 的累積更新 7

此更新引入了新的 PollingSqlReceiveTimeout 屬性,將決定 SQL 逾時值。 若此值為零, WCF ReceiveTimeout 將被用作 PollingSqlReceiveTimeout。

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

了解 BizTalk Server 的服務包與累積更新清單

了解 BizTalk Server 的熱修補與累積更新支援