共用方式為


控制物件存留期和狀態

集區物件可以藉由實 作 IObjectControl,參與 COM+ 在集區中管理其活動的方式。 建立集區物件時,它會匯總成較大的物件,以在物件生命週期中的一般點呼叫 IObjectControl 上的下列方法來管理物件:

  • Activate- 每當物件傳回至用戶端時呼叫,會在特定內容中啟動。
  • 停用— 每當客戶端釋放物件時呼叫,或在停用 JIT 啟動的物件時呼叫。
  • CanBePooled - 每當物件要傳回一般集區時呼叫。

實作 IObjectControl 是選擇性的,但交易物件除外,這些對象應該一律實 作 CanBePooled 來監視其保留的資源狀態。 不過,建議在大部分情況下實 作 IObjectControl ,因為它提供有效率的方式來管理集區對象的行為,如下所述。

執行內容特定的初始化

使用 Activate,您可以在指定的用戶端啟用物件的內容中初始化物件。 例如,若要判斷物件是否有交易親和性(其資源可能已經登記),您可能會取得與內容相關聯的交易標識符。

一般而言,您會使用 Activate 來執行物件所公開之任何方法一致的初始化,並將它視為物件建構函式的內容特定部分。

清除任何客戶端狀態

使用 Deactivate,您可以清除任何可能存在的用戶端特定狀態,讓您的物件以完全一般狀態返回集區,然後可供任何用戶端使用,而不會危及安全性或隔離。

控制物件的重複使用

使用 CanBePooled,您可以監視物件的內部狀態,並報告其是否適合重複使用。 如果 CanBePooled 傳回 True,且尚未達到集區最大值,物件會放在一般集區中。 如果 CanBePooled 傳回 False,則會捨棄物件。 在交易元件的情況下,傳回 False 將會讓目前的交易失敗。

一般而言,您會保留物件的一些全域數據成員,而且如果您偵測到連線不正確或某種資源處於不良狀態,請將此設定為反映目前的情況,並透過 CanBePooled 傳回它。

如果物件未實 作 CanBePooled,實例會繼續重複使用,直到達到集區最高層級為止。

COM+ 物件建構函式字串

對象共用的運作方式

使用物件共用改善效能

共用交易物件

可集區物件的需求