1
假設我有2臺與同一交易數據庫交談的服務器。如何使用事務數據庫創建關鍵部分?
我想設置它使得這兩個服務器中只有一個會執行給定的定時操作(實質上使用數據庫來強制同步)。從我聽到的情況來看,可能會發生這樣的情況:
說我的表TABLE有2列,ID和STATUS。如果我設置的代碼,例如:
update TABLE set STATUS = 'processing' where ID = 1234 and STATUS != 'processing'
if (weHaveModifiedAtLeastOneRow)
{
// do critical section stuff here
// This is code that we only want one server to run, not both.
update TABLE set STATUS = 'free' where ID = 1234
}
else
{
// We failed to get the lock, so do nothing
}
請問
這項工作,還是我在這裏失去了一些概念?
我不是很喜歡滾動自己的鎖;然而,這可能是一個解決方案。但是,我們仍然需要確保兩個調用服務器在發出鎖時使用相同的ID,所以看起來我們只是在傳輸同步問題而不是解決它。 – APC