共用方式為


對象共用的運作方式

當您將元件設定為集區時,COM+ 會在集區中維護它的實例,可供任何要求元件的客戶端啟用。 任何物件建立要求都會透過集區管理員來處理。

集區會根據每個元件進行設定和維護。 集區是由共用相同 CLSID 的同質物件所組成。 唯一的例外狀況是交易物件,其中子集區會保留包含交易暫止時具有交易親和性的物件。

當應用程式啟動時,只要建立物件成功,集區就會填入您系統管理指定的最低層級。 當元件的用戶端要求傳入時,會先從集區先到先得地滿足這些要求。 如果沒有集區物件可供使用,且集區尚未達到其指定的最大層級,則會為用戶端建立並啟動新的物件。

當集區達到最大層級時,用戶端要求會排入佇列,並從集區接收第一個可用的物件。 物件數目,包括啟動和停用,永遠不會超過集區值上限。 物件建立要求會在系統管理指定的期間之後逾時,以便您可以控制用戶端等候物件建立的時間長度。 發生逾時失敗時,用戶端會從 CoCreateInstance E_TIMEOUT回復錯誤。

盡可能,COM+ 會在用戶端放開對象之後嘗試重複使用物件,直到集區達到其最大層級為止。 對象負責監視其狀態,以判斷是否可以重複使用,而且應該針對 IObjectControl::CanBePooled 傳回適當的值。

建立集區物件時,它會匯總成較大的物件,以管理物件的存留期。 外部物件會在物件生命週期中的適當時間呼叫 IObjectControl的方法,如下所示:

物件不一定需要實作 IObjectControl 如果沒有,實例一律會重複使用,直到達到集區最大層級為止。

如需如何設定要集區之元件的詳細資訊,請參閱 設定要集區的元件。

COM+ 物件建構函式字串

控制物件存留期和狀態

使用物件共用改善效能

共用交易物件

可集區物件的需求