2012-08-16 74 views
0

它的一個簡單的問題,但是我有幾天沒有任何明確的解決方案浪費了。解決僵局的最佳方法

我使用spring jdbc模板作爲我的DAO層mssql sever 2005作爲我的數據庫,我們有一個訂單輸入系統。現在,當系統中有超過5人時,我們會遇到很多死鎖情況。當人們嘗試創建新訂單而其他人更新現有訂單時,似乎發生鎖定。對於同一個表,插入和更新語句似乎是衝突的。

我沒有做任何事情來解決這個問題,並沒有任何工作。所以現在我正在考慮引入java.util.semaphore或一個Lock並控制線程的併發訪問,或者我可以去同步方法或塊。

你們對此有何看法?數據庫服務器上有沒有更好的處理方法?

謝謝。

回答

0

您可以使用sp_getApplock在數據庫端實現信號量等效解決方案。但大多數時候,這是沒有必要的。不同類型的死鎖需要不同類型的治療。看看下面鏈接的帖子,看看如何解決常見的死鎖模式。 http://sqlindian.com/2012/07/06/sql-server-deadlocks-and-live-lockscommon-patterns/

如果你可以捕捉您使用跟蹤標誌1222具體的僵局並張貼在這裏跟蹤的詳細信息,我們將能夠進一步幫助你。