设置完成位

COM+ 将根据上下文属性的状态(完成位)停用 JIT 激活的对象,如下所示:

  • 当完成位设置为 True 时,当前方法调用返回时,COM+ 将停用对象。
  • 当完成位设置为 False 时,当前方法调用返回时,该对象将保持活动状态。

默认情况下,创建对象并初始化其上下文时,完成位设置为 False。 (任何激活 JIT 的对象都是在其自己的上下文中创建的,因此它有自己的完成位要设置。但是,可以使用自动完成属性基于每个方法更改此默认设置。) 可以通过以下方式设置完成位:

使用 IContextState

可以使用 IContextState::SetDeactivateOnReturn 将完成位设置为 True 或 False。

可以使用 IContextState::GetDeactivateOnReturn 从对象上下文中获取完成位的当前状态。

使用 IObjectContext

可以在 IObjectContext 上使用以下方法设置完成位,同时设置用于在事务中投票的一致位:

  • SetComplete 表示你已经完成并投票决定提交当前事务。 它同时将完成位和一致位设置为 True。
  • SetAbort 表示你已完成并终止当前事务。 它将完成位设置为 True,将一致位设置为 False。
  • EnableCommit 表示你未完成,但投票决定提交事务。 它将完成位设置为 False,将一致位设置为 True。
  • DisableCommit 表示你未完成,并且投票决定此时不提交事务,通常是因为状态不一致。 它同时将完成位和一致位设置为 False。

COM+ 实时激活概念

为组件启用 JIT 激活

对象池和 COM+ JIT 激活

事务和 COM+ JIT 激活