2011-08-04 66 views
1

我知道這是一箇舊的討論,但仍然是一個開放的討論。MS CRM中的自動編號

情景很簡單,你有一個實體說賬戶,其中包含一個名爲「AccountId」 應該自動增加的屬性。

這個主要候選人是在Pre事件中註冊的Plugin。

有不同的選項可以滿足這個需求。

  • 獲取最大數量,遞增並分配給AccountId屬性。
  • 依賴某些外部來源,例如一些Web服務或數據庫來執行這項工作。 (這不是一個好辦法)

這些方法是disccused here

我個人很贊成方案1,但我有顧慮:

1上concurent複製請求

鎖定和互斥量可以減少,但可以做些什麼來避免這種問題的情況下「農場環境「?

回答

3

「農場環境」中的問題實際上意味着安裝了多個前端角色的服務器,因爲您幾乎無法避免重複計數器值。

使用鎖或互斥鎖,您只能在單個機器環境中實現一致性。

如果您需要可靠的編號,您應該使用生成數字的服務或專用數據庫(即不支持CRM數據庫,因爲這不會被支持)作爲後端,您可以在其中協調請求鎖。

+0

正確。在多服務器環境中,鎖和互斥鎖不起作用。要走的路是一個編號生成的Web服務。 – hdoghmen