次の方法で共有


整合性フラグと完了フラグの設定

IObjectContext インターフェイスまたは IContextState インターフェイスでメソッドを呼び出すことにより、整合性フラグと完了フラグを設定します。 これら 2 つのインターフェイスで使用される戦略は大きく異なります。 IObjectContext には、整合性フラグと完了フラグを一意の組み合わせにおいてバインドする 4 つのメソッドがあります。一方、IContextState には、各フラグを個別に設定できる 2 つのメソッドがあります。 IObjectContext のメソッドも ObjectContext オブジェクトを介して公開されます。

各フラグを独立して制御するため、IContextState には、整合性フラグを True または False に設定するメソッドと、完了フラグを True または False に設定するメソッドが用意されています。 これらのメソッドはそれぞれ、SetMyTransactionVoteSetDeactivateOnReturn です。 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

Note

メソッド レベルで設定される auto-done プロパティは、整合性フラグと完了フラグの設定方法に影響を与える可能性があります。 auto-done プロパティについて詳しくは、「メソッドの自動実行の有効化」と「完了ビットの設定」をご覧ください。