設定一致和完成旗標
您可以在 IObjectContext 或 IContextState 介面上叫用方法,以設定一致且完成的旗標。 這兩個介面所使用的策略明顯不同。 IObjectContext 有四種方法可將一致且完成的旗標系結在一起的唯一組合,而 IContextState 有兩種方法可讓您獨立設定每個旗標。 IObjectContext 的方法也會透過 ObjectContext 對象公開。
為了獨立控制每個旗標, IContextState 會提供方法,將一致的旗標設定為 True 或 False,以及將完成的旗標設定為 True 或 False 的方法。 這些方法分別是 SetMyTransactionVote 和 SetDeactivateOnReturn。 IContextState 介面也包含擷取每個旗標目前值的方法。
當您將 SetMyTransactionVote 方法值設定為 TxCommit 時,COM+ 會驗證交易是否存在。 如果 COM+ 未偵測到交易,它會產生您可以在記錄檔中擷取的錯誤。 例如,假設有人不小心將元件的交易屬性設定為 [不支援],但您預期該屬性會設定為 [必要]。 藉由設定 SetMyTransactionVote = TxCommit,您可以識別衝突並採取行動。
下表描述可用來設定一致和完成旗標的方法呼叫。
一致旗標 | 完成旗標 | IObjectContext 方法 | IContextState 方法 |
---|---|---|---|
True |
False |
EnableCommit |
SetMyTransactionVote txVote = TxCommit SetDeactivateOnReturn bDeactivate = False |
False |
False |
DisableCommit |
SetMyTransactionVote txVote = TxAbort SetDeactivateOnReturn bDeactivate = False |
False |
True |
SetAbort |
SetMyTransactionVote txVote = TxAbort SetDeactivateOnReturn bDeactivate = True |
True |
True |
SetComplete |
SetMyTransactionVote txVote = TxCommit SetDeactivateOnReturn bDeactivate = True |