我的asp.net WEB API應用程序處理請求。每個請求都可以對數據庫進行多次調用。 同一用戶可以呼叫來自不同IP地址的請求。MS SQL Server - 使用事務處理霧化操作
我需要開發針對用戶的請求等待鏈,使同一個用戶的請求將等待前一個請求完成。
以前我通過運行在一個事務範圍的要求使得它: 隔離級別= ReadCommited爲了鎖定該行以DB更新用戶排記錄 第一個請求,讓其他請求應該在這裏等着,而先前的事務中運行。
i之後由具有多個不同的用戶,在同一時間不相同的負荷試驗中,我想通了,它們在某種程度上dealocking海誓山盟:
事務(進程ID 119)中的死鎖的鎖資源與另一個進程並被選爲死鎖受害者。重新運行交易。
我的問題是:這將是我的情況,制定一個用戶級等待鏈的應用要求最好的方法?
預先感謝您!
你想放棄你的方法。相反,你應該修復bug(死鎖)。另一方面,使用數據庫鎖作爲隊列不是完全可擴展的。同時會有多少個排隊請求? – usr