共用方式為


COM+ 同步處理概念

一般而言,當您有單個線程 Apartment (STA) 時,不需要同步處理,因為 Apartment 會為您提供同步處理。 當您擁有多線程 Apartment (MTA) 和自由線程物件時,同步處理會變得很重要。 在過去,自由線程對象必須處理鎖定。 您可以藉由設定元件的同步處理屬性來消除使用鎖定的需求。

同步處理具有下列屬性:

  • 允許一個呼叫端一次輸入元件。
  • 禁止跨進程或跨計算機流動。
  • 從元件流向進程內的元件。
  • 允許從相同的呼叫端重新進入。

不同於 Apartment,活動跨越多個進程和主機的內容。 同步處理會決定哪個活動將包含物件。 物件可以位於下列任何一個活動中:

  • 建立者的活動
  • 新增活動
  • 沒有活動

COM+ 可確保每個活動的一連串鎖定並行。 如果呼叫端嘗試輸入另一個呼叫端已使用的 COM+ 同步處理元件,則會封鎖呼叫,直到鎖定釋放為止。 此封鎖行為不會逾時,且無法設定為逾時。如果鎖定不在使用中,則會取得鎖定並處理呼叫。 完成之後,下一個呼叫端會釋放鎖定。 為了防止死結,COM+ 會透過整個網路鏈結的巢狀呼叫系列,管理跨活動的所有物件的存取。

COM+ 提供下列同步處理設定:

  • 停用
  • 不支援
  • 支援
  • 必要
  • 必須是新交易

注意

某些同步處理設定與其他 COM+ 元件設定搭配運作。 例如,如果 啟用 COM+ Just-In-Time 啟用服務, 則需要同步處理。 如果您啟用交易,則需要 JIT;因此,COM+ 事務處理 也需要同步處理。 因此,具有 JIT=True 設定的類別也必須具有 Synchronization=Required 或 Synchronization=RequiresNew 的設定。

 

如需使用元件服務系統管理工具設定同步處理選項的指示,請參閱 設定同步處理屬性

若要取得使用 COM+ 管理員 istration 連結庫來設定同步處理選項的詳細資訊,請參閱自動化 COM+ 管理員 istration

COM+ 同步處理工作