COM+ 會根據內容屬性的狀態,依照完成位元停用 JIT 啟動的物件,如下所示:
- 當完成的位設定為 True 時,COM+ 會在目前的方法呼叫傳回時停用物件。
- 當完成位元設定為 False 時,當目前的方法呼叫返回時,物件會保持作用中。
根據預設,當物件建立且其上下文初始化時,完成位元會設定為 False。 (任何 JIT 啟動的物件都是在其本身的內容中建立,使其有自己的完成位元來設定。)不過,您可以使用自動完成屬性,根據每個方法變更此預設設定。 您可以使用以下方法設定已完成位元:
- 使用 IContextState
- 使用 IObjectContext
- 使用自動完成屬性
使用 IContextState
您可以使用 IContextState::SetDeactivateOnReturn 將完成位元設為 True 或 False。
您可以使用 IContextState::GetDeactivateOnReturn 來取得物件上下文中「已完成」位元的當前狀態。
使用 IObjectContext
您可以在 IObjectContext 上使用下列方法,同時設定「已完成位」以及用於交易中投票的「一致性位」:
- SetComplete 表示您已完成,而且您投票認可目前的交易。 它會將完成位和一致位設定為 True。
- SetAbort 表示您已完成,並使目前交易失敗。 它會將完成的位元設定為真,並將一致的位元設定為假。
- EnableCommit 表示您未完成,但會投票認可交易。 它會將完成的位元設定為 False,並將一致的位元設定為 True。
- DisableCommit 表示您未完成,且您目前投票不認可交易,通常是因為狀態不一致。 它會將完成位和一致位都設定為 False。
相關主題