COM+ 共用屬性管理員概念

在 COM+中,對象的共用暫時性狀態是使用共用屬性管理員 (SPM) 來管理。 SPM 是一種資源分配器,可用來在伺服器進程內的多個對象之間共享狀態。

由於並行和名稱衝突問題,您無法在分散式環境中使用全域變數。 共用屬性管理員會藉由提供共用屬性群組來消除名稱衝突,這會為其包含的共用屬性建立唯一命名空間。 SPM 也會實作鎖定和號誌,協助保護共用屬性免於同時存取,這可能會導致更新遺失,並讓屬性處於無法預測的狀態。

注意

共用暫時性狀態是保留在記憶體中,無法倖存於系統失敗的狀態資訊。 這項信息的設計目的是要跨交易(但不跨進程)界限由多個對象共用。

 

儲存在 SPM 中的共享屬性僅適用於在相同進程中執行的物件。 這表示將使用 SPM 儲存值的物件,而且必須能夠存取這些值的對象必須安裝為相同 COM+ 應用程式的一部分。 系統管理員可以在部署 COM+ 應用程式之後,將 COM+ 類別從一個套件移至另一個套件。 如果您透過 SPM 依賴數個共用屬性的物件,您應該清楚記載它們必須安裝在相同的 COM+ 應用程式中。

共用屬性的元件也必須具有相同的啟用屬性。 如果相同套件中的兩個元件有不同的啟用屬性,它們通常將無法共享屬性。 例如,如果某個元件設定為在用戶端進程中執行,而另一個元件則設定為在伺服器進程中執行,則其物件通常會在不同的進程中執行,即使它們位於相同的封裝中也一樣。

您應該一律從 COM+ 元件,而不是從基底用戶端具現化 SharedPropertyGroupManagerSharedPropertyGroup SharedProperty 物件。 如果基底用戶端建立共用屬性群組和屬性,則共用屬性位於基底客戶端進程內,而不是在伺服器進程中。 這表示 COM+ 物件無法共享屬性,除非物件也在客戶端進程中執行(這通常不是個好主意)。

COM+ 共用屬性管理員

共用屬性群組