設定完成位

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+ Just-In-Time 啟用概念

啟用元件的 JIT 啟用

對象共用和 COM+ JIT 啟用

交易和 COM+ JIT 啟用