2010-05-11 69 views
4

一般來說,SharePoint中有沒有一種體面的方式來控制由於兩個進程或甚至兩個機器同時在同一列表或列表項上操作的競爭條件?也就是說,是否有任何內置的機制或者可以通過對象模型製作的機制來完成單個列表項的跨進程或跨機器鎖定?跨進程/機器的SharePoint列表/項目鎖定方法?

我想寫一個計時器作業,在列表上執行一堆操作。此列表由SharePoint用戶界面寫入,然後由用戶界面讀取。由於計時器作業處於操作中,我希望能夠確保UI在處於不一致狀態時不會寫入或讀取列表。有沒有辦法做到這一點?

此外,我想允許計時器作業的多個實例同時運行。這又一次需要鎖定,以確保兩個作業不會同時嘗試在同一個列表/項目上操作。

TIA任何幫助!

回答

0

我相信,(但沒有機會測試),其optimistic concurrency control在列表項級別是內置的。

如果你的應用程序確實只需要通過鎖定(比如在列表級別)的更多控制那麼也許它的代碼味道,你推動SharePoint列表太難,你應該使用完整的ACID properties RDBMS(如SQL Server)?

1

看看

  • 標準文檔庫工具如何退房/登記入住
  • 這有效地鎖定了SP - 對應於文件項目

你然後可以

  • 開發一個自定義列表
  • 利用相同退房/登記入住的辦法

希望這有助於