COM+ 共享属性管理器概念

在 COM+ 中,使用共享属性管理器 (SPM) 管理对象的共享暂时性状态。 SPM 是一种资源分配器,可用于在服务器进程内的多个对象之间共享状态。

由于并发性和名称冲突问题,无法在分布式环境中使用全局变量。 共享属性管理器可提供共享属性组来消除名称冲突,这些组会为它们包含的共享属性建立唯一命名空间。 SPM 还实现锁定和信号灯来帮助保护共享属性免遭同时访问,这可能会导致更新丢失,使属性处于不可预知状态。

注意

共享暂时性状态是内存中保留的状态信息,这些信息无法在系统故障中幸存。 这些信息旨在由多个对象跨事务(但不跨进程)边界共享。

 

存储在 SPM 中的共享属性仅适用于在同一进程中运行的对象。 这意味着,必须作为同一 COM+ 应用程序的一部分安装将使用 SPM 存储值并需要访问这些值的对象。 部署 COM+ 应用程序后,系统管理员可以将 COM+ 类从一个包移到另一个包。 如果通过 SPM 依赖多个共享属性的对象,则应清楚地记录必须将它们安装在同一 COM+ 应用程序中。

共享属性的组件具有相同的激活属性也很重要。 如果同一包中的两个组件具有不同的激活属性,则它们通常无法共享属性。 例如,如果将一个组件配置为在客户端进程中运行,另一个组件配置为在服务器进程中运行,则其对象通常会在不同的进程中运行,即使它们位于同一包中也是如此。

应始终从 COM+ 组件而不是基本客户端实例化 SharedPropertyGroupManagerSharedPropertyGroupSharedProperty 对象。 如果基本客户端创建共享属性组和属性,则共享属性位于基本客户端进程中,而不是在服务器进程中。 这意味着,除非对象也在客户端进程中运行(这通常不是一个好主意),否则 COM+ 对象不能共享属性。

COM+ 共享属性管理器

共享属性组