Skip to main content

與 "SQL Server" 標籤有關的文章

瀏覽所有標籤

延長 MSDTC 分散式交易連線快取的時間,提升系統效能

· 預估閱讀時間: 8 分鐘
Ouch Liu
不務正業的架構師

前言

之前有同事跑來問我,為什麼我們的 ASP.NET WebAPI 閒置一段時間之後,被呼叫的第一個 API 呼叫都會因為超時而失敗?

(這裡指的超時是呼叫端設定了兩秒沒收到回應就會直接當作超時處理)

而且很有趣的是,當把 Load Balancer 後面的伺服器移到只剩一台的時候,這個問題就不會發生。

一旦掛上兩台以上的機器,比較不那麼忙的那台就很容易重現這個問題。

當下我一開始很直覺的認為,應該是系統沒有作好預載(Preload)的動作,導致 Application Pool 被回收之後重啟的過程花費太多時間。

但是人生往往不是這麼簡單,在我們對系統加上預載相關設定之後,隔一段時間的第一個 API 呼叫都還是會超時。

經過一番抽絲剝繭之後,才發現原來真兇是 MSDTC…